Neura lis ha lo zatok

Hasonló dokumentumok
Az idegrendszeri memória modelljei

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Intelligens Rendszerek Gyakorlata. Neurális hálózatok I.

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

E x μ x μ K I. és 1. osztály. pontokként), valamint a bayesi döntést megvalósító szeparáló görbét (kék egyenes)

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Bevezetés a neurális számításokba Analóg processzortömbök,

Neurális hálózatok.... a gyakorlatban

Megerősítéses tanulás

Mesterséges neurális hálózatok II. - A felügyelt tanítás paraméterei, gyorsító megoldásai - Versengéses tanulás

Hibadetektáló rendszer légtechnikai berendezések számára

TARTALOMJEGYZÉK. TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS A lágy számításról A könyv célkitűzése és felépítése...

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók. Pataki Béla

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Stratégiák tanulása az agyban

Neurális hálózatok bemutató

Az idegrendszeri memória modelljei

Intelligens Rendszerek Elmélete

I. LABOR -Mesterséges neuron

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

Tanulás az idegrendszerben

Gépi tanulás a gyakorlatban. Lineáris regresszió

Gépi tanulás. Hány tanítómintára van szükség? VKH. Pataki Béla (Bolgár Bence)

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Intelligens orvosi műszerek VIMIA023

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Mesterséges Intelligencia Elektronikus Almanach. MI Almanach projektismertetı rendezvény április 29., BME, I. ép., IB.017., 9h-12h.

FELÜGYELT ÉS MEGERŐSÍTÉSES TANULÓ RENDSZEREK FEJLESZTÉSE

[1000 ; 0] 7 [1000 ; 3000]

Visszacsatolt (mély) neurális hálózatok

Gépi tanulás a Rapidminer programmal. Stubendek Attila

Gauss-Seidel iteráció

NEURÁLIS HÁLÓZATOK 1. eloadás 1

Google Summer of Code Project

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

Markov-láncok stacionárius eloszlása

II. LABOR Tanulás, Perceptron, Adaline

Tanulás tanuló gépek tanuló algoritmusok mesterséges neurális hálózatok

Matematika szigorlat, Mérnök informatikus szak I máj. 29.

Konvolúciós neurális hálózatok (CNN)

Principal Component Analysis

Ensemble előrejelzések: elméleti és gyakorlati háttér HÁGEL Edit Országos Meteorológiai Szolgálat Numerikus Modellező és Éghajlat-dinamikai Osztály 34

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

1 Lebegőpontos számábrázolás

Tanulás Boltzmann gépekkel. Reiz Andrea

AKTUÁTOR MODELLEK KIVÁLASZTÁSA ÉS OBJEKTÍV ÖSSZEHASONLÍTÁSA

Matematikai geodéziai számítások 9.

Hőmérsékleti sugárzás

A RADARJELEK DETEKTÁLÁSA NEURÁLIS HÁLÓZAT ALKALMAZÁSÁVAL

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Modellkiválasztás és struktúrák tanulása

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Normális eloszlás tesztje

Matematika (mesterképzés)

Biomatematika 12. Szent István Egyetem Állatorvos-tudományi Kar. Fodor János

Modellezés és szimuláció. Szatmári József SZTE Természeti Földrajzi és Geoinformatikai Tanszék

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Matematikai geodéziai számítások 9.

Megerősítéses tanulás 9. előadás

Lineáris regressziós modellek 1

Modern Fizika Labor. 2. Elemi töltés meghatározása

A neurális hálózatok tanításának alapjai II.: Módszerek a túltanulás elkerülésére. Szoldán Péter

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Monte Carlo módszerek a statisztikus fizikában. Az Ising modell. 8. előadás

Matematikai geodéziai számítások 5.

Random Forests - Véletlen erdők

1.1. Vektorok és operátorok mátrix formában

Mesterséges Intelligencia MI

Babeş Bolyai Tudományegyetem, Kolozsvár Matematika és Informatika Kar Magyar Matematika és Informatika Intézet

Gépi tanulás Gregorics Tibor Mesterséges intelligencia

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Határozatlansági relációk származtatása az

Perceptron konvergencia tétel

Számítógépes döntéstámogatás. Genetikus algoritmusok

BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011.

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Matematikai geodéziai számítások 10.

Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.

Problémás regressziók

