Det beste frå begge verder: menneske + maskin = suksess

Det er fullt mogleg å lage system som kombinerer det beste frå menneska og det beste frå maskinene. Med litt ekstra arbeid blir resultatet kunstig intelligens på sitt beste.

Vi menneske er gode til å gjenbruke og tilpasse erfaringar, men det fell oss ikkje naturleg å hugse store mengder data. Maskiner er omvendt stilte. Maskinene kan handtere store mengder informasjon, og kan gjera vanvittig mange utrekningar og kalkulasjonar på kort tid. Samtidig er maskinene dårlegare enn oss på å kjenne att mønster. Dei er og dårlege på å kjenne att situasjonar som liknar det dei har sett før. Ikkje minst er dei langt dårlegare på å tilpasse erfaringar frå tidlegare til det dei ser no.

Det finst likevel teknikkar for å betre minnet hos kvar og ein av oss, sånn at vi menneske kan bli betre på det maskinene utklassar oss på. Tilsvarande finst det også teknikkar for å få maskinene til å tilpasse og gjenbruke erfaringar frå tidlegare situasjonar, slik vi menneske gjer kvar einaste dag.

> Kunstig intelligens:  “eigenskapar ved datamaskinar som minner om menneskeleg intelligens, til dømes evne til å resonnere, lære og korrigere seg sjølv” (definisjon frå Nynorskordboka)
> Case-basert resonnering: ein måte å løyse problem på ved å bruke erfaringar frå tidlegare liknande situasjonar, mykje på samme måte som vi menneske resonnerer. Det har for eksempel mange parallellar med korleis ein lege set diagnosar.
> CREEK – er sjølvsagt er ei forkorting, vi er trass alt i IT-verda: Case-based Reasoning through Extensive Explicit Knowledge

Kunstig intelligens?

Kunstig intelligens er fagfeltet som handlar om kombinasjonen maskiner og intelligens. Det handlar både om å utnytte det maskinene er gode til og om å få maskina til å forbetre seg på dei felta der vi menneske i utgangspunktet er overlegne.

Når vi menneske skal ta avgjersler, gjer vi det på bakgrunn av kva vi veit og har opplevd tidlegare. Vi veit at Spania og Portugal er naboland, og vi har erfart tidlegare at om det regner eine plassen, reknar det ofte hos naboen dagen etter. Vi kombinerer slik det vi veit med tidlegare erfaringar for å komme fram til eit svar.

Det vi veit om verda kallar vi generell kunnskap, og erfaringane kallar vi case. Feltet case-basert resonnering handlar om å få maskina til å resonnere på denne måten.

Ein måte å gjera det på: CREEK

Forskarar verda over har laga forskjellige system med forskjellige vinklingar for å få ei maskin som resonnerer best mogleg, og framskritta har vore store. Eit av dei mest prominente systema heiter CREEK, og stammar frå NTNU i Trondheim. CREEK er laga for problemløysing og avgjerslestønad. Det tydar at du kan bruke systemet til å svare på alt frå korfor bilen din ikkje startar, via korvidt det kjem til å regne i morgon til korvidt gassturbinane på oljeplattformen fungerer som dei skal.

 

CREEK vart laga tidleg på 1990-talet, og skil seg ut ved å basere seg sterkt på generell kunnskap gjennom ein kompleks resonneringsprosess. Systemet legg til grunn at brukaren er ekspert, og kjem med forslag som denne tar stilling til. Om forslaget ikkje er godt nok kan brukaren rette på det, som systemet igjen lærer av. Kvar nye erfaring vi menneske gjer oss fører til at vi lærer noko, og at vi seinare tar betre val. CREEK og liknande system fungerer på tilsvarande måte.

Systemet er eit startpunkt for programmerarar og utviklarar som vil løyse kvardagslege så vel som kompliserte problem. Ved å bruke CREEK, kan arbeidsmengden for å lage eit system søkke drastisk. Det kan hjelpe deg å løyse usikre og foranderlige problem. Det tydar at systemet er uegna til å løyse likningar, der det typisk finst eitt riktig svar, eller ludo, der moglegheitane er avgrensa.

Derimot er det eigna for den verkelege verda, der ting kan forandre seg og du ikkje kan vera sikker på å finne rett svar. Bilen din starta kanskje i går, men ikkje i dag, og det kan vera mange grunnar til det. CREEK kan hjelpe deg å finne ut korfor, ved å sjå på korfor bilar fysisk sett ikkje startar og korfor bilar som din ikkje har starta tidlegare.

Mitt hovudresultat: senka terskel

Da eg starta arbeidet med oppgåva mi, fantes det ingen offentleg tilgjengeleg versjon av CREEK og terskelen for å bruke systemet – det vera seg til forsking, hobbyprosjekt eller kommersielt – var følgjeleg skyhøg.

Det som fanst var tekst i form av ei doktoravhandling og fleire papers som skildrar korleis systemet skal vera. All programkode og all programmering måtte du stå for sjølv. Det seier seg sjølv at om du skal eksperimentere med forskjellige teknikkar eller løyse eit enkelt problem, vil du sjå deg om etter andre, raskare løysingar.

Eg har med mi oppgåve freista å senkje denne terskelen ved å:

  • Lage ein grunnleggjande versjon av systemet, og skildre korleis denne versjonen kan vidareutviklast til å bli ein fullverdig CREEK-versjon.
  • Modernisere element i CREEK. Teknologien har gått framover dei siste 20 åra, og eg har innførd fleire teknologiar og metodar i systemet som ikkje fantes da det opphavleg vart laga.
  • Det viktigaste eg har gjort er å endra måten systemet representerer kunnskap på. Eg har vist at det går an å bytte ut den gamle måten med den moderne og allment utbreidde representasjonen, så godt som utan negative konsekvensar.
  • Eg har også forbetra måten systemet resonnerer med tal på, og dermed gjort systemet meir presist.

Det har gjort systemet forståeleg for fleire utviklarar, det har oppdatert systemet til å fungere som ein forventar i dag, og det har gjort det tydelegare og meir gjenbrukbart.

Det er langt igjen

Viktigare enn kva endringar eg har gjort er uansett at eg har implementert ein versjon av CREEK. Ein versjon av systemet er no tilgjengeleg for dei som ønskjer å bruke, teste eller vidareutvikle det. Denne implementasjonen har eg gjort innanfor det mest moderne og utbreidde rammeverket som finst for fagfeltet, Colibri studio. Dermed har eg senka terskelen enda eit hakk.

Sjølvsagt er det langt igjen til denne versjonen er fullstendig, men alt i dag er han nyttig for fleire ulike testformål. Like fullt er det essensielt at utviklinga held fram, og eg har i oppgåva mi skissert mange store og små forbetringar, blant anna:

  • Å teste kor bra systemet kan funke på andre problem enn det eg har sett på.
  • Få det til å køyre raskare.
  • Systemet bør få ei overhaling for å sjå finare ut for brukaren.
  • Fleire svake punkt i Colibri studio som bør forbetrast.
  • Eg har også lansert moglege utvidingar av CREEK-teorien.

Det er altså mange utfordringar som er komme på bordet. Neste steg blir å gjennomføre dei.