På denna sida:

Biologiska och artificiella nervnät
Nervnät som matematiska instrument 
Mönsterklassifikation
ANN - grundläggande beskrivning
   Element och struktur hos ANN
   Input, output och aktiveringsfunktion
   Inlärningsalgoritmer
Gå vidare...
 
 

På andra sidor:

Perceptronen
SOM
Vektorer, matriser och ANN


Nerladdningsbar programvara
Våra kurser om ANN 

Artificiella Neurala Nätverk

en kort introduktion 

 

Denna websida ger en kort introduktion till teorin om artificiella neurala nätverk (ANN). Om Du har en Mac-dator kan Du också ladda ner och köra några simuleringar av enkla neurala nätverk.

 

Biologiska och artificiella nervnät

De tankemodeller som kallas "artificiella neurala nätverk" (ANN) har, som namnet säger, i hög grad inspirerats av vad vi vet eller tror oss veta om verkliga neurala system. Ett av de klassiska motiven bakom att ställa upp ANN-modeller är också att genom beräkningar och simuleringar bättre förstå hur verkliga nervsystem fungerar - t.ex. hur det visuella systemet gör när det extraherar information om omgivningen ur ljus som faller på näthinnan. En viktig del av ANN-forskningen är med andra ord modellering av verkliga nervnät. Ett exempel på sådan modellering ges av artificiella nervnät för stereoseende. Ett annat är de mycket detaljerade och realistiska simuleringsmodeller för nervceller som utarbetats av flera forskargrupper på senare år. ANN-forskning av detta slag går mer eller mindre kontinuerligt över i neurofysiologiskt och neuroanatomiskt teoribygge.

Simulering av biologiska nervnät är dock bara en aspekt av ANN. En annan, och lika viktig, användning av artificiella nätverk bygger på idén, att vi genom att efterlikna hjärnans sätt att arbeta skulle kunna hitta bättre metoder än de vi redan har för att lösa besvärliga matematiska och tekniska problem i vetenskap och vardag.
 
 

Nervnät som matematiska instrument

Ett artificiellt neuralt nätverk tar emot en signal, behandlar den, och avger resultat i form av en ny signal. Processen kan - för varje given nätverkstyp - beskrivas med ett antal matematiska formler. Ur en viss aspekt kan man därför säga att ett ANN inte är något annat än en matematisk procedur - eller en algoritm - för bearbetning av data. De algoritmer som definieras av nätverk är ofta nära besläktade eller rent av identiska med redan kända "klassiska" procedurer, inte minst statistiska sådana. Ofta avviker de dock från tidigare kända algoritmer på sätt som gör att det kan vara lämpligt att pröva dem som alternativ för vissa typer av problem. Den som vill kan nu göra en utvikning till en mer tekniskt orienterad beskrivning av grundläggande likheter och skillnader mellan klassiska algoritmer och och ANN. Här fortsätter vi istället med den mer informella introduktionen.
 
 

Mönsterklassifikation

En omfattande klass av problem som lämpar sig för ANN-metodik har att göra medigenkänning och separation av mönster. En läkare som ställer en diagnos utifrån kliniska data och laboratoriefynd försöker hitta ett mönster i data, som kan ge underlag för det ena eller det andra beslutet. Men en maskin som känner igen hundrakronorssedlar, eller som sorterar felaktiga produkter från riktiga på ett löpande band med utgångspunkt från vissa mätningar, utför också en mönsterigenkänningsuppgift.

Att programmera maskiner för sådana uppgifter kan vara svårt, eftersom det inte sällan är mycket komplicerat att med tillräcklig precision beskriva de relevanta skillnaderna mellan mönstren som skall separeras. När det gäller att skilja mellan två typer av tillverkade objekt, exempelvis äkta och falska hundrakronorssedlar, går det visserligen att säga exakt hur ett äkta objekt ska se ut. Men om det gäller att separera två typer av "naturgivna" objekt från varann, exempelvis friska lungor från sjuka på röntgenbilder, har vi inte tillgång till någon tillverkarspecifikation. Inte ens den röntgenläkare som i praktiken utan problem kan skilja sjukt från friskt kan i allmänhet tala om exakt hur han/hon egentligen gör denna bedömning - dvs. vad som egentligen skiljer de två klasserna av mönster från varann. Antag då att vi vill programmera en maskin för att separera "friska" från "sjuka" röntgenbilder - är det överhuvudtaget möjligt?

