Hva er nevrale nettverk? (Del 1)

Kunstige nevrale nettverk er en etterligning av nervecellene våre i hjernen. De skal brukes til å gjøre datamaskiner like flinke til å lære som mennesker og dyr. Dette gjøres ved å herme etter hvordan hjernen er bygd opp.

Nevrale nettverk er noe som har blitt forsket på helt siden 1940-tallet, men det er først de siste årene at bruken av disse har skutt fart. Årsaken er en kombinasjon av økt datakraft, behovet for å analysere enorme mengder informasjon på internett og at mer avanserte nettverk har blitt oppfunnet. Senest i fjor annonserte Facebook at de ved hjelp av nevrale nettverk hadde klart å lage et dataprogram som var bedre til å gjenkjenne ansikt i bilder enn et gjennomsnittlig menneske.

Hjernen består av mange forskjellige celler. De mest spennende er nervecellene som kan lede elektriske signaler over store avstander. Når signalene skal overføres mellom nervecellene dusjer de hverandre med kjemikalier som igjen danner elektriske signaler i mottakercellene.

Synapse
I synapsene dusjer nervecellene hverandre med kjemikalier for å overføre signaler.

Det er kommunikasjonen mellom nervecellene vi forsøker å etterligne når vi lager kunstige nevrale nettverk. Det kan gjøres på mange forskjellige måter, avhengig av hvor mye informasjon vi er ute etter. I forskningen jeg gjør med kollegaene mine forsøker vi å få med veldig mange av detaljene i kommunikasjonen mellom nerveceller. Slik som hvilke ionekanaler som er avgjørende for å få overført de rette signalene. Og hva formen på nervecellene har å si for hvordan de fungerer. Når Facebook, Google og Microsoft prøver å skape kunstig intelligens er disse tingene derimot ikke fullt så viktige. Da er det eneste målet at nettverket som helhet gjør den samme jobben som nervecellene i hjernen. Nemlig at de er i stand til å lære – og huske det de har lært.Det betyr at kunstige nevrale nettverk kan være svært enkle i forhold til de vi finner i våre egne hjerner. En fordel med enkle nettverk er at datamaskinen kan gjøre beregninger mye raskere enn om vi tok med alle detaljene.I de enkleste modellene av nevrale nettverk ser vi på hver nervecelle som et punkt som kan få input fra andre nerveceller og sende signaler videre. Vi forenkler med andre ord det som egentlig er en svært detaljert struktur i bildet til venstre, til en veldig enkel modell uten detaljer:

simplified-neuron
VI forenkler de ellers så detaljerte nervecellene til punkter som kan motta og sende signaler.

Hver nervecelle kan ha flere koblinger til andre nerveceller og sammen danner disse koblingene et nettverk:

Nevralt nettverk
Et nettverk av forenklede nerveceller.

Nettverket over er bare koblet sammen lagvis: Det er tre lag i dette nettverket, og hvert lag er kun koblet til det neste. I hjernen er også nervecellene inndelt lagvis, men det finnes også tilbakekoblinger mellom lagene. Ved å kun tillate lagvise koblinger er det likevel mye enklere å trene opp nettverket på en datamaskin. Men det brukes også tilbakekoblinger i kunstige nettverk, spesielt til problemer der disse har en større nytte, slik som når man skal lære ett nettverk opp til å forstå ting som endres over tid.

Hva gjør de enkelte nervecellene?

Dette er det første i en serie av innlegg jeg kommer til å skrive om nevrale nettverk. Jeg har så langt bare sagt litt om hva ideen er bak nettverkene og litt kort om veien fra detaljerte nerveceller til punktene vi bruker i våre modeller. I de neste innleggene vil jeg si litt mer om hvordan vi tenker oss at disse enkle nervecellene skal fungere og hvordan dette kan hjelpe oss med å skape en kunstig intelligens og en datamaskin som kan lære av seg selv.

Ny CINPLA-logo som helgeprosjekt

Da jeg fikk jobben som stipendiat ble jeg med i en gruppe ved navn CINPLA. Gruppen er dannet for å kombinere eksperimenter og simuleringer innen hjerneforskning.

I helgen bestemte jeg meg for å teste ut en idé til en CINPLA-logo som vi har diskutert på kontoret den siste tiden:

cinpla-logo-brain

Tanken bak logoen er at venstre del representerer den biologiske delen av arbeidet som gjøres i gruppa. Den høyre delen representerer simuleringer. Sistnevnte er den typen arbeid jeg selv er involvert i. Logoen skal brukes på plakater og i foredrag som holdes av personer i gruppa, i tillegg til nettsider og denslags.

Logoen er laget i Inkscape, som forøvrig er et herlig verktøy til denne typen grafisk arbeid. Det er fri programvare og fungerer utmerket til vektorgrafikk i Ubuntu.

Logoen kommer i flere formater på CINPLA sin presseside snart. Den skal bare ut på prøve der den vurderes av gruppa og et par andre først.

Intro-video

Når jeg var ferdig kunne jeg selvfølgelig ikke dy meg, og åpnet i samme slengen 3D-programmet Blender for å se om jeg kunne gjøre noe artig med logoen der. Ved bruk av SVG-importering kunne jeg laste inn det nye bildet jeg hadde laget, men jeg ville også se hvordan det ville være med en skikkelig modell av en hjerne. En slik modell fant jeg på brainder.org, hvor A.M. Winkler har vært så grei at han har lagt ut resultatet av en MR-avbildning av en hjerne i åpne formater.

Jeg lastet denne 3D-modellen inn i Blender, plasserte ting på riktig plass og animerte kameraet slik at jeg endte opp med følgende video:

Jeg aner ikke hva vi skal bruke en slik video til, men kanskje CINPLA begynner med spillefilmer en dag. Da vil det sikkert passe fint å kjøre denne videoen som en intro.

Siden 3D-modellen har en er delt med en Creative Commons Attribution-ShareAlike 3.0 Unported License er naturlig nok denne videoen det også.