Self-Organizing Maps - oövervakad inlärning i neurala nät
Sammanfattning Self-organizing maps är en modell av neurala nätverk med egenskapen av oövervakad inlärning. En self-organizing map organiserar data så att den kan presenteras statistiskt och visuellt, utan att kräva specificering av förväntat resultat. I detta fördjupningsarbete undersöks idén, arkitekturen och algoritmen bakom en Kohonen-self-organizing map. Avslutningsvis presenteras några av selforganizing maps användningsområden. i
Innehåll 1 Introduktion! 1 1.1 Bakgrund! 1 1.2 Källor! 1 2 Nätverksarkitektur! 2 2.1 Översikt! 2 2.2 Exempel! 3 3 Algoritm! 4 3.1 Översikt! 4 3.2 Initialisering av vikter! 4 3.3 Inmatning! 4 3.4 Beräkning av BMU! 4 3.5 Beräkning av BMU:s lokala grannskap! 5 3.6 Justering av vikter! 6 3.7 Iteration! 7 4 Tillämpningsområden! 8 Källhänvisning! 10 ii
1 Introduktion 1.1 Bakgrund Begreppet Self-Organizing Map (SOM) introducerades av Teuvo Kohonen (Dr. Eng., Professor Emeritus av Finlands Akademi; Academician), 1981 (Kohonen, 1990). Idén är sprungen ur teorier om hjärnans sätt att organisera information. Forskning har visat att hjärnan processar sensorisk input i olika regioner av cerebrala cortex. Dessa regioner, exempelvis visuella cortex, är uppdelade i mindre områden av celler som tillsammans processar signaler genom att bidra med olika kognitiva funktioner. Celler i närliggande områden har visat sig utföra relaterade kognitiva funktioner. Ett exempel på detta är det visuella systemet, där närliggande neuroner i näthinnan projicerar information till närliggande neuroner i en målstruktur, exempelvis superior colliculus (Eglen & Gjorgjieva, 2009). Dessa topologiska samband av områden med liknande kognitiva funktioner ligger till grund för teorier om att vissa områden utvecklas oövervakat genom själv-organisering, dvs. att det existerar en tävlingsartad topologisk omorganisation av information i hjärnan (Taner, 1997). Kohonens modell är en simulering av denna teoretiserade process. 1.2 Källor Informationen jag har använt mig av för att kunna skriva detta fördjupningsarbete härrör sig i huvudsak från internet och från tidskrifter. Många av förklaringsexemplen i detta fördjupningsarbete, innefattande bilder och ekvationer, har lånats från en webbsida skapad av Mat Buckland, AI-programmerare och författare till böckerna Programming game AI by example och AI techniques for game programming. 1
2 Nätverksarkitektur 2.1 Översikt Ett Kohonen-nätverk har två lager av noder, ett inmatningslager och ett utmatningslager. För varje inmatningsvektor som presenteras för nätverket kommer vektorns dimensioner att representeras av noder i inmatningslagret, så att varje nod korresponderar med ett element i inmatningsvektorn. Det finns ingen begränsning av hur många dimensioner inmatningsvektorerna kan vara, men höga dimensioner av data innebär en exponentiell ökning av minneskomplexitet. Utmatningslagret, som representerar själva kartan, kan vara organiserat i godtyckligt antal dimensioner. Vanligast är den tvådimensionella varianten, eftersom utdata vanligtvis ämnas att presenteras i ett överskådligt visuellt format. (Buckland; Germano, 1999) Figur 1 Figur 1 visar ett mycket litet nätverk av 4x4 noder kopplat till ett inmatningslager (i grönt) som representerar en tvådimensionell vektor. Varje nod i utmatningslagret har en topologisk position, dvs. en x-position och en y-position i nätverket, samt en direkt koppling till samtliga noder i inmatningslagret. Varje nod innehåller en vektor av vikter av samma dimensioner som inmatningsvektorerna (Buckland; Germano, 1999). Alltså, om träningsdata innehåller inmatningsvektorerna V, som består av n dimensioner: V1, V2, V3...Vn, kommer varje nod innehålla en motsvarande viktvektor W, av n dimensioner: W1, W2, W3...Wn. Som tidigare nämnt tillåter SOM möjligheten att mata in vektor-data av n dimensioner och representera samma data i lägre dimensioner (vanligtvis två). Denna teknik kallas för vektorkvantisering. Kvantisering är processen av att mappa en stor uppsättning inmatningsvärden till en mindre uppsättning utmatningsvärden, vilket resulterar i en komprimerad datamängd (Gersho & Gray, 1991). Problemet datavisualisering försöker lösa är människans oförmåga att själv visualisera och förstå flerdimensionella data. För att lösa detta problem kan SOM vara ett användbart verktyg (Germano, 1999). 2
2.2 Exempel Figur 2 Figur 2 visar utdata från en Kohonen-SOM av 40x40 noder. I detta nätverk är inmatningslagret en uppsättning av tre noder varav en nod representerar färgen röd, en representerar grön och en representerar blå. Lämplig inmatningsdata till detta nätverk är vektorer av motsvarande tre dimensioner, vars värden varierar så att de kan modellera en önskvärd färg. Om vi antar att vektorerna motsvarar [R,G,B] och att vektorernas värden är av formen 0 < x < 1, kan vi representera färgen röd genom vektor [1,0,0], eller använda [0.5, 0.5, 1] för att representera färgen ljusblå. Om vi matar in n antal träningsdata av denna form i vårt Kohonen-nätverk, kan dessa träningsdata, efter i antal iterationer av Kohonens algoritm, kategoriseras genom själv-organisering. När organiseringsprocessen är slutförd kan de modellerade färgerna för respektive nod ritas ut i ett visuellt format som i Figur 2. 3
3 Algoritm 3.1 Översikt I neurala nätverk distribueras information över nätverkets noder. Under proceduren av självorganisering i en SOM behålls informationens topologiska relation delvis intakt så att information som är liknande kan samlas ihop i närliggande områden. Detta realiseras algoritmiskt genom att ett lokalt grannskap räknas ut för varje iteration, baserat på the best matching unit (BMU); den nod som bäst matchar inmatningsdata. Sedan, när en justering sker av BMU s vikter, har justeringen även verkan på enheterna i det lokala grannskapet. Justeringen innefattar en funktion för att krympa det lokala grannskapet över tid, vilket innebär att influensen som justeringen har på de påverkade nodernas vikter, blir mindre och mer finjusterad för varje iteration. (Kohonen, 1990; Sum et al., 1997; Buckland; Germano, 1999) 3.2 Initialisering av vikter Nätverksnodernas vikter initialiseras enligt en konstruktorfunktion som tilldelar vikterna ett slumpmässigt värde ur ett visst numeriskt intervall (Germano, 1999). I fallet av exemplet ovan, där inmatningsdata representerar färger, var detta intervall bestämt till 0 < x < 1. Detta intervall är arbiträrt och bestäms ofta enligt konvention och beroende av typ av inmatningsdata. 3.3 Inmatning En vektor ur datauppsättningen väljs ut slumpmässigt och matas in i nätverket (Germano, 1999). 3.4 Beräkning av BMU The Best Matching Unit (BMU) är namnet på den nod i nätverket vars viktvektor är mest lik vektorn av den aktuella inmatningsdatan. Proceduren av att utnämna en BMU kallas för en the winner takes it all- mekanism ; En analogi i vilken noderna i nätverket liknas vid medtävlare i en tävling och där BMU är liknas vid en vinnare. Ur denna analogi uppkom även namnet på den kategori av neurala nätverk man kan tillskriva SOM, dvs. Competitive Networks (Kohonen, 1990). Skillnaden mellan nodernas vektorer och inmatningsvektorn kan räknas fram på olika sätt. Ett vanligt tillvägagångssätt är att iterera över samtliga noder och räkna ut det euklidiska avståndet mellan vektorerna (Germano, 1999). Ekvation 1 betecknar det euklidiska avståndet. Ekvation 1, i vilken V står för inmatningsvektorn och W står för nodens viktvektor. 4
Om vi använder oss av inmatningsvektorn som representerar färgen röd [1,0,0], från exemplet ovan och beräknar det euklidiska avståndet från denna vektor till en slumpmässig viktvektor [0.1, 0.5, 0.5] ur nätverket, ser uträkningen ut som följer: distance = sqrt( (1-0.1) 2 + (0-0.4) 2 + (0-0.5) 2 ) = sqrt( (0.9) 2 + (-0.4) 2 + (-0.5) 2 ) = sqrt( 0.81 + 0.16+ 0.25 ) = sqrt(1.22) distance = 1.106 (Buckland) 3.5 Beräkning av BMU:s lokala grannskap Efter att BMU är beräknad måste storleken av ett lokalt grannskap av noder bestämmas. Noderna inom detta grannskap kommer i nästkommande steg av algoritmen att uppdateras på det sätt som utgör simulerad inlärning. Storleken av grannskapet bestäms genom uträkning av BMU:s radie. Radien ska krympa med tiden, dvs. efter ett visst antal iterationer. Efter n antal iterationer kommer det lokala grannskapet att ha minskat till att endast inbegripa BMU (Buckland; Germano, 1999). Figur 3 illustrerar hur det lokala grannskapet minskar över tid. BMU är markerad i gult. Radien är utmärkt med en grön pil. Figur 3 För att ta hänsyn till successiv förminskning vid uträkning av radien kan man använda sig av en exponentiell sönderfallsfunktion (Buckland): Ekvation 2, i vilken Sigma, σ 0, står för bredden av nätverket vid tidpunkten t 0. Lambda, λ, står för en tidkonstant. t är det nuvarande tidssteget, dvs. den nuvarande iterationen. 5
3.6 Justering av vikter Varje nod i BMUs grannskap inklusive BMU, får sina vikter justerade enligt följande ekvation: Ekvation 3, i vilken t representerar tidssteg, Theta, Θ, är en funktion som representerar mängden av influens nodens euklidiska avstånd från BMU kommer att ha på förändringen, L står för Learning Rate och är en variabel som minskar med tid. V står liksom i tidigare exempel och ekvationer för inmatningsvektor och W står för viktvektor. W (t + 1) representerar således vikten under nästkommande tidssteg. Influens, Θ(t), learning rate, L(t), och skillnad mellan inmatningsvektor och viktvektor, (V(t) - W(t)), representerar tillsammans den förändring som ska ske, baserat på nuvarande tillstånd W(t). Introduktionen av funktionen theta, Θ(t), innebär att effekten av inlärning blir proportionerlig mot skillnaden mellan inmatningsvektor och viktvektor. Funktionen är given i Ekvation 4. En illustration av effekten som vill uppnås av inlärning genom justering av BMU och dess lokala grannskap kan ses i Figur 4, där alla värden över 0 betecknar noder och värdet 1 betecknar BMU. Ekvation 4, i vilken dist är skillnaden mellan inmatningsvektor och viktvektor (det euklidiska avståndet, Ekvation 1) och σ är beräkningen av BMUs lokala grannskap (Ekvation 2). Figur 4 6
3.7 Iteration Proceduren repeteras från steg 2 i n iterationer. Antalet iterationer som krävs för att erhålla ett tillfredsställande resultat av inlärningen varierar stort. Kohonen skriver (1990) att det inte finns något optimalt sätt att uppskatta denna siffra; Since learning is a stochastic process, the final statistical accuracy of the mapping depends on the number of steps, which must be reasonably large; there is no way to circumvent this requirement. A rule of thumb is that, for good statistical accuracy, the number of steps must be at least 500 times the number of network units. Det är värt att notera att utfallet av en SOM aldrig blir exakt likadant i de fall man genomför proceduren två eller fler gånger, givet samma uppsättning data (Germano, 1999). Detta är en konsekvens av att vikterna innehåller slumpmässiga värden samt att inmatningsdata presenteras i slumpmässig ordning. Figur 5 visar ett sådant scenario. Figur 5 7
4 Tillämpningsområden Det är vanligt att Self-Organizing Maps används som ett verktyg för datavisualisering (Buckland; Germano, 1999). Vektorkvantisering tillsammans med den tävlingsmässiga inlärningsprocessen utgör en bra metod för att visualisera skillnader och likheter i data. Ett exempel på detta är givet i Figur 5 och Figur 6. Figurerna illustrerar ett försök att kartlägga spridning av livskvalité bland länder, baserat på ett antal faktorer som hälsa, mat och utbildning. I Figur 5 kan utläsas att länder med beräknad högre livskvalité har hamnat uppe i vänstra hörnet medan länder med beräknad lägre livskvalité har hamnat nere i högra hörnet. Länder med liknande förhållanden har bildat färgutmärkta kluster, sedan har länderna inprickats på världskartan (Figur 6). Figur 5!!!!!!! Figur 6 Kohonen använde sin algoritm ursprungligen för taligenkänning, där nätverket utgjorde en fonemkarta. Han lät först en modell av det innre örat utföra frekvensanalys av det finska språket, sedan matade han in resultatet (fonemen) av frekvensanalysen i en SOM. Detta innebar att fonem-kartan automatiskt kategoriserade de inkommande ljuden (Kohonen, 1990). Kohonens fonem-karta är återgiven i Figur 7. Figur 7 8
Forskningsgrupper på Helsinki University of Technology har tagit SOM i bruk genom att bygga ett flertal applikationer. En av applikationerna, som har utvecklats av forskningsgruppen Independent Component Analysis (ICA), är Cocktail party problem, i vilken en SOM processar auditiv information på ett sätt som ämnar efterlikna hur människan separerar olika ljudkällor givet en bullrig ljudbild. En annan grupp, Neural Networks Research Centre (NNRC), har tagit fram ett system för att bläddra genom en textdatabas, WEBSOM, där man får ange, gärna i fulltext, ett önskat ämne och får tillbaka en visuell karta som underlättar informationssökningen. En tredje grupp från universitetet har skapat ett system kallat PicSOM som används för att bläddra genom en bilddatabas. Systemet organiserar och presenterar bilder enligt ett visst antal parametrar som färg, gradient och textur. ([www]: Laboratory of computer and information science, Helsinki University of Technology) Sammanfattningsvis kan self-organizing maps användas i en bred variation av sammanhang, varhelst det finns ett tillfälle för klassificering och visualisering av data. Särskilt användbar kan modellen vara vid hantering av stora mängder data eller data som är komplex och svårtolkad. 9
Källhänvisning Buckland, M. (?). Self-Organizing Maps [www]. Hämtat från http://www.ai-junkie.com/ann/som/ som1.html, 2011-10-01. Eglen, S. J. & Gjorgjieva J. (2009). Self-Organization in the developing nervous system: theoretical models. HFSP Journal Vol. 3, June 2009. Germano, T. (1999). Self-Organizing Maps [www]. Hämtat från http://davis.wpi.edu/%7ematt/ courses/soms/, 2011-10-01. Gersho, A. & Gray, R. M. (1991). Vector quantization and signal compression, pp. 3 4, Kluwer Academic Publishers. Kohonen, T. (1990). The Self-Organizing Map. Proceedings of the IEEE, Vol. 78, No. 9, September 1990. Laboratory of computer and information science, Helsinki University of Technology. Demonstrationsapplikationer av Self-Organizing maps [www]. Hämtat från http:// www.cis.hut.fi/demos/, 2011-10-01. Sum, J. & Leung, C. & Chan, L. & Xu, K. (1997). Yet another algoritm which can generate typography. IEEE transactions on neural networks, Vol. 8, No. 5, September 1997. 10