Det i sammanhanget intressanta förhållandet med läkarens praktiska färdighet vad gäller mönsterseparation är att den i stor utsträckning är inlärd genom exempel. Man blir inte en bra röntgenläkare genom att lära sig listor på kriterier för friskt och sjukt (fullständiga sådana finns ju inte) utan genom att utsättas för ett stort antal verkliga exempel, för vilka det finns ett "facit". Nåväl - låt oss då bygga en maskin som vi kan träna genom exempel! Detta är en av grundtankarna bakom användandet av artificiella neurala nätverk för mönsterseparation. Många typer av ANN kan nämligen tränas genom exempel och kan därför utnyttja ett "facit" för att gradvis bli bättre och bättre på en viss mönsterseparationsuppgift. En stor del av den aktuella forskningen vad gäller tillämpningar av ANN, inte minst i medicinsk diagnostik, handlar om sådan intränad mönsterklassifikation. Vi ska nedan i någon mån försöka förklara hur träning av ANN går till. Du kan också gå direkt till sidan om perceptronen, som är ett historiskt viktigt exempel på ett ANN som lär sig "mönsterigenkänning med facit".

Innan vi går vidare med att beskriva andra typer av användningar av ANN vill vi nämna att vissa artificiella nervnät också kan klassificera data utan att ha ett facit. De kan med andra ord hitta en struktur i en klass av datapunkter utan att någon extern information om hur klassen ska delas upp föreligger. Intressant nog visar det sig att dessa nervnät ofta hittar klassifikationer som vi människor i efterhand finner "naturliga". Det är kanske inte så konstigt, eftersom näten delvis konstruerats med verkliga nervsystem som förebild! Ett mycket använt ANN i detta sammanhang är finländaren Kohonens "Self Organising Map" (SOM).

Andra intressanta tillämpningar hittar man inom processkontroll, robotik och optimering. I det förstnämnda fallet tränas ett nätverk att själv ställa in värdena på variabler i en process så att ett visst, önskat slutresultat av processen uppnås. Grundprincipen är densamma som vid mönsterklassifikation med facit, men eftersom en tidsfaktor kommer in är uppgiften i allmänhet mer krävande. Neurala nätverk har kommit till praktisk användning i flera olika processindustrier. Man har också stora förhoppningar på dem när det gäller konstruktion av robotar som lär sig. Användandet av ANN för att lösa optimeringsproblem får än så länge mer ses som illustrationer av nätverkens principiella möjligheter. Vi har valt lösningen av TSP (Travelling Salesman Problem) med SOM som en sådan illustration.
 
 

ANN - en grundläggande beskrivning

Eftersom artificiella neurala nätverk är ett slags matematiska modeller, kan man beskriva deras funktion uttömmande genom att endast ange de matematiska formlerna för den signalbearbetning som de utför. En sådan kompakt beskrivning betonar släktskapen med andra matematiska, särskilt statistiska, modeller för databehandling. Om man, som vi, också vill betona släktskapen med biologiska neurala nätverk kan det vara lämpligare att använda en något mer konkret beskrivningsform. En konkret beskriving är också lättare att förstå (för alla utom matematiker...).

Observera att terminologin skiljer sig mycket mellan olika framställningar av teorin för ANN. Vi ansluter oss här till formalismen hos Faucett.
 
 

Element och struktur hos ANN

Ett artificiellt neuralt nätverk (ANN) består av ett antal element eller noder, Xi, med förbindelser som var och en har en viss effektivitet (vikt) w. Styrkan på förbindelsen från den i:te till den j:te noden betcknas med wij. Elementen är anordnade i en struktur som - beroende på om det finns flera separata skikt av element eller ej - kan karakteriseras som icke lagrad eller lagrad. I det senare fallet kan nätverket klassificeras som antingen feed-forward eller feed-back beroende på om det finns återkopplingar mellan skikten av element. Varje nod Xi har i varje ögonblick en aktivitetsnivå, som betecknas med xi. Här är ett exempel på ett enlagrat feed-forwardnät ("enlagrat" betyder att det finns ett lager av förbindelser); informationen tänks strömma nedåt i systemet. Inte alla viktbeteckningar har satts ut.
Ett annat framställningssätt för samma nätverk är dess s.k. Hintondiagram:
En fördel med Hintondiagrammet är att nätverkets vikter visualiseras i matrisform, vilket anknyter till de matematiska redskap man främst använder vid analysen av nätverkens funktion (vektor- och matrisalgebra).
 
 

Input, output och aktiveringsfunktion

