En gang i ubestemmelig framtid vasser en turgåer gjennom utmarka. Hun veiver med en mobil og myser mot skjermen.
Er hun på jakt etter en pokémon? Nei, nå bøyer hun seg ned. Foran henne lyser en kantarell i mosen.
Drømmen om en app
En app som finner sopp? Ikke umulig, når mobilen får et kamera som ikke bare kan se, men også tolke hva det ser.
Dette er ikke framtidsdrømmer. Bildegjenkjenning er allerede storindustri. Facebook kjenner igjen vennene dine på bilder du legger ut. Kameraer knipser automatisk når du smiler.
Nå vil de to norske NTNU-studentene Stian Jensen og Andreas Løve Selvik bruke den samme teknologien til å finne sopp i skogen – med en mobilapp.
Appen er foreløpig bare en idé, beskrevet i en prosjektrapport fra i fjor høst.
Nulltoleranse for giftig sopp
– Dette er en artig applikasjon, og teknologien de beskriver, er realistisk. Men utfordringen blir å finne sopp som er delvis skjult under gress og annen vegetasjon, kommenterer Arnt-Børre Salberg, seniorforsker ved Norsk Regnesentral.
– Hvis programmet skal kunne skille forskjellige arter fra hverandre, blir det også krav til nulltoleranse for giftig sopp. Det er vanskelig å oppnå, fortsetter han.
Mer enn luftig drøm
Soppsanking er industri med lange tradisjoner i deler av verden, skriver Jensen og Selvik i rapporten. De tenker seg at systemet deres kunne brukes til å kartlegge steder med mye sopp før innsanking, for eksempel fra selvstyrte droner.
Idéen til Jensen og Selvik er ikke bare en luftig drøm. De har analysert idéen i teknisk detalj. Rapporten gir en oversikt over hvordan datamaskiner har lært å tolke bilder – for eksempel av sopp.
Rask og gammel metode
Ta en helt vanlig kantarell. Hvordan skjønner dataprogrammet – enten det er i mobiler eller PC-er – at dette er en sopp og ikke et gult blad?
Grovt sett finnes det to svar på spørsmålet – to metoder. En gammel – Support Vector Machines, SVM – og en ny – dype nevrale nettverk. Rapporten beskriver begge.
Kantklipper
Grovt forenklet kan vi se SVM for oss sånn: Vi legger et gult blad ved siden av en kantarell i mosen. Hva gjør SVM?
Ingenting i første omgang viser det seg. Bildet er altfor rotete til at SVM kan skjønne noe av det. Her er mosedotter og barnåler og maur og pinner og alt slags rusk og rask. Bildet må forenkles.
Inn til redning kommer noe som vi litt fleipete kan kalle en kantklipper. Den klarer å klippe ut kantene eller omrisset rundt kantarellen og bladet.
Alt skogsrusket blir liggende. Ut av kantklipperen – eller Scale-invariant Feature Transform (SIFT) som den heter på dataspråk – kommer en forenklet samling punkter som beskriver den grove formen til kantarellen eller bladet.
Som Scale-invariant i navnet tyder på, er denne beskrivelsen uavhengig av størrelse. En liten og en stor kantarell gir samme tegning, hvis punktene har samme form.
Skala fra rund til spiss
OK – så har SVM noe å jobbe med. La oss si at kantarellen er rund mens bladet er spisst. De har to forskjellige former.
Vi lager en linje. Linja er en skala. Til venstre på skalaen er runde former. Til høyre er spisse former.
Kantarellen legger seg pent ut til venstre. Bladet havner til høyre. Nå kan SVM gå til aksjon. Det lager et grenseskille på linja. Til venstre sopp, til høyre blad. Greit?
Kanskje ikke alltid. Noen blader er også runde. Kanskje vi ikke bare kan se på formen? Hva med å se på fargen også?
Flate for form og farge
Vi tegner en ny linje, denne gangen loddrett. Øverst er grønt, nederst gult. Så går vi ut og tar bilder av flere kantareller og blader i mosen.
Hvert blad – eller sopp – får en plass på flaten ut fra form og farge. Et grønt rundt blad havner øverst til venstre. Et spisst gult blad havner nederst til høyre.
Igjen kan SVM trekke grenseskillet som en skrålinje. Nederst til venstre lyser fortsatt kantarellen imot oss – gul og rund.
Men hva med et gult og rundt blad? Hmmm. SVM får problemer fordi SIFT ikke beskriver data godt nok. Kanskje vi trenger å se på enda mer enn rund og spiss form og farge?
Mange hundre dimensjoner
Vi kan for eksempel lete etter takkete omriss på blader mot ujevnt bølgende omriss på kantarell. Eller bladnerver inne i bladet.
Poenget er at en SVM kan jobbe med mange hundre forskjellige egenskaper samtidig. Datamaskiner er gode på sånt.
De kan se hundredimensjonale rom og tegne grenser i disse rommene som skiller de hundredimensjonale punktene av kantareller fra hundredimensjonale bladpunkter. Puh!
Forenklede hjerneceller
Så kom 2012. En ny metode skled opp for tolkning av bilder – nevrale nettverk.
Eller – rettere sagt – metoden var ikke ny. Det nye var at datamaskinene var blitt raske nok til at nevrale nettverk kunne kjøres uten at farten til mikroprosessoren sank ned i sirup.
Nevrale nettverk virker litt på samme måte som datamaskinenes store forbilde – menneskehjernen. Da er det kanskje ikke så vanskelig å skjønne at de krever mye datakraft.
– Styrken til dype nevrale nettverk er at de klarer å beskrive bildene bedre enn SIFT, kommenterer Salberg.
SIFT var kantklipperen som forenklet bildet til en sky av punkter før SVM kunne kategorisere det. Nevrale nettverk gjør altså denne jobben bedre.
Nevrale nettverk har en slags forenklede hjerneceller. De kalles noder. Hver node er forbundet med andre noder, slik som hjernecellene er forbundet med andre hjerneceller gjennom nervetråder.
Preger inn mønstre
Når hjernen lærer noe nytt, blir forbindelsene mellom noen av disse milliarder av nervetrådene sterkere og andre svakere. Slik preges mønstre inn i hjernen.
På samme måte lærer nevrale nettverk ved at noen av forbindelseslinjene mellom nodene blir sterkere og andre svakere.
Enklere enn hjernen
Selvsagt er ikke nevrale nettverk akkurat som hjernen. I de nevrale nettverkene har nodene og forbindelseslinjene bare enkle tallverdier.
Nervesignalene i hjernen er mye mer kompliserte, som vi også tidligere har skrevet om her i forskning.no.
En annen forskjell er at det nevrale nettverket sender signalene bare en vei. Data om for eksempel soppbildet går først til inngangsnodene.
Så sendes data videre gjennom forbindelseslinjene og flere lag mellomnoder. Resultatet – tolkningen – kommer i utgangsnodene.
Men hvordan klarer et nevralt nettverk å se forskjellen på en sopp og et blad?
Lærebilder
Hvis du skal rettlede maskinen, må du ha en mengde forhåndsbehandlede bilder som maskinen kan lære av. Bildene må være nøye beskrevet.
Dataprogrammet må få vite akkurat hvordan det skal lete i bildet.
Fordelen med en sånn metode er at maskinen lærer raskere. Ulempen er at du må hoste opp alle disse bildene som er nøye beskrevet på forhånd. Hvor finnes de?
Datamaskiner lærer av dataspill
Jensen og Selvik foreslår to måter å skaffe dem på. Det finnes bildedatabaser som image-net, der bilder er klassifisert etter et språkvitenskapelig system.
Det andre og mest originale forslaget deres er å bruke dataspill. I dataspillene løper du ofte gjennom svære verdener med landskaper der det passer fint å plassere bilder av sopp.
Slik kan du raskt få en svær mengde kunstig lagede, men lærerike klassifiserte bilder. Du gir det nevrale nettverket bilder som det skal prøve å tolke, og så gir du den klapp på skulderen hver gang den finner en sopp.
I starten vil dataprogrammet ofte bomme. Men smått om senn skjer en læreprosess inne i de nevrale nettverkene.
Forplantning bakover
Noen få ganger treffer det blink. Da gjør nettverket ørsmå endringer bakover i forbindelseslinjene fra utgangsnodene via mellomnodene til inngangsnodene – de kunstige nervetrådene mellom de kunstige hjernecellene.
Dette kalles forplantning bakover – backpropagation. Etter tusener på tusener av prøvinger og feilinger justerer det nevrale nettverket seg inn på noe som funker.
Spør bare ikke hvorfor det funker. Det er ikke mennesker som har programmert inn metodene på forhånd. De oppstår i møtet mellom virkelighet og datamaskin.
Denne videoen forklarer i grove trekk hvordan det nevrale nettverket lærer ved forplantning bakover – backpropagation.
Selvgående, men krevende
Betyr denne metoden at du også kan sende datamaskinen ut i svarte skauen og overlate til den å samle kunnskap selv?
– Nei, der er vi ikke ennå, men det er dit vi vil, sier Salberg fra Norsk Regnesentral.
– Dette kalles læring uten veiledning – unsupervised learning, fortsetter han.
Fordelen med en sånn metode er at du ikke trenger en masse forhåndskodede bilder. Du kan la det nevrale nettverket bryne seg på rå virkelighet.
Ulempen er at slik læring krever større datakraft. Men som vi alle vet – Moores lov sier at datakraften dobles for hvert annet år.
Kunstig netthinne
Jensen og Selvik forteller videre om alle de oppfinnsomme folkene som har presset ytelsen til nevrale nettverk enda videre.
De forteller om konvulsjonsnettverk, som etterligner forbindelsen mellom netthinnen i øyet og synssenteret i hjernen.
Her er ikke alle noder forbundet med alle andre. Isteden er de satt opp i et rutenett.
Noder som skal fange opp ting til venstre i bildet, trenger ikke å være koblet opp mot noder som skal tolke ting til høyre. Det samme med oppe og nede.
Rutenettet i konvulsjonsnettverket forenkler bildet og sender det videre til et vanlig nevralt nettverk for videre tolkning. Også andre forbedringer fintrimmer prosessen.
Uten nett i soppskogen
Jensen og Selvik sender nå stafettpinnen videre til andre soppelskere og datakyndige. Programmet kan først utvikles og læres opp på datamaskiner, før det flytter inn i en app på en mobiltelefon.
– Opplæringen av de nevrale nettverkene krever ofte mye datakraft. Den kan skje på kraftige PCer, gjerne med flere store skjermkort i parallell, sier Salberg.
Når det nevrale nettverket først er lært opp, krever det mye mindre datakraft for å tolke bildene.
Derfor er han optimistisk med tanke på at appen skal kjøre på mobilen – også uten nettilgang. Det har du jo ofte ikke i soppskogen.
Fra skyen og inn i mobilen
Andre apper som bruker nevrale nettverk trenger riktignok ofte nettilgang. Det nevrale nettverket er da ikke i mobilen, men ute i skyen.
Derfor klarer for eksempel ikke Apples personlige assistent Siri å skjønne hva du sier hvis du er frakoblet. Men det er utvikling på gang.
– Jeg tror ikke det blir noe problem å kjøre soppdetektoren uten nettilgang, sier Salberg.
Rask utvikling
Den tekniske utviklingen av mobiltelefoner går raskt. Jensen og Selvik er optimister i sin rapport.
Tidligere metoder for bildegjenkjenning utkonkurreres av den større nøyaktigheten til nevrale nettverk, konkluderer de.
Men før appen deres har blitt virkelighet, er det bare ett nevralt nettverk som virkelig duger for ihuga soppsankere – det du har oppe under ditt eget topplokk.
Referanse:
Stian Jensen og Andreas Løve Selvik: Towards Real-Time Object Detection of Mushrooms, a Preliminary Review. Prosjektrapport, NTNU, 2015.