Artificiella neurala nätverk

Artificiella neurala nätverk
En introduktion
i anslutning till H. Malmgren: Inlärning och minne i neurala nätverk.
Studentlitteratur 2007
Helge Malmgren, januari 2008
Vad är ett ANN, och vad har man dom till?
Artificiella neurala nätverk (ANN) är
matematiska modeller som används i tre
olika huvudsyften:
• För att bättre förstå hur nervsystemet hos
människan och andra djur fungerar, och för
att på så sätt belysa mekanismer för
perception, kognition och minne
• För att kunna bygga bättre och
“intelligentare” maskiner (och andra
tekniska prylar) med hjälp av principer som
helt eller delvis lånats från hjärnans sätt att
fungera. Specialfall av lärande system.
Exempel: Adaptiv bildanalys; robotik
• För att simulera (sammanfatta och
förutsäga data från) observerade komplexa
system, vars inre lagar är m.e.m. okända
Centrala inlärningbegrepp från filosofi och psykologi
•
•
•
•
•
Associativ inlärning: Aristoteles,
Hume, Mill
Successiv association: iakttaget
tidssamband A e B. Iakttagelse av
A leder sedan till förväntan om B
Simultan association: bildande av
helhet AB. Kan förklara perceptuell
komplettering, innehållsadresserbart
minne (“random access”, RAM)
Modernare distinktioner:
– deklarativt minne/procedurellt
minne/perceptuellt minne
– långtidsminne/korttidsminne
(arbetsminne)/omedelbart minne/
sensoriska buffertar
Neuropsykologi/neuropsykiatri,
men också klassisk experimentell
psykologi, ger information om
minnet och dess mekanismer
Klassisk betingning:
• UCS: obetingad stimulus; UCR:
obetingad respons; CS: betingad
stimulus.
• Iakttaget samband mellan CS
och UCS gör att CS ger upphov
till något som liknar R
Operant (instrumentell) betingning:
• Effektlagen: beteenden B som i
situationen S leder till belöning
förstärks; de som leder till
bestraffning försvagas
Icke associativ inlärning:
• sensorisk adaptation, habituering,
sensitisering
Minnesstörningar i organisk psykiatri
• Korsakoffs amnestiska syndrom
(‘Amnestic Syndrome’ DSM):
retrograd amnesi, anterograd
amnesi, konfabulation. Beror på
bilateral skada i limbiska
systemet, t.ex. hippocampus.
Många orsaker, bl.a. kroniskt
alkoholmissbruk. Omedelbart
minne och procedurell inlärning
ofta intakta. Vid förbättring återkommer minnen från tiden för
den retrograda amnesin.
• Sekundära minnesstörningar:
särskilt asteno-emotionellt
syndrom (jfr ‘mild cognitive
disorder’ ICD-10, ‘mild neurocognitive disorder’ DSM-IV). I
stor utsträckning sekundära till
koncentrationsstörning. Mycket
varierande lokalisation & orsak.
Klassisk betingning av tidssamband
Ett djur (eller en människa) som utsätts för ett associativt samband,
där UCS kommer en stund efter CS, lär sig snabbt att ge en
betingad respons först efter det att “rätt” tid efter CS har förflutit.
Denna nervsystemets förmåga att bilda associationer över tid har
ännu inte på något övertygande sätt fått någon neurofysiologisk
förklaring, och någon god ANN-modell för detta finns inte... en
utmaning som återstår, med andra ord!
Aktionspotential och impulsöverföring i en nervcell
Med en kraftig förenkling kan man säga att impulsöverföringen i
nerverna är “digital” (en fråga om allt eller intet) medan den är “analog”
i cellkroppen (en graderad signal överförs). Nervsystemet använder sig
dock troligen ofta av s.k. frekvenskodning varför det ibland är lämplig
att betrakta nervcellens output som en analog signal.
Inlärning har länge ansetts bero på modifikation av synapsernas
effektivitet. En sådan modifikation ändrar neuronens sätt att bearbeta
information. Men förmodligen har en del minne en helt annan typ av
bas (cellminne!)
Informationsbearbetningen i en typisk ANN-nod
• Noder betecknas med
stora bokstäver Xi
Aktivitetscykeln:
• Inputs från andra
noder multipliceras
med vikter wij (jämför
gärna synapsers
effektivitet)
• Summation av de
viktade delinputs ger
nettoinput net_ini
(alternativt: x_ini)
• Aktiveringsfunktionen bestämmer nodens aktivitet, xi
• Aktiviteten sänds som output till övriga noder
• Eventuellt sker inlärning genom modifikation av vikter
(enligt någon lämplig algoritm)
Aktiveringsfunktioner
•
Lineär (enklaste fallet: xi = x_ini, dvs.
aktiviteten = nettoinput). Förekommer
knappast biologiskt men är lätt att analysera
Ex: Lineära associatorer
• Stegfunktion (nettoinput ska uppnå tröskel).
Modellerar det enskilda allt-eller-intet-svaret
i ett neuron
Ex: Den enkla perceptronen
• Sigmoida (S-formade) funktioner.
Kan ses som en modell av signalfrekvensens
olinjära inputberoende i ett biologiskt neuron.
Ger kraftfulla signalbearbetningsegenskaper
åt nätverket
Ex: Flerlagrade perceptroner
• Kompetitiv aktivering. Den nod som får högst
input (“vinnaren”) ges aktivitet 1, övriga får
aktivitet 0. Varianter finns som är grundade
på närhet mellan input- och viktvektorer.
Ex: Kohonen-nätverk (SOM m fl)
•
Nätverksarkitekturer
Feedforward/feedback-nätverk; en/flerlagrad arkitektur. FF-nätverk har
inputlager och outputlager (skilj från input/output i enstaka noder!)
Tvålagrat feedforwardnät 
Samma enlagrade FFnät 
 Feedbacknätverk