Alla noder i ett ANN sänder i varje ögonblick ut sin aktivitet som output i alla utgående ledningar. Signalen som går genom en förbindelse multipliceras med förbindelsens vikt. Varje nod tar emot input antingen från andra noder eller från omgivningen. De element som tar emot omgivningsinput, i vårt exempel de tre första, kallas inputnoder. De flesta ANN fungerar så att varje element summerar de inputs som det får och sedan transformerar den resulterande summan ("nettoinput", x_in) till en aktivitet på ett sätt som anges av den s.k. aktiveringsfunktionen (i figuren nedan betecknad med f(x_in)). Aktiviteten blir elementets nästa output, som i sin tur går till nätverkets element och/eller tas upp av omgivningen (exempelvis som en signal om vilken klass input tillhör). Studera följande figur noga!
Ett nervnäts egenskaper bestäms i hög grad av vilken aktiveringsfunktion det arbetar med. Här är några viktiga alternativ:
 

Lineär aktiveringsfunktion (enklaste fallet: aktivitet = nettoinput)

Ger nervnät med ganska ointressanta matematiska egenskaper - men bra för pedagogiska syften! Se sidan om den lineära associatorn.
Stegfunktion (allt-eller-intet-aktivitet; nettoinput måste uppnå en viss tröskel för att aktiviteten ska bli skild från noll)
Kan sägas modellera den enstaka signalen i ett neuron.  Exempel: perceptronen.
Sigmoida funktioner
Sigmoida funktioner har stor användning, bland annat i så kallade back-propagation-nät (se nedan), eftersom de ger näten potenta matematiska egenskaper. Man har således visat att en mycket stor klass av input-output-funktioner kan modelleras av nätverk med sigmoida aktiveringsfunktioner, och att sådana nät därför i princip kan tränas att lösa de flesta tänkbara mönsterseparationsuppgifter. (Vilket långtifrån betyder att det alltid går i praktiken!)

Vill man ha en överskådlig och kompakt framställning av hur ett neuralt nätverk behandlar data från input till output bör man beskriva dess funktioner i termer av vektorer och matriser.
 
 

Inlärningsalgoritmer

En av de största poängerna med ANN är, som nämnts, att de kan tränas. Ett stort antal procedurer för sådan träning eller inlärning har föreslagits. Ett överväldigande antal av dessa procedurer bygger på tanken att inlärningen kodifieras genom attvikterna hos elementens förbindelser modifieras, och därmed nätverkets sätt att behandla den inkommande informationen. Olika algoritmer styr denna förändring av vikterna på olika sätt, varav några få har likheter med tänkbara biologiska mekanismer medan andra mer får betraktas som enbart varande redskap för programmerare av artificiella neurala nätverk. Här är en lista på några viktiga inlärningsalgoritmer; Dwij står för ändringen i vikten wij:
 

Hebb-regeln

Dwij = k · xi · xj

k: inlärningskonstant. Vikterna ändras i proportion till pre- och  postsynaptisk aktivitet. Troligen den biologiskt mest  realistiska av de här beskrivna. Ex: Hopfieldnät.
 
 

Delta-regeln (specialfall: perceptronregeln)

Dwij = k · xi · (dj - xj)

dj: önskad output i nod j. Vikterna ändras i proportion till skillnaden mellan  önskad och verklig output. Ex: Perceptronen.
 
 

Backpropagation-algoritmen

Dwij = -k · dE/dwij

E: globala felet (ett mått på skillnaden mellan önskad och verklig output). Vikterna ändras i proportion till deras bidrag till det globala felet (beräknat som en partiell derivata. Ofta omständligt att beräkna!)
 
 

Kohonen-regeln

Dwij = k · (wj - I)

I: inputvektorn. Viktvektorn w "dras närmare" eller "dras längre bort från" inputvektorn I. Vilka element som berörs, och hur, varierar mellan olika modeller. Ex: SOM, LVQ.
 
 

Genetiska algoritmer

Selektion över tiden i en population av nätverk. Nätverken som visar de bästa prestanda "överlever", och deras egenskaper rekombineras.
 

Gå vidare...

För att på ett konkret sätt förstå hur ett ANN fungerar är det lämpligt att studera de enkla nätverken SOM, den lineära associatorn och perceptronen närmare. Och det kanske trots allt kan vara nyttigt med en introduktion till ett mer abstrakt, matematiskt beskrivningssätt i termer av vektorer och matriser?

Exempel på användning av ANN för realistiska mönsterklassifikationsändamål kan Du hitta på vår sida om medicinska applikationer. Och vill Du lära Dig mer, gå till våra externa länkar, eller kom till våra kurser!
 
 
Till början av sidan

© 2001 Helge Malmgren. Denna sida senast uppdaterad 26 januari 2003 av Helge Malmgren.