12. előadás - Markov-láncok I.

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

1. Gauss-eloszlás, természetes szórás

Dinamika Boole-ha lo zatokon

Példa: Tartó lehajlásfüggvényének meghatározása a Rayleigh Ritz-féle módszer segítségével

Osztott algoritmusok

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

GROVER-algoritmus. Sinkovicz Péter. ELTE, MSc II dec.15.

Konjugált gradiens módszer

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Neurális hálózatok elméleti alapjai TULICS MIKLÓS GÁBRIEL

Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.

Egy uttes m odszerek Isp any M arton es Jeszenszky P eter okt ober 18.

Adatbányászati szemelvények MapReduce környezetben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Az impulzusnyomatékok általános elmélete

Átírás:

Komplex Rendszerek Szim. Mo dsz. Labor Neura lis ha lo zatok Nagy Da vid Gergely Fizika MSc. IV. beadando Fizikai Inte zet Eo tvo s Lora nd Tudoma nyegyetem Budapest 2013

1. Hopfield hálózat A Hopfield-hálózat egy egyszerű, biológiailag inspirált elemekből építkező, emergens számítási kapacitással rendelkező dinamikai rendszer, amely tartalommal címezhető memóriaként viselkedik (content-adressable memory). Ez azt jelenti, hogy az eltárolt memóriáknak nem a címét kell megadni az előhívásához, hanem egy tetszőleges (elegenendően nagy) részét, amelyet a rendszer utána kiegészít a teljes memóriára. Ezt úgy éri el, hogy olyan dinamikai rendszert készít, amelynek a memóriák az attraktorai, lehetőleg minél nagyobb vonzási tartományokkal. Így a rendszer a memóriához a fázistérben kellően közel eső kezdeti feltételből indítva oda konvergál az időfejlődés során. A rendszer egy bináris neuronokból álló teljes konnektivitású rekurrens hálózatnak felel meg. A neuronok száma N, lehetséges állapotaik s i { 1, 1}, az őket összekötő szinapszisok erősségét jellemző mátrix W. A memóriák n hosszú bináris vektorok Mi v { 1, 1}, az állapottér elemei, ahol v indexeli a memórianyomokat. (Az eredeti cikkben -1 és 1 helyett a lehetséges állapotok 0 és 1-el vannak jelölve, de ez szükségtelenül bonyolítja a képleteket így inkább áttértem.) A tanulási szabály (a memórianyomok szinaptikus mátrixba való kódolása): W = δ M v M v ahol a diadikus szorzatot (outer product), pedig az elemenkénti (hadamard) { szorzatot jelöli. δ bizonyos értelemben anti-kronecker-delta mátrix, δij 1 i j = 0 i = j. Erre azért van szükség mert a neuronoknak saját magukkal nincsenek összekötve, azaz a mátrix diagonális elemei 0-k. Indexesen: W ij = v M v i M v j (1 δ ij ) 2

Így a W mátrixnak a memóriák közelítőleg sajátvektorai lesznek, közelítőleg N sajátértékkel. Ez Mathematicaban a következőképpen valósítható meg: offteach[mem_] := Transpose[{mem}].{mem}; w = Total[Table[offTeach[mem[[i]]], {i, 1, m}]]/m; For[i = 1, i < n+1, i++, w[[i]] = 0]; Egy ilyen módon számolt súlymátrix 265 neuron és 5 memórianyom esetén az alábbi ábrán látható. 1. ábra. N=256 m=5 hálózat súlymátrixa. A tanulási szabály szimmetriájából adódik, hogy minden minta inverze is minimumot hoz létre a Lyapunov-függvényben, tehát ha pl 010 attraktor akkor az 101 is az lesz. 2. ábra. 3

Biológiai szempontból az indokolja a tanulási szabályt, hogy a Hebb szabálynak megfelelően megerősödik a kapcsolat azon neuronok amelyeknek a tüzelése korrelál. Időfejlődés A neuron állapota a szinaptikus erősségekkel súlyozott bemeneteitől függ, amelyeket lépcsőfüggvénnyel integrál: Az energiát a következőképpen számoljuk a fenti szabály mindig úgy lép hogy s i (t + 1) = sign(w i s(t)) E = 1 2 st W s = 1 W ij s i s j 2 E V i = 1 2 W ij s j = 1 W s 0 2 i j tehát az energiafelületen csak lefelé lépked, azaz hajlamos lokális minimumokba ragadni. A rendszer Metropolis algoritmussal való frissítése ezt a problémát megoldja, de ezt a változatot már nem Hopfield-hálózatnak hanem Boltzmann-gépnek szokták nevezni. 1 A frissítést aszinkron módon végeztem, minden lépésben véletlenszerűen kiválasztottam egy neuront amelyre aztán alkalmaztam a frissítési szabályt (ez némi sztochaszticitást visz a rendszerbe). Implementáció Mathematica-ban: i j i Do[chosen = RandomInteger[{1, n}]; state[[chosen]] = Sign[w[[chosen]].state], {steps}] 1.1. Kapacitás A memóriák ortogonálisak ha M u M v = 0 u v re A Hopfield hálózat ilyen mintákból tud a legtöbbet megtanulni. Biológiai szempontból azt mondhatjuk, hogy a hálózat már erősen feldolgozott (ortogonalizált) információt tud csak tárolni, mivel pl a természetes képek pixelei jelentősen korreláltak. Megvizsgáltam a kapacitást mindkét esetben. 1 Ennek a kézírás felismerésre való tanításával már foglalkoztam egy régebbi beadandóban: http://davidnagy.web.elte.hu/probmodelsofbrain/boltzmannmachine.pdf 4

1.1.1. Kapacitás véletlen mintákra A memória felidézésének sikerességének mértékeként a Hamming távolságot használtam, amely azt mondja meg hogy a két bináris vektor hány elemében különbözik (az N dimenziós hiperkockán mi a távolságuk). A felidézendő minta és a hosszú idő után beállt állapot Hamming távolságát N-el normáltam és %-ban ábrázoltam az y tengelyen. y(m) = < d Hamming(M v, s( )) > N A mennyiség 0 és 1 között változhat, 0 ha a memória tökéletesen előhívódott és 1 ha a memória ellentéte hívódott elő. Ennek az az előnye, hogy a nagyjából sikeres, azaz a memóriától csak néhány pixelben különböző állapotot nem veszi egy kalap alá azzal mikor egészen máshová konvergál a rendszer. A felidézéshez a rendszert valamilyen memóriához közeli állapotból indítottam, amelyet úgy értem el, hogy a felidézendő memóriát összezavartam ; a pixelek véletlenszerűen kiválasztott p százalékát megfordítottam. Ez a p felfogható úgy mint a memóriák vonzási tartományát jellemző szám. A maximális kapacitás elméletileg kb 0.15N, habár különbségek vannak az irodalomban azzal kapcsolatban hogy a kapacitást hogyan definiálják. Ha az összes memórianyomtól elvárjuk hogy konvergáljon, akkor ennél kevesebb, m < N 4lnN.2 Az előbbi teljesülése esetén az ábrákon x = 0.15-nél kell elromlania a felidézőképességnek, utóbbinál kb 0.1-nél. Az alábbi ábrán látható, hogy ez nagyjából tényleg teljesül, a tökéletes működést és a használhatatlanságot elválasztó lineáris szakasznak kb 0.15-nél található a közepe, viszont a hálózat csak 0.1 alatt nem hibázik egyáltalán. 2 McEliece et al, The Capacity of the Hopfield Associative Memory, 1987, IEEE TRANSAC- TIONS ON INFORMATION THEORY 5

d Hamming N 30 20 10 0 0.0 0.1 0.2 0.3 0.4 3. ábra. A memórianyom felidézésének sikeressége a memóriák számának függvényében állandó N mellett. Egy adatpont mindig 10 futtatás átlaga. A kezdeti állapotokat úgy kaptam, hogy a memória pixeleinek 20%-át átfordítottam. Kipróbáltam úgy is hogy clampelve volt a fele, azaz a pixelek fele a memória volt, a másik fele véletlen, és az előbbit nem updateltem. Ez sokat nem javított a kapacitáson, viszont így kevésbé meredeken romlik el. 20 d Hamming N 15 10 5 0 0.0 0.2 0.4 0.6 0.8 1.0 4. ábra. 10-nek az átalga mindig 6

1.1.2. Kapacitás természetes képekre Egészen nagy hálózatoknál (N=10000) is már ehhez képest nagyon kevés mintára (m=4) igaz, hogy a rendszer néha a memóriák helyett valamilyen memóriák közötti helyre konvergál. Megmutatható 3, hogy páratlan számú memória lineáris kombinációi lokális minimumokká válnak. ɛ mix i = ±sgn(±ɛ µ 1 i ± ɛ µ 2 i ± ɛ µ 3 i ) Én az alábbi 4 nemortogonális mintát tanítottam meg: Kb az esetek harmadában a véletlen kezdeti feltételből indított rendszer az alábbihoz hasonló hamis állapotba került, ami jól láthatóan az utóbbi 3 minta valamilyen kombinációja. 1.2. Kézírás felismerése Hopfield hálózattal A kézíráshoz a mintákat a Machine Learning Repositoryból vettem, egy részük a következő ábrán látható. 4 3 Hertz, John A., Anders S. Krogh, and Richard G. Palmer. Introduction to the theory of neural computation. Vol. 1. Westview press, 1991. 4 UCI Machine Learning Repository, Semeion Handwritten Digit Data Set, http://archive.ics.uci.edu/ml/datasets/semeion+handwritten+digit 7

Ezek 16 16 pixeles képek, ezért egy N = 256 -os hálózattal dolgoztam. Az alábbi ábrán összesítettem az eredményeket. Amikor a rendszer nem ismerte fel a helyes számot, általában nem arról volt szó hogy félreazonosította (azaz másik memóriához konvergált), hanem hogy az alábbihoz hasonló lokális minimumokba állt be. Ezt a helyzet javítható ha az időfejlődést a fentebb említett Boltzmann gépére változtatjuk. Ilyenkor viszont a hőmérséklet miatt a konvergencia után is bolyong a rendszer a memória kis környezetében. A Boltzmann gépnél általában van egy másik különbség is, hogy rejtett neuronokat használ, amelyeknek az állapota nem szerepel a képen, viszont lehetnek összekötései a többivel. Ezzel a módszerrel az elsőrendűnél magasabb korrelációkat is kezelni tud a rendszer, ami feltehetőleg sokat segítene a számok felismerésénél, ugyanis itt nyilvánvalóan van egy rejtett változó ami a pixelek valószínűségeloszlását módosítja, mégpedig hogy mi a szám. 8

5. ábra. Sikeres azonosítások aránya 20 próbálkozásból, különböző mennyiségű megtanított memória esetén. A 0.05-öt már azzal megkapja ha stabil a tanításra használt konkrét minta, mivel a testing set első eleme a teaching set. Csak az egzakt egyezések számítanak, a közeliek nem. Emellett az is probléma lehet, hogy minden számból csak egyet tanítottam meg a hálózatnak, ami elképzelhető hogy pont nem volt annyria reprezentatív. Több hasonló szám tanítása esetén viszont nem lenne olyan egyértelmű hogy mit tekintünk sikeres azonosításnak, ugyanis pl a sok kézzel írt 1-esből absztrahált 1-es fogalom valószínűleg egyikkel sem egyezik, illetve lehet hogy több is van. Ezek alapján a konklúzióm az, hogy az eredeti cikkben tárgyalt Hopfield hálózat nem alkalmas kézírás felismerésére, kivéve ha legfeljebb két féle írásjelet akarunk megkülönböztetni. 9

2. Perceptron A perceptron a legegyszerűbb feed-forward neurális hálózat. Általában bináris klasszifikátorként írják fel, ilyenkor N bemeneti és egy kimeneti neuronja van, amely 0 értéket vesz fel ha a bemeneti vektor (x) az egyik kategóriába tartozik és 1-et ha a másikba. perceptron(x) = { 1 w x + b > 0 0 egyébként A kézírás felismerésekor az a cél, hogy egy ilyen perceptron modult megtanítsunk annak az eldöntésére hogy egy adott szám jelen van-e a képen. Ezután az alábbi ábrához hasonló módon több különböző számhoz tartozó modul eredményéből megpróbáljuk megbecsülni hogy melyik szám a legvalószínűbb. A fenti szabály alapján nehéz lenne dönteni ha több modul is úgy döntene hogy látja az általa megtanult számot, ezért a w i x-ek közül a legnagyobbat fogadjuk el legjobb becslésnek. A tanulási szabály: w(t + 1) = w(t) + α ɛ x ahol α a learning rate, ɛ pedig a predikció hibája ɛ = d w x ahol d az elvárt kimenet (desired output). 2.1. Kézírás felismerése 2.1.1. Egy réteg Először egy modult próbáltam létrehozni, aminek 1 a kimenete ha 0 van a képen és 0 ha bármi más. Ha csak {0,1}-ről készült képeket mutattam, ezeket nagy biztonsággal, hiba nélkül megkülönböztette. Bias-t nem használtam. Ezután hozzáadtam 10

több számot is, egészen 7-ig, mivel ezután a letöltött adathalmazban a minták számozása zavarossá vált. Itt már kicsit nehezebb lett a helyzet, és szembetűnőv vált a learning rate paraméter fontossága. α = 0.1-nél a súlymátrix értékei elszálltak a végtelenbe. α = 0.01-nél még elég gyorsan lecsökken a teaching set hibája (ez látható a lépések függvényében alább), míg α = 0.001-nél ez jóval lassabb viszont lesznek olyan adatpontok amiket rosszul kategorizál (pl a 110)-ik: 11

Tehát optimalizálni kell a futásidő rövidsége és a klasszifikáció pontossága között. Emellett itt szerintem túl sok számjegyet próbálunk megtanulni ahhoz képest hogy mennyi mintát ismerünk hozzá (8 számjegy, darabonként 20 minta). Valószínűleg ha a most a testing setben levő számokat is tanulná, akkor egy újabb testing set-en jobban teljesíteni. Felmerülhet az a probléma is, hogy esetleg nem szeparálhatóak lineárisan a számjegyek, de úgy tűnik hogy erről itt nem volt szó. Ennek a három problémának a figyelembevételével biztos vagyok benne hogy meg lehet tanítani mind a 10 számjegyet, de e helyett inkább a probléma nehézségét csökkentem és csak 5 számjegyre korlátozom a problémát. 2.1.2. Több réteg Az elvet már a perceptron bevezetőjében részleteztem. A tanító halmaz itt is ugyan az volt mint a Hopfield hálózatnál, a tesztelő halmaz pedig az alábbi: 12

A hálózat teljesítménye megegyező volt 100k és 250k után. A több rétegű perceptron sikerességét a következő ábrák foglalják össze: 13

6. ábra. Sikeres azonosítások aránya 20 próbálkozásból. Az bal oldalon a teljes hálózat összesített véleménye látszik, a jobb oldalon pedig az egyes szám perceptronok sikeressége külön-külön (ezt az arányt nem rontják a téves pozitívok csak a téves negatívok, egyébként még rosszabb lenne). Ebből egyértelműen látszik hogy sokat számít a nemlinearitás a végeredményben. Megpróbáltam megnézni hogy mennyiben prediktálja a bizonytalanság a téves választ, ahol a bizonytalanságot a legjobb és a második legjobb becslés különbségének inverzeként definiáltam. Úgy tűnik hogy a téves pontokra jellemző hogy nagyobb a bizonytalanságuk az átlagosnál (inkább a mediánnál), viszont fordítva nem igaz, azaz sok jól azonosított pontnak nagy a bizonytalansága. 14

errorbar : 0.01êHlegjobb -masodik legjobb L - pont: legjobb becsles 4 3 2 1 0 0 20 40 60 80 100 testing set A gép mentségére legyen szólva, hogy a hibák többségét az 1-esek és 4-esek összekeverése jelentette, amelyek néha szemre is összekeverhetőek ezen minták esetén. A learning rate csökkentése és hosszabb tanulás nem segített az eredményen, ahhoz valószínűleg nagyobb tanítóhalmazra lett volna szükség. 3. Diszkusszió Konklúzióként egyértelműen azt találtam hogy a többrétegű perceptron sokkal jobban használható kézírás felismerésére, de ebben nem sok meglepetés van, hiszen már gyakorlatilag a struktúrában kódoljuk az információ egy részét (pl hogy 5 szám van). Emellett míg előbbi esetben felügyeletlen, utóbbiban felügyelt tanulásról van szó. A reláción felül azt is lehet mondani, hogy a Hopfield hálózat ebben a formájában nem használható kézírás felismerésre, míg a perceptron némi tökéletesítéssel úgy tűnik hogy produkálni tudná a legtöbb általam ismert kereskedelmi OCR program teljesítményét. 15