(återkopplade,
rekurrenta)
Inlärningsregler i artificiella neurala nätverk
• Hebb-regeln Δwij = k ⋅ xi ⋅ xj
(k: inlärningskonstant)
Vikterna ändras i proportion till pre- och postsynaptisk aktivitet. Vikterna växer
okontrollerat. Många varianter finns, vissa är biologiskt mer plausibla.
• Delta-regeln (specialfall när xi och dj är binära: perceptronregeln)
Δwij = k ⋅ xi ⋅ (dj - xj)
(dj: önskad output)
Vikterna ändras i proportion till den presynaptiska aktiviteten xi och till felet, som är
skillnaden (dj - xj) mellan önskad och verklig postsynaptisk aktivitet (output). Output
från noden Xj närmar sig gradvis det önskade värdet.
• Back propagation-algoritmen (generaliserad deltaregel)
Δwij = -k ⋅ δE/δwij
(E: globala outputfelet)
Vikterna ändras i proportion till deras bidrag till det globala felet.
• Kohonen-regler för kompetiva nätverk
Δwj = k ⋅(I - wj)
(I: inputvektorn)
Viktvektorn wj för noden Xj ”dras närmare” eller ”dras längre bort från”
inputvektorn I. Vilka noder som berörs, och hur, varierar.
• Genetiska (evolutionära) algoritmer
Selektion över tiden i en population av nätverk. Nätverken som visar
de bästa prestanda ”överlever”, och deras egenskaper rekombineras.
Nå, vad använder man de olika modellerna till?
• Först och främst kan man försöka modellera associativt minne hos människor och
djur. Både Pavlovsk betingning och mönsterkomplettering genom simultana
associationer kan efterliknas med ANN som använder Hebbregeln. Här eftersträvar
man ofta en strukturlikhet mellan modell och det modellerade, i den meningen att
enheter i ANN motsvarar neuron (eller neurongrupper) i CNS, etcetera.
• Kohonen-regeln och liknande algoritmer kan på ett liknande sätt användas i (tämligen
plausibla) modeller för mänsklig begreppsbildning.
• De sistnämnda typerna av algoritmer kan också utnyttjas i maskiner eller
datorprogram som kategoriserar data efter i viss mening “naturliga” principer.
• Deltaregeln, back-propagation, genetiska algoritmer och andra kraftfulla regler
används för att bygga prylar som “lär sig” att i olika avseenden bete sig sig som
konstruktören önskar. Således kan en maskin lära sig att skilja olika typer av input
från varandra – s.k. mönsterklassifikation – och en mobil robot kan fås att anpassa sitt
yttre beteende till vissa (av konstruktören) önskade mål.
• Inlärningen ifråga bygger på att man “visar” maskinen ett antal exempel och talar om
vilka som är “rätt” respektive “fel”. Inlärningsalgoritmen leder till att maskinen själv
konstruerar en regel som överensstämmer med detta “facit”.
• Dessa kraftfulla nätverk kan också anpassa sig till att överensstämma med data som
härrör från ett godtyckligt komplext system. Här behöver man inte tänka sig modellen
som strukturlik verkligheten; enheterna i modellen behöver således inte motsvara
konkreta noder i verkligheten.
Pavlov, Hebb och ANN
•
•
•
•
•
•
•
•
Klassisk betingning kan modelleras som styrd (men “oövervakad”) inlärning med (något som liknar)
Hebbregeln, Δwij = k ⋅ xi ⋅ xj. Se figuren nedan. Här är xi aktiviteten i CS-noden (A) och xj aktiviteten i R-noden
(C). Låt för enkelhets skull xi och xj vara binära.
UCS är att betrakta som den styrsignal som man lägger på outputenheten under träningen.
Vikten från CS-neuronet till R-neuronet ökar enligt Hebb-regeln med k enheter varje gång som CS-neuronet
är aktivt samtidigt som man (via UCS) “tvingar” R-neuronet att vara aktivt.
För biologisk realism måste man ersätta Hebbregeln med någon regel som inte medför att vikterna växer
obegränsat.
I många verkliga neuron finns en mekanism, långtidspotentiering (LTP), som i flera avseenden påminner om
Hebb-regeln och som därför skulle kunna vara en biologisk bas för associativ inlärning
Under vissa omständigheter uppträder iställer långtidsdepression, LTD.
Inlärning av graderade signaler är svår att förklara i traditionell ANN-teori; här kan teorin för kontinuerliga
attraktorer ha en plats (jämför också cellulärt minne)
Fördröjd betingning kan tänkas förklaras genom Hebbmekanismer i kedjor av neuron - men är sådana
modeller realistiska?
Här är Pavlovmodellen:
Övervakad och styrd inlärning i linjära associatorer
•
•
•
•
Vid övervakad inlärning har nätverket en önskad output för varje inputvektor. Denna önskade
output kan vara ett skalärt tal som anger önskad
klasstillhörighet för input, men kan också vara
en vektor som i figuren här. Den jämförs med
nätets verkliga output och vikterna korrigeras så
att felet minskar. Ofta används deltaregeln.
En linjär associator med n inputnoder (Xi) och n
outputnoder (Yi) kan med deltaregeln bilda associationer mellan högst n stycken linjärt oberoende inputvektorer och fritt valda outputvektorer,
utan att associationerna interfererar med varann.
Vid styrd, oövervakad inlärning (eng.: forced
learning; jfr Pavlov-modellen ovan) “tvingas”
den önskade output på nätet som signal i outputenheterna under träningen. Med Hebbregeln
och sådan styrd inlärning kan n stycken ortogonala inputvektorer associeras med var sin godtyckligt vald outputvektor.
Nätet kan också autoassociera vektorer och
därefter mönsterkomplettera.
Deltaregelns konvergens i den linjära associatorn
Outputfelet E är summan (över alla outputnoder och alla
inputvektorer) av de kvadrerade skillnaderna mellan
verklig och önskad output, och är (givet en viss inputmängd) en positiv funktion av nätverkets vikter. I ett
linjärt nätverk är denna funktion kvadratisk, dvs inga
termer har högre potens än 2.
Uppgift: Träna vidstående binära mini-associator på
(0,0) → 0; (1,0) → 0; (0,1) → 1; (1,1) → 1.
Felfunktionen ser då ut som nedan:
Eftersom felfunktionen är kvadratisk har den ett
enda minimum. För att hitta detta minimum från
en given punkt (dvs från de initiala vikterna) kan
man t.ex. gå brantaste vägen neråt. Detta är likvärdigt med att i w1-led röra sig i proportion till den
partiella derivatan av E med avseende på w1, och
motsvarande i w2-led. Detta kan visas vara (nästan) ekvivalent med deltaregeln.
Perceptronen (1)
Tröskelaktivering: y = 1 omm x1w1 + x2w2 > θ
Beslutsgräns: den räta linjen x1w1 + x2w2 = θ
“XOR-problemet”:
• Historiskt viktig typ av ANN
(Rosenblatt)
• Enlagrat FF-nätverk
• I Rosenblatts version har nätet
ytterligare ett lager på inputsidan,
men med fixa vikter (det ökar
därför inte beräkningskraften)
• Stegfunktion
• Utför styrd klassifikation av
mönster
• Använder perceptronregeln
(variant av deltaregeln)
• Kan endast lösa linjärt separerbara
problem
• Konvergerar mot en lösning om
den existerar
Perceptronen (2)
I denna modell kodas tio LCD-siffror sålunda, att en inputkanal är aktiv om
motsvarande segment i siffran är “på”. Siffran 1 kodas alltså som 0110000, etc.
Användaren kan välja en godtycklig indelning av siffrorna i två klasser och
försöka träna perceptronen till att göra samma indelning.
Vissa klassindelningar
definierar linjärt icke
separerbara problem (nu i
sju dimensioner). Ett
exempel fås om man
försöker lägga siffrorna 6
och 9 i den ena klassen
och övriga i den andra.
Feedback-nätverk (återkopplade, rekurrenta)
• En signal kan i princip cirkulera
hur länge som helst
• Inte självklart att signalmönstret
stabiliseras
• Om mönstret alltid blir stabilt
har vi ett attraktornätverk
• Signalmönstret i attraktorläge
kan då betraktas som nätverkets
(statiska) output
• Men andra möjligheter finns.
T.ex. kan den fortlöpande
aktiviteten i någon delmängd av
enheterna ses som output över
tid från nätverket
Synkron uppdatering från (1, 1) ger:
(1, 1) → (–1, 1) → (–1, –1) → (1, –1) → (1, 1) →
dvs en gränscykel av mönster
Varannan-uppdatering med början i X ger:
(1, 1) → (–1, 1) → (–1, 1) → (–1, 1) →
dvs en punktattraktor
Det mänskliga nervsystemet domineras
helt av återkopplade förbindelser!
Hopfieldnätet (“Diskret autokorrelator”)
• Också historiskt viktigt
• Feedback-arkitektur
• Symmetriska vikter med 0
överallt på diagonalen
• “Konservativ” stegfunktion
• Asynkron, slumpmässigt vald
uppdatering av noderna
• Stabiliserad dynamik (Hopfield)
• Tränas fr.a. med Hebb
• Auto-associativt
• Mönsterkompletterar till de
inlärda mönstren
• Modell av perceptuell
komplettering och
innehållsadresserbart minne?
Hopfieldnätets stabilitet
• Hopfieldnätet uppdateras asynkront och har aktiveringsfunktionen:
1 om net_in > 0
-1 om net_in < 0,
samma aktivitet som tidigare, om net_in = 0.
• Nätverkets globala energi: E = - 1/2 (∑ xi xj wij) (summation över i, j).
• Energin är ett globalt mått på icke-överensstämmelsen mellan
nodernas nettoinput och aktivitet. Observera nämligen att ∑ xi xk wik
(där vi bara summerar över i) = xk ∑ xi wik = xk net_ink
• Storheten - 1/2 (xk ∑ xi wik), den lokala energin Ek för nod k, ändras
därför i negativ riktning, om noden ändrar aktivitet vid uppdatering.
• Övriga ändringar i den globala energin då nod nr k uppdateras är
tillsammans lika med ändringen i den lokala energin.
• Detta förhållande beror på viktsymmetrin, wij = wji.
• Den globala energin går alltså alltid ned då en aktivitet ändras
• Då energin bara har ett ändligt antal möjliga nivåer (med givna
vikter) måste den till slut nå ett minimum där ingenting mer ändras.
HyperHopfield
I denna modell, där input återigen är binärt (eller bipolärt) kodade LCD-siffror,
kan man bl.a. studera hur ett rekurrent nätverks aktivitet spontant uppdateras.
Man kan följa energifunktionens utveckling och pröva under vilka villkor på
vikterna som uppdateringen leder till ett stabilt sluttillstånd (en attraktor).
Nätverket kan tränas att
känna igen en eller flera
siffror. När det tränats och
ett “felaktigt” mönster
presenteras, kompletteras
detta under nätverkets
uppdatering ofta till att bli
något av de inlärda mönstren
Konkurrens, samarbete och ”the winner takes it all”
• I nervsystemet ser man många exempel på ”konkurrens”
genom ömsesidig hämning
• Typexempel: lateral inhibition som ger kontrastförstärkning
• I ANN-modeller, t.ex. SOM,
åstadkommer man oftast denna
”winner takes all” på andra sätt
• I det (teoretiska) fall då den
ömsesidiga inhibitionen leder
till att ett och endast ett
element förblir aktivt, talar
man om kompetitiv aktivering
eller ”the winner takes it all”
• Konvergens mellan förbindelser kan
ibland beskrivas som ett slags samverkan (kooperation)
Self-Organising Map (SOM)
•
•
•
•
•
Ett av Kohonens ANN
Enlagrat FF-nätverk
Kompetitiv aktivering
Kohonen-inlärning
Gör oövervakad klassifikation
(kategorisering) av inputs
• Ger en 2D-karta över likheter i
inputdatamängden: efter träningen
vinner rumsligt näraliggande
enheter på (kodar) liknande inputs
• Nodernas rumsliga placering i
nätverket har alltså betydelse
• Skilj denna rumsliga placering
från placeringen i vektorrummet
av nodernas viktvektorer!
Kompetitiv aktivering i SOM
• För varje input (gröna) utses den
nod (röda) till “vinnare” vars
viktvektor ligger närmast denna
input i vektorrummet. Ofta
används euklidiskt avstånd (mätt
med Pythagoras’ sats i n dimensioner). Vinnarnoden får aktivitet 1
och övriga noder får aktivitet 0.
• Alternativt kan man alltså tänka sig
“vanlig” linjär aktivering och
sedan en ömsesidig inhibition,
anpassad så att den nod som har
störst aktivitet från början blir
ensam kvar.
• Om alla vektorer har samma längd
är betraktelsesätten likvärda. x ∗ y
= l(x) l(y) cos α!
α
Inlärning i SOM
•
•
•
•
•
•
Kohonen-inlärning: den vinnande
nodens viktvektor dras (ännu)
närmare den aktuella inputvektorn
Även (de rumsliga) grannarnas
viktvektorer dras (lite) närmare
denna inputvektor. (Endast en granne
illustreras här.)
Obs: noder som är rumsliga grannar
behöver från början inte ha viktvektorer som ligger nära i vektorrummet!
Grannarna blir genom inlärningen
bättre på att vinna på vektorer som
liknar den aktuella inputvektorn
På detta sätt kommer rumsligt näraliggande noder så småningom att
vinna på (koda för) liknande inputs
Detta är kartan över inputdomänen
Kartan över inputdomänen - ett exempel
2
1
4
3
7
6
5
10
11
9
8
12
14
13
16
15
18
17
20
19
21
22
24
25
28
29
23
26
27
30
• Informationen om likhet i
inputs n dimensioner
komprimeras och avbildas på
rumsrelationer i (oftast) två
dimensioner. Kartan kan vara
en torus, dvs “gå runt”.
• Omkodning av input, t.ex. byte
av skala för en komponent i
vektorerna, kan leda till
förändringar i vilka vektorer
som bedöms som “nära”
varann, och därmed till olika
slutresultat.
• Dimensioner som man vill ska
ha särskilt stor vikt vid
klassifikationen skall alltså
“skalas upp”.
“Travelling salesman” med SOM
•
•
•
•
•
•
“Travelling salesman” (TSP) är problemet att hitta kortaste
vägen genom ett antal städer.
I en förenklad variant, det euklidiska TSP, är städerna
givna genom sina koordinater på kartan och avståndet
definieras genom fågelvägen. Det kan lösas med SOM.
Bygg ett endimensionellt SOM med lika många noder som
städer och med städernas koordinater som inputvektorer.
Efter träningen kodar, som vanligt, rumsligt näraliggande
noder för liknande inputs, vilket ju nu betyder: för
geografiskt närliggande städer.
Koordinaterna för noderna, i den ordning som noderna
kommer i nätverket, är m.a.o. nätverkets förslag till resväg!
Nodernas koordinater sammanfaller i allmänhet inte exakt
med städernas. Resvägen (t.h.) måste därför “putsas”.
Neurala nätverk för olinjära klassifikationsproblem
• Många klassifikationsproblem i levande livet
är inte linjärt separerbara.
• Traditionella statistiska metoder för linjär
diskrimination, liksom enkla perceptroner,
felklassificerar alltså helt säkert några av data.
• Flera typer av neurala nätverk, inte minst
flerlagrade perceptroner med sigmoida
aktiveringsfunktioner, kan däremot lösa
“alla” konsistenta klassifikationsproblem (i
en given datamängd) perfekt.
• De kan också approximera (nästan) alla
matematiska funktioner. De tränas då med
funktionens argument som input och
funktionsvärdena som output
• En flerlagrad perceptron har minst två lager
av förbindelser med adaptiva vikter (dvs
dessa vikter påverkas av inlärningen)
X
2
1
X
1
1
X
2
1
X
1
1
Arkitektur och aktivering i flerlagrade perceptroner
•
•
•
•
•
Inputenheterna kan ha direkta förbindelser till output, men i standardmodellen
går signalflödet alltid via de dolda
noderna
De dolda noderna skall ha sigmoida
aktiveringsfunktioner, t.ex. den logistiska
funktionen y = 1/(1 +e–sx) (sigmoid i
snäv mening) eller tanh (tangens hyperbolicus, en trigonometrisk funktion)
Outputenheterna kan vara linjära, särskilt
när nätverkets används för regression
Om uppgiften är klassifikation är det
lämpligt att använda en logistisk
outputfunktion. Output kan då tolkas som
sannolikheten för klasstillhörighet
Output kan också kodas som “1 av N”,
och approximerar då (med en logistisk
s.k. softmaxfunktion) sannolikheterna för
tillhörighet till ifrågavarande klasser
SIGMOID MED S = 2 RESP. S = 5
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
PLOT AV TANH MELLAN -! OCH !
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-3
-2
-1
0
1
2
3
Träning av MLP-nätverk
•
•
•
•
•
Den algoritm som kallas “back
propagation of error” beräknar på
ett speciellt sätt varje vikts bidrag
till outputfelet (mätt som derivatan
av felet med avseende på vikten)
och korrigerar vikterna därefter.
Outputfelet för en given datamängd,
sett som en funktion av vikterna, är
nu en funktion med flera minima,
och algoritmen leder ofta ner i ett
“lokalt minimum” (till skillnad från
deltaregeln i ett linjärt nätverk).
Här illustreras detta, helt orealistiskt, för fallet med bara en vikt
För att öka sannolikheten att hitta
ett globalt minimum kan man
enklast upprepa försöket några
gånger med nya initiala vikter.
Många förbättrade algoritmer finns.
EN FELFUNKTION MED TVÅ MINIMA
120
100
80
60
40
20
0
-2
-1.5
-1
-0.5
0
0.5
1
1.5
Finns det då några fel på denna underbara metod?
•
•
•
•
•
•
En “perfekt” lösning har ofta dålig
förmåga till generalisering. Orsak:
Data härrör ofta från samverkan mellan
en enkel, förutsägbar process och en
oförutsägbar slumpfaktor
Den “perfekta” lösningen hittar en
allmän regel, som i den givna datamängden stämmer perfekt även med
data som mest beror på slumpen
Detta ger dock ingen fördel i nästa
urval av data – tvärtom
Enklare lösningar anpassar sig inte lika
nära till de slumpbetingade data
Exempel: Om data härrör från två
skilda normalfördelningar med samma
spridning, är en viss rät linje den bästa
beslutslinjen. Den kan förväntas ge
lägst antal felaktiga förutsägelser!
X
2
1
1
X
1
2
Ska man då aldrig använda olinjära metoder?
• Jo, om man har någon oberoende anledning att anta att de underliggande sambanden motiverar en sådan
• Redan antagandet om olika varians hos två normalfördelningar leder
således till att en kvadratisk kurva är den bästa beslutslinjen
• Om man har anledning anta att sambanden är ännu mer “ickenormala”, men inte vet särskilt mycket mer om dem, är det motiverat att pröva en allmän icke-linjär metod, som t.ex. flerlagrade,
olinjära neurala nätverk.
• Som försiktighetsåtgärd måste man alltid pröva resultaten från
träningen av nätverket på en oberoende datamängd (“testfil”).
• Nätverkets komplexitet skall hållas så låg som möjligt genom val av
ett litet antal dolda noder, och gärna genom någon automatisk metod
för att förhindra höga vikter (viktregularisering).
LVQ (Learning Vector Quantisation)
•
•
•
•
LVQ fungerar i mycket som Kohonens
självorganiserande karta (SOM). LVQ
gör dock ingen rumslig karta, och det är
nu fråga om en övervakad klassifikation.
Om uppgiften är att indela en mängd av
inputmönster i N olika klasser, skall
nätverket ha N outputnoder och klasstillhörigheten skall kodas som “1 av N”. I
figuren till höger är N = 2.
Antalet mellanliggande “Kohonen-noder”
väljs som en multipel M av N, till
exempel 3 * N. Då kan M (i figuren: 2)
mellanliggande noder kopplas till varje
outputnod. Kopplingen är “direkt”, dvs.
aktivitet i en Kohonen-nod ger automatiskt aktivitet i motvarande outputnod.
Dessa M noder sägs fortsättningsvis
“höra till” den klass av mönster som
skall kodas av aktivitet i resp. outputnod.
Aktivering och inlärning i ett LVQ-nät
•
•
•
•
•
I figurerna till höger symboliseras de två
klasserna med kvadrater respektive cirklar.
Ofyllda symboler står för inputs, och fyllda
cirklar står för viktvektorerna hos tillhörande
Kohonennoder. (“Rund”, fylld nod hör alltså
till “rund”, ofylld input, etc.)
Man ger en input (blå ring) och utser en
vinnare i form av den Kohonen-nod vars viktvektor (grön ring) ligger närmast input
Om och endast om den vinnande noden hör
till respektive inputs klass (cirkel/kvadrat)
“drar” man dess viktvektor närmare inputvektorn, i annat fall (som i den övre figuren)
avlägsnar man den från inputvektorn
Så småningom kommer viktvektorerna för
varje nod som hör till en viss klass att ligga
nära någon cluster av inputs i denna klass
Eftersom varje klass kodas av flera (M st)
Kohonen-noder kan LVQ lösa icke linjärt
separerbara problem (nedre figuren)
Adaptive Resonance Theory (ART 1)
•
•
•
•
•
ART är ett biologiskt inspirerat feedbacknätverk för kategorisering
(oövervakad klassifikation), som
arbetar enligt principerna konkurrens
och analys genom syntes
Det har rekurrenta förbindelser från
det kompetetiva lagret, och den
definitiva vinnaren måste producera en
output som är tillräckligt lik input.
(Vigilansfaktorn bestämmer vilka krav
på likhet som ställs.)
Reset-mekanismen träder i aktion om
detta inte sker, och en ny nod prövas
då som vinnare
Träning sker enligt en modifierad
Hebbregel
ART har både stabilitet och plasticitet,
till skillnad från t.ex. Hopfieldnätet
och SOM
Inlärning av sekvenser (1): MLP med tidsfönster
•
Neurala nätverk kan analysera sekventiell
information på flera sätt. Man kan t.ex. ge en
MLP ett rörligt tidsfönster. Man matar in de
sekvenser som man vill predicera från, och det
som man vill predicera, i ett vanligt feedforwardnät som input resp. output
Om man vill predicera nästa steg från de tre
föregående skall man välja ett nät med tre
inputs och en output, och slumpvis mata in
alla delsekvenser om fyra steg
Träning sker vanligen genom någon variant av
back propagation
Det resulterande nätverket är väl anpassat till
data och förutsäger, om man valt ett lagom
kraftfullt nätverk, nya data hyfsat korrekt
Nätverket har då approximerat den bakomliggande funktionen bra, vilket alltså (jämför
ovan) inte betyder att den bakomliggande
mekanismen måste ha strukturen av ett
nätverk!
•
•
•
•
Sekvensinlärning (2): Egentliga återkopplade nätverk
•
•
•
•
I de egentliga återkopplade nätverken för analys av sekvenser, typ Jordan och Elman,
behöver man inte ge hela sekvenser av inputs till inputnoderna. Information om
tidsföljd lagras istället genom de rekurrenta förbindelser som finns
I Elmans version (SRN, Simple Recurrent Net, till vänster nedan) återföres informationen från de dolda noderna till ett särskilt lager av noder (kontextlagret, ”current
plan” i NeuralWorks), som också fungerar som “extra inputnoder”
I Jordans version (nedan till höger) är det istället outputnoderna som har feedbackförbindelser till kontextlagret
Träning kan ske genom back propagation-algoritmen
Genetiska algoritmer för neurala nätverk
•
•
•
•
•
•
För prediktionsuppgifter och annan systemanalys (cellsignalering!), och inte minst för
inlärning av kontroll (robotik!), vill man ofta använda mer komplicerade feedbackarkitekturer än Elman- och Jordan-näten
För dylika nätverk, liksom för andra typer av ANN, finns en alternativ och mycket
kraftfull typ av inlärningsmekanism att tillgå, nämligen de genetiska algoritmerna
Dessa metoder, som också benämns evolutionära algoritmer, är analoga med naturligt
urval på populationsnivå snarare än med inlärning på individnivå
En hel population av neurala nätverk skapas m.e.m. slumpvis, vart och ett med
parametrar som skiljer sig något från de andras. Vanligtvis håller man arkitekturen
konstant och varierar endast vikterna. Dessa representeras matematiskt som
delsträngar i en lång sträng av tal, ofta binära (andra representationer är också vanliga)
Alla nätverk i populationen prövas på det problem som ska lösas. De nätverk som
lyckas sämst ”kasseras”, medan de andra får chansen att ”föröka sig” och till och med
få gemensam avkomma genom att parameteruppsättningarna ”rekombineras”. Genom
”mutationer”, dvs små slumpvisa parameterförändringar, garanterar man att det i långa
loppet sker en positiv utveckling (och inte bara ett negativt urval)
Genetiska algoritmer är kraftfulla men långsamma!
Nätverk utan inlärning: modellering av stereopsi
•
•
•
•
•
Stereopsi är en av de
viktigaste mekanismerna för 3D-seende. Den
är “lågnivåig” i det att
den inte förutsätter
objektigenkänning
Bygger på disparitet
mellan motsvarande
näthinnepunkter
För att kunna beräkna
dispariteter måste
hjärnan veta vilka
punkter som motsvarar
varandra. Annars får
man “falska matchar”
De falska matcharna
kan elimineras under
vissa antaganden om
objekten i omvärlden
Det finns ANN som
klarar detta och kan
lösa Julesz-stereogram
“Stereomaskinen”
•
Outputlager
Kompetitivt lager (5)
•
Kooperativt lager (4)
•
Matchningslager (2-3)
Inputlager (1, “näthinnor”)
Nätverket bygger, förutom på detektion av överensstämmelser, på en
kombination av kooperation och kompetition
mellan neurala enheter
Samarbetet i lager 4
kodifierar nätverkets bias
till förmån för sammanhängande objekt, som det
alltså har jämförelsevis
lätt att ”se”
I figuren kan man bl.a.
iaktta hur den kooperativa
processen i lager 4 eliminerar små inhomogeniteter i det mönster som
kommer från lager 3
Addendum 1: Vektorer och matriser
2-dimensionella vektorer (-1, 0) etc.
(Komponentvis) addition av vektorer
Multiplikation med skalär: 3 · (2,5) = (3·2, 3·5) = (6,15). Skilj från:
Skalärprodukt: (1,1) ∗ (2,1) = 1 · 2 + 1 · 1 = 3 (komponentvis
multiplikation samt addition av resultaten)
Alternativ definition: v1 ∗ v2 = l(v1) · l(v2) · cos α
Ortogonala vektorer: v1 ∗ v2 = 0
En uppsättning vektorer sägs vara
linjärt oberoende om ingen av
vektorerna kan skrivas som en linjär
kombination av de andra.
Normalisering: l(v) = 1
Vektorer och matriser (2)
• Betrakta feedforward-nätverket här bredvid med 3
inputnoder och 2 outputnoder. Nettoinput till noden X4 är
skalärprodukten av inputvektorn i = (x1, x2, x3) och nodens
viktvektor w4 = (w14, w24, w34), ty:
x_in4 = x1 w14 + x2 w24 + x3 w34 = Σ xi wi4 = i ∗ w1
• Av detta följer att givet normerade vikt- och inputvektorer
och enkel linjär aktivering, så ger den nod störst output vars
viktvektor ligger närmast inputvektorn, dvs vars viktvektor bildar den minsta vinkeln α med inputvektorn (cos α är störst då)
• Det normerade nätverket kan alltså sägas mäta likheten
mellan varje input och de olika viktvektorerna
• I kompetitiva nät låter man därför ofta den nod vinna (som
enda nod få aktiviteten 1) vars viktvektor ligger närmast inputvektorn, mätt med euklideiskt avstånd. Alternativt kan man
låta neuronen konkurrera genom ömsesidig inhibition tills
endast ett är aktivt
• I icke-normerade nätverk spelar den absoluta storleken på
input- och viktvektorerna också roll för responsen
Vektorer och matriser (3)
• En matris är en ordnad struktur av tal, oftast i två
dimensioner: ! 2 3 1$
# 1 10 0 &
"
%
här med 2 rader och 3 kolumner. Elementet i rad i och
kolumn j betecknas aij
• Addition av matriser sker komponentvis
• Matrismultiplikation mellan en matris A och en matris
B, som betecknas med AB, kan ske omm A har m rader
och n kolumner, dvs. är en (m, n)-matris, medan B har n
rader och p kolumner, dvs är en (n, p)-matris. Resultatet
blir en (m, p)-matris. Element nr aij fås av skalärprodukten
mellan rad i från A och kolumn j från B (de är lika långa!)
• Vektorn av nettoinputs till ett enlagrat nätverks outputenheter är matrisprodukten av inputvektorn, nu betraktad
som en (1, n)-matris, och viktmatrisen w: x_in = iw. Om
vi slutligen betecknar aktiveringsfunktionen med f och
vektorn av aktiviteter i outputenheterna med y, är y = f(iw)
Hjärnan: cirka 1011
neuron, vart och ett
med cirka 1000
förbindelser...
Viss ödmjukhet
tillrådes alltså...
We should keep in mind, whether
theorizing or experimenting, that the brain
is at least as complicated as the kidney.
Paul E. Meehl