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