NH. Neurális hálózatok Tananyagbővítés

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

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

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

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

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

Neurális hálózatok bemutató

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

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

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

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...

I. LABOR -Mesterséges neuron

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

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

[1000 ; 0] 7 [1000 ; 3000]

Intelligens Rendszerek Elmélete. Biológiai érzékelők és tanulságok a technikai adaptáláshoz. Az érzékelés alapfogalmai

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

Intelligens orvosi műszerek VIMIA023

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

Jelek és rendszerek 1. 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék

Neurális hálózatok Altrichter, Márta Horváth, Gábor Pataki, Béla Strausz, György Takács, Gábor Valyon, József

Konjugált gradiens módszer

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

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)

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

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 3. MÉRÉSFELDOLGOZÁS

Mérési hibák

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

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

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

Adatelemzési eljárások az idegrendszer kutatásban Somogyvári Zoltán

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

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

Least Squares becslés

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

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

Intelligens Rendszerek Elmélete

KOOPERÁCIÓ ÉS GÉPI TANULÁS LABORATÓRIUM

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

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

NGB_IN040_1 SZIMULÁCIÓS TECHNIKÁK dr. Pozna Claudio Radu, Horváth Ernő

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

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

Informatika Rendszerek Alapjai

Principal Component Analysis

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Robotok inverz geometriája

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

17. előadás: Vektorok a térben

Keresztmetszet másodrendű nyomatékainak meghatározása

15. LINEÁRIS EGYENLETRENDSZEREK

Tanulás az idegrendszerben

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

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

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

Intelligens adatelemzés

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Stratégiák tanulása az agyban

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

4. Lecke. Körök és szabályos sokszögek rajzolása. 4.Lecke / 1.

Megerősítéses tanulás

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

Mesterséges Intelligencia MI

STATISZTIKA. A maradék független a kezelés és blokk hatástól. Maradékok leíró statisztikája. 4. A modell érvényességének ellenőrzése

Tömegpontok mozgása egyenes mentén, hajítások

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

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

First Prev Next Last Go Back Full Screen Close Quit

Digitális jelfeldolgozás

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

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

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

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

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Megerősítéses tanulási módszerek és alkalmazásaik

Kabos: Statisztika II. ROC elemzések Szenzitivitás és specificitás a jelfeldolgozás. és ilyenkor riaszt. Máskor nem.

Függvények Megoldások

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

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

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Közösség detektálás gráfokban

Láthatósági kérdések

A digitális analóg és az analóg digitális átalakító áramkör

Kovács Ernő 1, Füvesi Viktor 2

Osztályozási feladatok képdiagnosztikában. Orvosi képdiagnosztikai 2017 ősz

Gépi tanulás a gyakorlatban. Bevezetés

Funkcionális konnektivitás vizsgálata fmri adatok alapján

Gépi tanulás és Mintafelismerés

Mozgásmodellezés. Lukovszki Csaba. Navigációs és helyalapú szolgáltatások és alkalmazások (VITMMA07)

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

Mátrixjátékok tiszta nyeregponttal

Segédlet: Főfeszültségek meghatározása Mohr-féle feszültségi körök alkalmazásával

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

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

2. Elméleti összefoglaló

Statisztikai módszerek a skálafüggetlen hálózatok

Numerikus módszerek II. zárthelyi dolgozat, megoldások, 2014/15. I. félév, A. csoport. x 2. c = 3 5, s = 4

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

Átírás:

NH. Neurális hálózatok Tananyagbővítés Altrichter, Márta Horváth, Gábor Pataki, Béla Strausz, György Takács, Gábor Valyon, József Czétényi, Benjámin Engedy, István Tamás Gáti, Kristóf Dr. Horváth, Gábor Dr. Pataki, Béla

NH. Neurális hálózatok Tananyagbővítés Altrichter, Márta Horváth, Gábor Pataki, Béla Strausz, György Takács, Gábor Valyon, József Czétényi, Benjámin Engedy, István Tamás Gáti, Kristóf Dr. Horváth, Gábor Dr. Pataki, Béla Ez a könyv az Oktatási Minisztérium támogatásával, a Felsőoktatási Tankönyv- és Szakkönyv-támogatási Pályázat keretében jelent meg. Publication date 2006 Szerzői jog 2006 Hungarian Edition Panem Könyvkiadó Kft., Budapest A kiadásért felel a Panem Kft. ügyvezetője, Budapest, 2006 Minden jog fenntartva. Jelen könyvet, illetve annak részeit tilos reprodukálni, adatrögzítő rendszerben tárolni, bármilyen formában vagy eszközzel - elektronikus úton vagy más módon - közölni a kiadók engedélye nélkül

Tartalom Bevezetés... vii 1. Gépi intelligencia II. - Bevezetés a neurális hálózatok elméletébe... vii 1.1. Tartalom... vii 1.2. Előadás dia-sorozat... vii 1. A neurális hálózatok felépítése, képességei... 1 1. A neurális hálózat definíciója, működése... 1 1.1. Összefoglalás... 1 1.2. Tárgyalt témakörök... 1 1.3. Javasolt kiegészítő olvasmányok... 1 1.4. Kérdések... 2 1.5. Biológiai érzékelők és tanulságok a technikai adaptáláshoz -diasorozat... 2 2. A neurális hálózat elemei, topológiája... 24 3. A neurális hálózatok alapvető számítási képességei, felhasználási területei... 24 4. A neurális hálózatok approximációs képessége... 24 2. Tanulás adatokból... 25 1. Ellenőrzött tanulás (tanítóval történő tanítás)... 25 2. Nemellenőrzőtt tanulás... 25 3. A statisztikus tanuláselmélet alapjai... 25 3.1. Az általánosítási hibakorlátra adható becslés felhasználása (BME)... 25 3.1.1. A feladat célkitűzése... 25 3.1.2. A feladat leírása... 25 4. Tanulás és statisztikai becslések... 26 5. Determinisztikus és sztochasztikus szélsőérték-kereső eljárások... 26 6. Gépi intelligencia II. - 9. Teljesítményoptimalizálás... 26 6.1. Tartalom... 26 6.2. Előadás dia-sorozat... 26 3. Az elemi neuron... 42 1. A Rosenblatt perceptron... 42 2. Az adaline... 42 3. Egy processzáló elem szigmoid kimeneti nemlinearitással... 42 4. További elemi neuronok... 42 4. A többrétegű perceptron (MLP)... 43 1. Az MLP felépítése... 43 2. Az MLP tanítása, a hibavisszaterjesztéses algoritmus... 43 3. Az MLP konstrukciójának általános kérdései... 43 5. Bázisfüggvényes hálózatok... 44 1. Az RBF (Radiális Bázisfüggvényes) hálózat... 44 1.1. Kétkerekű robot vezérlése tetszőleges kezdőpontból... 44 1.1.1. A feladat leírása... 44 1.1.2. Elméleti háttér... 48 1.1.3. Az eredmények értékelése... 50 1.1.4. Irodalomjegyzék... 53 2. A CMAC hálózat... 53 3. Az MLP és a bázisfüggvényes hálózatok összehasonlítása... 54 6. Kernel módszerek... 55 1. Egy egyszerű kernel gép... 55 2. Kernel függvények... 55 3. Szupport Vektor Gépek... 55 4. SVM változatok... 55 5. Kernel CMAC: egy LS-SVM gép véges tartójú kernel függvényekkel... 55 6. A kernel gépek összefoglaló értékelése... 55 7. Ellenőrzött tanítású statikus hálók alkalmazásai... 56 1. Felismerési feladatok (képosztályozás)... 56 2. Szövegosztályozás... 56 3. Ipari folyamatok modellezése... 56 8. Időfüggő (szekvenciális) hálók... 57 iii

NH. Neurális hálózatok Tananyagbővítés 1. Regresszorválasztás, modellstruktúra választás... 57 2. Dinamikus neurális modellek... 57 3. Előrecsatolt időfüggő hálózatok... 57 4. Visszacsatolt (rekurzív) hálózatok... 57 4.1. Hibavisszaterjesztés időbeli kiterítéssel, feladat (BME)... 57 4.1.1. A feladat célkitűzése:... 57 4.1.2. A feladat leírása, kérdések:... 57 4.1.3. A feladat megoldása... 58 5. Dinamikus hálózatok kialakításának néhány további lehetősége... 60 6. Dinamikus hálók alkalmazása... 60 9. Moduláris hálók... 61 1. Moduláris háló kialakítása feladat dekompozíció alapján... 61 2. Szakértőegyüttesek... 61 3. Moduláris háló kialakítása a tanító mintakészlet módosításával... 61 4. A moduláris eljárások összefoglaló értékelése... 61 10. Nemellenőrzőtt tanulású hálózatok... 62 1. Gépi intelligencia II. - Felügyelt Hebb-féle tanulás... 62 1.1. Tartalom... 62 1.2. Előadás dia-sorozat... 62 2. Kohonen háló, kompetitív hálózatok... 81 3. Adattömörítés Hebb tanuláson alapuló hálózatokkal, PCA, KLT.... 81 4. Nemlineáris PCA és altér hálók... 81 4.1. Nemlineáris PCA és altér hálók... 81 4.1.1. példa: fekete-fehér képek szétválasztása... 81 4.1.2. példa: színes textúrák:... 83 4.1.3. példa: beszédjelek szétválasztása... 84 4.1.4. példa: vegyes hangjelek (beszéd és zene) szétválasztása... 86 4.1.5. példa: szinusz jelek... 87 11. Analitikus tanítású hálózatok... 90 1. A Hopfield hálózat... 90 2. A Boltzmann gépek... 90 3. Mean-field hálózatok... 90 4. Hopfield típusú hálózatok alkalmazása optimalizációs problémákra... 90 12. Hibrid-neurális rendszerek... 91 1. Az a priori tudás felhasználása virtuális minták generálására... 91 2. Az a priori tudás beépítése a tanuló eljárásba... 91 3. KBANN, a tudás alapú neurális hálózat... 91 13. Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés... 92 1. Zajos adatok... 92 2. Az adatok előfeldolgozása... 92 3. Kilógó adatok... 92 4. Hiányzó adatok... 92 4.1. A feladat célkitűzése... 92 4.2. A feladat leírása... 92 4.3. Megjegyzések:... 103 5. Lényegkiemelés... 103 A. Összegzés, várható fejlődési irányok... 104 B. Függelék... 105 C. Irodalom... 106 iv

Az ábrák listája 5.1.1-1. A kocsi által az x-tengellyel bezárt szöghöz tartozó kimenetek rögzített poíciót feltételezve 44 5.1.1-2. A rendszer felépítése... 45 5.1.1-3. A bemeneti tér felosztása, ahol a nyíl jelöli a cél állapotot (pozíció + szög) és azt a területet, ahol fordulni kell, és ahol nem... 46 5.1.1-4. a) teljes visszacsatolású hálózat b) annak kiterített ekvivalense [Alt06]... 47 5.1.1-5. A lépésszámokra adott felső becslések értéke a No turn region esetén, rögzített szög érték mellett 49 5.1.1-6. A kernel CMAC által irányított kocsi néhány útvonala. A cél a (100,100) pontban vol a cél szög pedig 180... 51 5.1.1-7. A fuzzy CMAC által irányított robot útvonalai... 52 5.1.1-8. Azonos útvonal eltérő C érték esetén... 53 8.4.1-1. A háló elvi felépítése... 58 8.4.1-2. A háló felépítése figyelembe véve (kihagyva) a 0 értékű súlyokat... 58 8.4.1-3. A 3 időegységnyi időablakban (t = 3, 4, 5) kiterített háló... 59 10.4.1-1. Grafikus felület... 81 1. Az eredeti kép... 92 2. Az 1-1 komponensben hibás pixelek... 93 3. A kép piros színkomponensének hisztogramja... 95 4. A kép zöld színkomponensének hisztogramja... 95 5. A kép kék színkomponensének hisztogramja... 95 6. Az egyszerű pótlással javított kép... 96 7. Az első klaszterbe tartozó képpontok (kivilágosítva)... 97 8. Az első klaszterbe tartozó képpontok piros színkomponensének hisztogramja... 97 9. Az első klaszterbe tartozó képpontok zöld színkomponensének hisztogramja... 97 8. Az első klaszterbe tartozó képpontok kék színkomponensének hisztogramja... 98 11. A második klaszterbe tartozó képpontok... 98 12. A harmadik klaszterbe tartozó képpontok... 99 13. A negyedik klaszterbe tartozó képpontok... 100 14. Az ötödik klaszterbe tartozó képpontok... 100 15. A hatodik klaszterbe tartozó képpontok... 101 16. A hatodik klaszterbe tartozó képpontok piros színkomponensének hisztogramja... 101 17. A hatodik klaszterbe tartozó képpontok zöld színkomponensének hisztogramja... 101 18. A hatodik klaszterbe tartozó képpontok kék színkomponensének hisztogramja... 102 19. Az EM algoritmussal kapott klaszterenkénti pótlással javított kép... 102 20. Balról-jobbra: a klaszterezett, majd klaszterenként javított; a globális paraméterrel javított és az eredeti, hibás kép... 103 21. A vörös (vízszintes tengely) és kék (függőleges tengely) színkomponensek eloszlása az EM algoritmussal kapott 6 klaszterre... 103 v

A táblázatok listája 1. Kétkerekű robot tanításához használt tanulási tényezők... 50 vi

Bevezetés 1. Gépi intelligencia II. - Bevezetés a neurális hálózatok elméletébe 1.1. Tartalom 1. A tárgyról 2. Rövid történeti áttekintés 3. Alkalmazások 4. Biológiai inspiráció 1.2. Előadás dia-sorozat vii

Bevezetés viii

Bevezetés ix

Bevezetés x

Bevezetés xi

Bevezetés Készítette: Fodor János, Óbudai Egyetem xii

1. fejezet - A neurális hálózatok felépítése, képességei 1. A neurális hálózat definíciója, működése 1.1. Összefoglalás Az élőlények intelligens (hatékony és adaptív) működésének alapja, hogy érzékszerveiken keresztül információkat szereznek a környező világról. A különböző ingerfajtákra specializált érzékszervek különösen érzékenyen reagálnak az érzékelési tartományukba eső fizikai ingerekre. A környezet érzékelésében az érzékelésre specializálódott idegsejtek játsszák a vezető szerepet, melyeket rendszerint a fizikai ingerek hatását erősítő specializált sejtcsoportok, szervek vesznek körül és együttesen alkotják az érzékszerveket. Az előadás bemutatja a legfontosabb érzékszervek működését, valamint a kiváltott hatás (ember esetében érzet) nagyságát meghatározó tapasztalati törvényeket. A hatékony érzékelő és feldolgozó idegrendszer működésének közös elemeit kiemelve rámutat azokra a tanulságokra, melyek a technikai érzékelő rendszerek megvalósítása során is megfontolandóak és követendőek. Ilyenek például a nagy ingertartományokat átfogó logaritmikus érzékelési törvények, az inger-érzékenység adaptáció, az analóg helyi feldolgozás és a digitális inger-továbbítás, valamint a specializált párhuzamos működés. 1.2. Tárgyalt témakörök Az érzékelés alapfogalmai: modalitás, abszolút ingerküszöb, relatív ingerküszöb, adaptáció, ingerelhetetlen (refrakter) állapot, tüzelési frekvencia. Az érzékszervek központi idegrendszeri feldolgozó területei (specializáció) Idegsejt típusok és az összeköttetések (idegpályák) szerepe. Az ingerület keletkezésének (az érzékelő sejtek működésének) alapjai és a sejtek közötti ingerület-átadás folyamata. Az érzékelhető ingerintenzitás törvényei (Weber, Weber-Fechner, Stevens) Az érzékszervek működése és jellemzői Látás (csapok és pálcikák szerepe, eloszlása a retinán, érzékenységi jellemzők) Hallás (a csiga felépítése és működése, érzékenységi skálák, a hallás jellemzői) Egyensúly szervek működése állatokban és az emberben, és jelentősége az egyedfejlődésben, valamint a többi érzékszerv munkájának összehangolásában. A fej szöggyorsulását érzékelő félkőrös ívjáratok működése, jellemzői. A statikus fejhelyzet érzékelését végző un. otolith szervek működése, jellemzői. A bőrben lévő érzékszervek (Pacini-test, Ruffini végkészülék, Meissner test, Merkel diszk, szabad idegvégződések) jellemzői A szaglószervek működése (fontossága) az állatvilágban és az emberben. Illat rendszerek 1.3. Javasolt kiegészítő olvasmányok Az érzékszervek működéséről (sok más mellett): 1

A neurális hálózatok felépítése, képességei http://realika.educatio.hu/ctrl.php/unregistered/preview/coursecs?c=30&pbka=0&pbk=%2fctrl.php%2funregist ered%2fcourses Érzékelés és észlelés: http://www.ektf.hu/hefoppalyazat/pszielmal/5_az_rzkels_s_szlels.html Érzékelés: http://www.mek.iif.hu/porta/szint/tarsad/konyvtar/informat/azinform/html/erzekel.html 1.4. Kérdések Milyen viszonyban áll az embernél az ingerek nagysága és a kiváltott érzet nagysága? Milyen arányban szerzi az ingereket a különböző érzékszerveivel az ember? Milyen tényezőktől függ az ingerek érzékelésének színvonala? Hogyan hatnak az érzelmekre az illatok? 1.5. Biológiai érzékelők és tanulságok a technikai adaptáláshoz - diasorozat 2

A neurális hálózatok felépítése, képességei 3

A neurális hálózatok felépítése, képességei 4

A neurális hálózatok felépítése, képességei 5

A neurális hálózatok felépítése, képességei 6

A neurális hálózatok felépítése, képességei 7

A neurális hálózatok felépítése, képességei 8

A neurális hálózatok felépítése, képességei 9

A neurális hálózatok felépítése, képességei 10

A neurális hálózatok felépítése, képességei 11

A neurális hálózatok felépítése, képességei 12

A neurális hálózatok felépítése, képességei 13

A neurális hálózatok felépítése, képességei 14

A neurális hálózatok felépítése, képességei 15

A neurális hálózatok felépítése, képességei 16

A neurális hálózatok felépítése, képességei 17

A neurális hálózatok felépítése, képességei 18

A neurális hálózatok felépítése, képességei 19

A neurális hálózatok felépítése, képességei 20

A neurális hálózatok felépítése, képességei 21

A neurális hálózatok felépítése, képességei 22

A neurális hálózatok felépítése, képességei 23

A neurális hálózatok felépítése, képességei Készítette: Kutor László, ÓE 2. A neurális hálózat elemei, topológiája 3. A neurális hálózatok alapvető számítási képességei, felhasználási területei 4. A neurális hálózatok approximációs képessége 24

2. fejezet - Tanulás adatokból 1. Ellenőrzött tanulás (tanítóval történő tanítás) 2. Nemellenőrzőtt tanulás 3. A statisztikus tanuláselmélet alapjai 3.1. Az általánosítási hibakorlátra adható becslés felhasználása (BME) 3.1.1. A feladat célkitűzése A feladat célja annak bemutatása, hogy miért fontos ismerni a szükséges mintaszám és az általánosítási hiba közti minél pontosabb összefüggést. 3.1.2. A feladat leírása Kétosztályos (bináris) osztályozási feladatot oldunk meg. 9 paramétert mérünk minden példán, és a véletlen módon kiválasztott, mért és minősített (ismert osztálybasorolású) minták alapján egy egyetlen lineáris neuronból és küszöbfüggvényből álló neuronhálót (perceptront) tanítunk, mert sejtjük, hogy ilyennel a feladat megoldható, és egyszerűen kezelhető. A tanítás végén 100%-os pontosságot értünk el az 5 000 tanítómintán. Az osztályozót el tudjuk adni 1000 euróért, de vállalnunk kell, hogy ha nem teljesít legalább 99,5% pontosságot, akkor 100 000 euró kártérítést fizetünk. A biztonság kedvéért feltételezzük (bár ez nem igaz), hogy a szükséges mintaszámra vonatkozó korlátot pontos becslésnek vehetjük, várhatóan nyereséges lesz-e az üzlet? (A becslést pontos értéknek elfogadva a biztonság irányába tévedünk, legtöbbször nem is keveset, mert a becslés gyakran túlzó.) MEGOLDÁS: Ha a siker valószínűsége p, és ez esetben Ny nyereségünk van, míg ellenkező esetben V veszteségünk, akkor a várható nyereség. Itt nem használható a Russel-Norvig könyvben (772. oldal) megismert gondolatmenettel felállított korlát, mert a hipotézistér mérete végtelen. (A neuron súlyai folytonosak.) Ebben a megközelítésben a komplexitást az VC dimenziójával fogjuk meg. Tudjuk, hogy a d=9 dimenziós térben felvett sík (amellyel osztályozni fogunk) VC dimenziója h = d+1=10. Itt azt tudjuk, hogy a mintaszám: L=5 000; a VC dimenzió: h=10; Remp(w)=0 (mivel a pontosság 100%). Kétféle módon is megkísérelhetjük a feladat megoldását. Az egyik, hogy meghatározzuk, milyen biztonsággal tudjuk biztosítani a kívánt pontosságot (99,5% a megengedhető hiba, tehát a kívánt pontosság R(w)=0,05) ez összefüggésünkben az paraméter meghatározását jelenti. Ez egy nemlineáris egyenlet megoldását igényelné, válasszuk inkább a másik utat. A másik lehetőség, hogy megvizsgáljuk mi a siker megkívánt bizonyossága, tehát -ból indulunk ki, és megvizsgáljuk, hogy mekkora hibát tudunk ezzel a bizonyossággal garantálni. Az adott nyereség/veszteség viszonyok mellett a nyereségesség határhelyzetéből (a nulla várható nyereségből) 25

Tanulás adatokból. Ebből az egyenletből határozható meg a szükséges. Tehát, aminek megoldása: (a szükséges bizonyosság 0,99, azaz 99%). Az ehhez tartozó érték: Az ehhez tartozó általánosítási hiba (a korlátot pontos értéknek véve): Ez 5,16% hibát jelent, tehát a kívánt sikerességi valószínűséggel csak kb. 94,8% pontosságot tudunk garantálni. Tehát a 99,5% pontosságot nem tudjuk a kívánt megbízhatósággal garantálni, ha a képletünk pontos vagy közel pontos, akkor az üzlet ezekkel a feltételekkel, és ezzel az eszközzel várhatóan veszteséges lesz. Szerző: Pataki Béla, BME 4. Tanulás és statisztikai becslések 5. Determinisztikus és sztochasztikus szélsőértékkereső eljárások 6. Gépi intelligencia II. - 9. Teljesítményoptimalizálás Miről szól ez a rész? Ebben a részben ismét használjuk a Taylor-sorokat, most olyan algoritmusok kifejlesztésére, amelyek megkeresik a teljesítmény felületek optimumhelyeit. Három különböző kategóriájú optimalizálási módszert tárgyalunk: a legmeredekebb irányt (ereszkedés), a Newton-módszert, valamint a konjugált gradiens eljárást. Az ezt követő 3 fejezetben pedig az optimalizálási módszereket alkalmazzuk neurális hálózatokban. 6.1. Tartalom 1. Bevezetés 2.A legmeredekebb ereszkedés módszere Stabil tanulási ráták Egyenes menti minimalizálás 3. Newton-módszer 4. Konjugált gradiens módszer 6.2. Előadás dia-sorozat 26

Tanulás adatokból 27

Tanulás adatokból 28

Tanulás adatokból 29

Tanulás adatokból 30

Tanulás adatokból 31

Tanulás adatokból 32

Tanulás adatokból 33

Tanulás adatokból 34

Tanulás adatokból 35

Tanulás adatokból 36

Tanulás adatokból 37

Tanulás adatokból 38

Tanulás adatokból 39

Tanulás adatokból 40

Tanulás adatokból Készítette: Fodor János, Óbudai Egyetem 41

3. fejezet - Az elemi neuron 1. A Rosenblatt perceptron 2. Az adaline 3. Egy processzáló elem szigmoid kimeneti nemlinearitással 4. További elemi neuronok 42

4. fejezet - A többrétegű perceptron (MLP) 1. Az MLP felépítése 2. Az MLP tanítása, a hibavisszaterjesztéses algoritmus 3. Az MLP konstrukciójának általános kérdései 43

5. fejezet - Bázisfüggvényes hálózatok 1. Az RBF (Radiális Bázisfüggvényes) hálózat Ez a demó azt mutatja be, hogy a CMAC hálóval meg lehet oldani komplexebb, összetettebb feladatokat is. A vizsgált esetben egy kétkerekű robotot, mint például a BME Méréstechnika és Információs Rendszerek Tanszékén kifejlesztett MITMÓT robotot [1] kell a CMAC hálónak tetszőleges kezdőpontból egy megadott pontba irányítania. Ez a feladat a neurális hálózatok területén, egy korai mintapélda alapján[2], mára elég standard benchmark feladattá vált. A feladat tárgyalása 3 részre bontható. Először a feladat részletesebb kifejtése, majd az elméleti háttér leírása, végül a megvalósítás leírása és a kapott eredmények értékelése. Esetlegesen több eltérő megvalósítás összehasonlítása. 1.1. Kétkerekű robot vezérlése tetszőleges kezdőpontból 1.1.1. A feladat leírása Ebben az esetben a feladat az, hogy egy kétkerekű robotot kell vezérelnie a CMAC-nak. Mégpedig úgy, hogy tetszőleges kezdőpontból elindítva a kocsit a célba tudja juttatni a háló. A cél jelen esetben a pozíciót és az orientációt is jelenti, vagyis nem elég, hogy a robot kocsi jó helyen van, jó irányba is kell fordulnia. Off-line tanulásról van szó, ugyanis amikor a kocsi útvonalait teszteljük, azaz a visszahívási (recall) fázisban, már nem tanítjuk a hálót. A tanítás külön történik, majd a megtanult vezérlést használjuk. A kocsi ismeri a saját pozícióját és a vízszintes tengellyel bezárt szögét, valamint a cél pozícióját és a vízszintes tengellyel bezárt szögét. A neurális háló feladata, hogy minden időpillanatban megadja a fordulni kívánt szög nagyságát. A feladat során feltesszük, hogy a robot sík és szárazföldi terepen tartózkodik, vagyis az extrém környezeti tényezőket kizárjuk. A CMAC egy 4 bemenetű egy kimenetű, MISO típusú, háló lesz, ugyanis a kocsi szöge, nem adható közvetlenül a hálónak, mivel az egy szakadásos függvény, és így a neurális háló nem képes megtanulni. Ezért a szöget annak szinuszával és koszinuszával reprezentáljuk, hogy folytonos értékeket kapjunk. Ennek az lesz a következménye, hogy a bemeneti tér egy részét nem fogjuk használni, mivel adott szöghöz rögzített szinusz és koszinusz tartozik, és a használható értékek halmaza véges, egészen pontosan az egységsugarú körön található értékek. Mivel a CMAC lokális approximációs képességgel rendelkezik, ezért ennek az egységsugarú körnek egy szűk tartománya fog tanulni. Ez látható az alábbi ábrán, ahol a háló által megtanult leképezést rajzoltuk ki. 5.1.1-1. ábra - A kocsi által az x-tengellyel bezárt szöghöz tartozó kimenetek rögzített poíciót feltételezve 44

Bázisfüggvényes hálózatok A kocsi egy útvonala úgy néz ki, hogy a kezdőpontból elindul, a hálótól kap egy szög értéket, amennyivel el kell fordulnia, majd ez alapján meghatározzuk az új pozícióját és ismét a neurális háló által megadott szögnek megfelelően fordul a kocsi tovább. Ezt szemlélteti az alábbi ábra. jelenti a k-adik időpillanatban a kocsi (x,y) pozícióját és az x-tengellyel bezárt szögét. A háló kimenete, ami a fordulandó szöget adja, a γ k. az időbeli késleltetést jelenti. 5.1.1-2. ábra - A rendszer felépítése 45

Bázisfüggvényes hálózatok Egy útvonalon addig megy a kocsi, amíg a cél felé tart, vagyis amíg a hiba az aktuális állapot és a cél állapot között csökken. Állapot alatt a pozíció és az x-tengellyel bezárt szög együttesét kell érteni. Több útvonal együttes tanulása során jóval hosszabb utak alakultak ki, mint amik szükségesek lettek volna, ezért beiktatásra került egy további háló, amely az útvonal kezdetekor megadja, hogy mekkora lehet maximálisan az útvonal hossza. Az általános gyakorlattól eltérően [2], itt a cél nem feltétlenül a bemeneti tér szélén helyezkedik el, hanem annak tetszőleges helyén, így előfordulhat, hogy a kocsinak meg kell kerülnie a célt és onnan befordulnia a végső pozícióba. Ezt a neurális háló önmagában nem lenne képes megtenni, ezért szükség volt arra, hogy a bemeneti teret két részre osszam, az egyik rész, ahol fordulnia kell, a másik, ahol nem szükséges a fordulás. Ezt mutatja a 3. ábra. 5.1.1-3. ábra - A bemeneti tér felosztása, ahol a nyíl jelöli a cél állapotot (pozíció + szög) és azt a területet, ahol fordulni kell, és ahol nem 46

Bázisfüggvényes hálózatok Azokból a kezdőpontokból, amikor a kocsi a To turn region-ből, vagyis abból a térrészből indul, ahol fordulnia kell, akkor a cél a szaggatott vonal elérése a célszöggel ellentétes irányban, hogy onnan egy félkör megtételével a kocsi a célba érjen. Ezt a feladatot már a másik térrész látja el, amikor a megfordulás nem szükséges. Ugyanezt a felosztást használja az a neurális háló is, amelyik az út megtételéhez szükséges lépésszámot felülről becsli. 5.1.1-4. ábra - a) teljes visszacsatolású hálózat b) annak kiterített ekvivalense [Alt06] 47

Bázisfüggvényes hálózatok Az útvonal befejezését követően a hiba visszaterjesztésére van szükség. Mivel a háló ismétlődő, vagyis több ciklusban ugyanaz játszódik le, így dinamikus CMAC-ról beszélhetünk. Ennek megfelelően speciális tanító algoritmusra van szükség. Ez a BPTT (Backpropagation through time) [3], [4]. A módszer lényege a háló időbeli kiterítése, ahogy az a 4. ábrán látszik. Az időbeli kiterítést követően a háló gyakorlatilag, mint egy statikus háló tanítható. A kiterített háló rétegeinek száma megegyezik az eredeti háló által generált kimenetek számával, ami jelen esetben az útvonal során tett fordulások száma. Egy kényszert azonban figyelembe kell venni. A kiterített hálóban a súlyok száma megnövekedett, és ezekre mind külön súlymódosító összefüggéseket kapunk, de a tényleges hálóban ezek mind ugyanazt a fizikailag létező súlyt módosítják, azaz a súlyok egyszerre és azonos mértékben módosíthatóak csak. A bemeneti tér mérete a feladat során megalkotott minden CMAC esetén 300 300 300 300 volt. Nyilvánvaló, hogy ez klasszikus CMAC-val nem oldható meg, így a diplomamunkában szereplő egyéb módszereket használtam. A feladat megoldását bemutató pszeudo-kód alább szerepel 1.1.2. Elméleti háttér Ebben a részben bemutatom a lépésszámot felülről becslő hálózatot, a modellt, amelyet a robot használ a pozíció és szög frissítésére, illetve a tanítás módját is. A lépésszámokkal csak abban az esetben volt probléma, amikor egyszerre több kezdőpontból kellett az utat megtanulni. Ez a CMAC lokális approximációs tulajdonságára vezethető vissza. Ezért egyesével több kezdőpontból indítottam az autót és megtanítottam az adott kezdőpontból induló utat. Ekkor a kezdőpontot és a használt lépések számát feljegyeztem, majd amikor elég sok minta összegyűlt felhasználtam őket és megtanítottam két hálót. Az egyik háló azon a térrészen tudta a lépésszámokat, ahol fordulni kellett, a másik pedig azon a térrészen, ahol nem kellett fordulni. Erre azért volt szükség, mert az előbbi térrész esetén, csak a szaggatott vonalig kellet a kocsinak eljutni (3. ábra). 48

Bázisfüggvényes hálózatok Mind a két esetben fuzzy CMAC-t tanítottam, C = 70 mellett. 3000 minta alapján tanult mind a két térrészhez tartozó háló. A tanítópontokat az [5]-ben leírt módszer szerint válogattam ki, amire azért volt szükség, hogy a háló a lehető legkisebb komplexitású legyen. Így a No turn region részhez tartozó 3000 mintából a háló 2818-at használt fel. A rögzített érték mellett látható a háló által megtanult leképezés. 5.1.1-5. ábra - A lépésszámokra adott felső becslések értéke a No turn region esetén, rögzített szög érték mellett A kocsi modelljét [6] alapján készítettem el. Itt R az eltolás vektor, ami a jelenlegi és a következő időpillanathoz tartozó pontokat köti össze, γ i a neurális háló kimenete, az elfordulandó szög, v a kocsi sebesség, t a két szimulációs pillanat közt eltelt idő, x, y és pedig az állapotot leíró változók. Előbbi kettő a pozíciót, utóbbi pedig a vízszintes tengellyel bezárt szöget adja meg. Alsó indexben a diszkrét időindex szerepel. Ezután az (1)-ben szereplő modell egyenleteit, a BPTT tanulást és a 2. ábrán látható rendszert felhasználva a tanító összefüggéseket kell meghatározni. Először meg kell adni, hogy az adott lépéshez tartozó réteg súlyvektorának módosítását, hogyan kell meghatározni. Ezt adja meg (2). Itt, jelenti a hibának az aktuális állapot szerinti deriváltját,, jelenti a háló kimenetének a következő állapot szerinti deriváltját. Ha már tudjuk, hogy adott rétegben, hogyan kell a súlyokat módosítani, akkor a hibát vissza kell terjeszteni egy réteggel. Ezt mutatja a (3) összefüggés. 49

Bázisfüggvényes hálózatok Itt S i mátrix adja meg a következő állapotok aktuális állapotok szerinti deriváltját. Ezt a (4) egyenlet mutatja. Ezenkívül a háló deriváltja az állapotok szerint. Ez nem egészen ugyanaz, mint a háló deriváltja a bemenetek szerint, mivel a szögtől a háló kimenete nem közvetlenül függ. Ezt követően kell, hogy a tényleges súlymódosításokat végrehajtsuk (5) szerint, ahol felhasználjuk (2)-t. A képletben sn a lépések számát adja meg (step number). Annak érdekében, hogy a tanulás gyorsan konvergáljon, megfelelően kell megválasztani a tanulási tényezőt. Optimális tanulási tényezőről jelen esetben nehéz beszélni, mivel a hiba visszaterjesztéskor kapott értékek nem adják meg a ténylegesen meglévő hibát. Ezért egy alkalmasan megválasztott tanulási tényezőre van szükség. Ennek értéke nem lehet fix, mivel a tanulás elején, amikor a kocsi még messze van a céltól nagyobb érték szükséges, hogy gyorsan jusson el a cél felé. Amikor már közel van a célhoz, egyre kisebb tanulási tényezőt kell választani, hogy a megtanult útvonal ne ugráljon a cél körül. Ugyanis, ha túl nagy, akkor a kocsi egyszer a cél egyik oldalára ér, utána a súlymódosítás miatt a másik oldalra fog érkezni, és ez a fajta tanulás, jóval lassabb, mintha kisebb tanulási tényezőt választanánk. A tanulási tényező értékét az útvonal utolsó állapotának hibája alapján számítottam ki. Egy 3 1 elemű oszlopvektor, melynek első értéke az x-tengely menti távolság a céltól, második értéke az y-tengely menti távolsága a céltól, harmadik értéke pedig a szög hibája. Ennek megfelelően én az alábbi táblázat szerint választottam a tanulási tényezők értékét. Azért csak kernel és fuzzy CMAC-ra vannak az értékek megadva, mivel ez a két változat volt, amelyekkel sikeresen megoldottam a feladatot. Általában ha a kocsi már olyan közel volt a célhoz, hogy a legutolsó sorban szereplő tanulási tényező értéke szerint kellett volna a súlyokat módosítani, akkor úgy tekintettem, hogy a kocsi az útvonalat megtanulta és abbahagytam a tanítást. 1. táblázat - Kétkerekű robot tanításához használt tanulási tényezők A hiba értéke kernel CMAC fuzzy CMAC Alapértelmezés: 10-2 10-2 (30 30 π/4) 10-2 10-3 (12 12 π/18) 10-3 10-4 (3 3 π/45) 10-4 10-5 (0.6 0.6 π/180) 10-6 10-7 1.1.3. Az eredmények értékelése A háló mérete miatt, a klasszikus megoldások használata nem járható út, hiszen teljes lefedés esetén a szükséges súlyok száma, a bemeneti tér [0,300] 4 és C = 40 feltételek mellett. Ezért 4 lehetséges CMACval próbáltam a feladatot megoldani. Az első a kernel CMAC volt. Ezzel sikerült először jó megoldást kapnom. A kernel CMAC esetén használtam a C = 40-es értéket, és 6-od rendű B-Spline-t kernelfüggvénynek. 50

Bázisfüggvényes hálózatok A kernel CMAC használatakor alapesetben minden bemenetet tanítópontnak tekintünk a tanítási fázis alatt. Ez a módszer itt nem lenne jól alkalmazható, mivel a rengeteg, sokszor közeli, állapot miatt a tanítópontok nagy száma jelentősen lassítaná a tanítást. Ezért most kernel CMAC esetén is ugyanazt az on-line tanítópont szelekciós módszert használtam, mint fuzzy CMAC esetén. A tanítás során 550 kezdőpontból indítottam a robot kocsit. A kezdőpontokat véletlenszerűen választottam úgy, hogy polár koordinátákat sorsoltam és ezeket alakítottam át Descartes koordinátákká. A tanítás 60 epochon keresztül tartott. Ennek során a háló tanítópontnak választott 46780 bemeneti pontot. A megtanult útvonalak közül néhány látható az alábbi ábrán. 5.1.1-6. ábra - A kernel CMAC által irányított kocsi néhány útvonala. A cél a (100,100) pontban vol a cél szög pedig 180 Látható, hogy az egymáshoz közel kerülő utak teljesen együtt mozognak. Az is látszik, hogy abban az esetben, amikor a kocsinak meg kell fordulnia, vagyis amikor a robot kezdőpozíciójának x koordinátája kisebb, mint 100, akkor az x = 100 egyenest, mindig vízszintesen metszi. Ez annak a következménye, hogy a tanítás során az egyenest a célszöggel ellentétes irányban kell a robotnak elérnie, ami a 0 radiánt jelenti ebben az esetben. A másik háló típus a fuzzy CMAC volt, amelyik mellett sikerült a feladatot megoldani. Ez nem meglepő, hiszen, ahogy az korábban szerepelt, a két változat működése szinte teljesen megegyezik. Fuzzy CMAC esetén C = 70 51

Bázisfüggvényes hálózatok beállítás mellett tanítottam a hálót 50 epochig. A bázisfüggvény itt is 6-od rendű B-Spline volt. Ugyanazzal a módszerrel, mint a kernel CMAC esetén 550 véletlenszerűen választott kezdőpontot használtam. A tanítás során 35672 bázisfüggvényt használt a háló. Azaz valójában a fuzzy rendszer ennyi szabályt alkotott meg. Néhány a robot által használt útvonal látható a 116. ábrán. A cél állapot ugyanaz volt, mint a kernel CMAC esetén. 5.1.1-7. ábra - A fuzzy CMAC által irányított robot útvonalai A simább útvonalak két valószínű okra vezethetőek vissza. Egyrészt a nagyobb C jótékony hatása látszódhat, másrészt a fuzzy CMAC által használt súlyozott átlag miatt kialakuló simább függvény eredménye lehet. A kernel és a fuzzy CMAC-n kívül megpróbáltam még a hash-kódolás illetve a SOP-CMAC használatát, de ezekkel a feladat megoldása nem sikerült. A hash-kódolás esetén a háló még egyetlen út megtanulására sem volt képes. SOP-CMAC esetén 2 probléma adódott, az egyik hogy nagyon lassú volt a működés a modulok által használt nagyszámú CMAC miatt. A másik az, hogy a tanulási tényező gyakorlatilag beállíthatatlan volt, mivel vagy túl kicsi volt és a háló egyáltalán nem tanult, az útvonal gyakorlatilag nem változott, vagy rögtön elszállt a háló, és bepörgött, ami azt jelenti, hogy a kimeneten akkora érték jelent meg, amitől a kocsi egy időpillanat alatt több teljes fordulatot tett. De a Sum-of-Product CMAC esetén sikerült megtanulni legalább néha egy kezdőpontból a helyes útvonalat. A fenti vizsgálatok során csak a háló típusa változott. Érdemes lehet azt is megnézni, ha a háló típusa nem, csak a háló által használt valamely paraméter értékét változtatjuk meg. Itt elsősorban a C értékére lehet gondolni, hiszen ez a háló egyik legfontosabb a tanulás előtt megválasztandó paramétere. Ennek változása befolyásolja a megtanult útvonalat, hiszen kisebb értéke esetén jóval kevésbé befolyásolják egymást meglévő útvonalak, 52

Bázisfüggvényes hálózatok illetve kisebb hatása van egy adott tanítópontban megtanult értéknek a környezetében lévő többi mintapontra. Ezt mutatja be az alábbi 6. ábra. Itt a kiindulási pont és a cél is azonos volt. 5.1.1-8. ábra - Azonos útvonal eltérő C érték esetén Az látszik az ábrán, hogy a nagyobb C erősebb megkötést jelent a háló számára, és ezért jobban kényszeríti a cél felé, vagyis rövidebb utat kényszerít rá a robot kocsira. 1.1.4. Irodalomjegyzék [1] http://bri.mit.bme.hu/?l=mitmot [2] D. H. Nguyen and B. Widrow. Neural networks for self-learning control systems. IEEE Control Systems Magazine, pages 18-23, April 1990. [3] D. E. Rumelhart, G. E. Hinton, and R.J. Williams, "Learning internal representations by error propagation," in Parallel Distributed Processing: Exploration in the Microstrutcture of Cognition (D. E. Rumelhart and J. L. McClelland, eds.), Vol. 1, Chapter 8, Cambridge, MA, MIT Press (1986). [4] Altrichter, M., Horváth, G., Pataki, B., Strausz, Gy., Takács, G., Valyon, J. "Neurális hálózatok", Panem Könyvkiadó Kft., 2006. [5] Nie J. and Linkens D.A., FCMAC: A fuzzified cerebellar model articulation controller with self-organizing capacity, Automatica, vol. 30, no.4, 1994, pp. 655-664. [6] Engedy István Tamás, "Robotkocsi navigáció neuronháló alapú tanuló rendszerrel.", Diplomamunka, BME VIK MIT, 2009 2. A CMAC hálózat 53

Bázisfüggvényes hálózatok 3. Az MLP és a bázisfüggvényes hálózatok összehasonlítása 54

6. fejezet - Kernel módszerek 1. Egy egyszerű kernel gép 2. Kernel függvények 3. Szupport Vektor Gépek 4. SVM változatok 5. Kernel CMAC: egy LS-SVM gép véges tartójú kernel függvényekkel 6. A kernel gépek összefoglaló értékelése 55

7. fejezet - Ellenőrzött tanítású statikus hálók alkalmazásai 1. Felismerési feladatok (képosztályozás) 2. Szövegosztályozás 3. Ipari folyamatok modellezése 56

8. fejezet - Időfüggő (szekvenciális) hálók 1. Regresszorválasztás, modellstruktúra választás 2. Dinamikus neurális modellek 3. Előrecsatolt időfüggő hálózatok 4. Visszacsatolt (rekurzív) hálózatok 4.1. Hibavisszaterjesztés időbeli kiterítéssel, feladat (BME) 4.1.1. A feladat célkitűzése: A feladat célja az időbeli hibavisszaterjesztés (backpropagation through time) gyakorlása egy konkrét példán. Az általános elvek és a számszerűsíthető példák közti kapcsolat megteremtése és gyakorlása. 4.1.2. A feladat leírása, kérdések: Rajzoljon fel egy 1 rejtett rétegű, rejtett rétegében 2 szigmoid neuront, kimeneti rétegében 1 lineáris neuront tartalmazó, két bemenetű (a 2. sorszámú bemenet a visszacsatolás), egy kimenetű neurális NOE rendszert! A rendszer azért NOE jellegű, mert a háló kimenetét egy egyetlen időkésleltetést megvalósító blokkon keresztül csatoljuk vissza. A neuronoknak van eltolás (bias) bemenetük is. A következő súlymátrixok első oszlopa tartozik az eltoláshoz (az első mátrix harmadik oszlopa pedig a visszacsatoláshoz). A tanítást időbeli kiterítéssel végezzük 3 időegységből álló ablakban. Rajzolja fel a tanításnál használt kiterített hálót a t = 5 időponttal végződő időablakra, írja oda a be- és kimeneteihez a tanításnál használt értékeket! Írja fel 57

Időfüggő (szekvenciális) hálók a második réteg (= -1) súlyának ezen tanítási lépés hatására létrejövő megváltozását megadó összefüggést konkrét számértékekkel, ha a tanulás bátorsági faktora 0,1! (Tipp: az adott konkrét értékekkel, jóval könnyebb felírni az összefüggést, mint általánosan.) t 1 2 3 4 5 6 x(t) 1,4 2,8 1 0,8 0,9 0,3 Első réteg kimenetei [0,77 0,18] [0,77 0,90] [0,70 0,88] [0,65 0,86] [0,67 0,87] [0,53 0,79] y(t) 0 0,13 0,18 0,21 0,20 0,26 d(t) 0,2 0,4 0,1 0,21 0,45 0,5 4.1.3. A feladat megoldása 4.1.3.1. A megoldás lényege: Érdemes felrajzolni a konkrét kiterített hálót, a konkrét értékekkel, és a nullaértékű súlyokat kihagyni. Ezáltal egyszerűsödik a hibavisszaterjesztés. Számba kell venni azt, hogy a kérdéses súly hányszor és hol szerepel a kiterített hálóban, illetve megváltoztatása milyen uton hat az egyes időpontokban észlelhető kimenetekre. 4.1.3.2. Részletes megoldás: 8.4.1-1. ábra - A háló elvi felépítése 8.4.1-2. ábra - A háló felépítése figyelembe véve (kihagyva) a 0 értékű súlyokat 58

Időfüggő (szekvenciális) hálók 8.4.1-3. ábra - A 3 időegységnyi időablakban (t = 3, 4, 5) kiterített háló Látható, hogy az adott időablakba kiterített hálónál a kérdéses súly három helyen is szerepel, ezeket az ábrán vastagítással jelöltük. Mivel most erre az egy súlyra koncentrálunk, és kényelmetlen sok alsó, felső indexet kezelni, ezért a súly három példányát p, p, p -vel jelöltük. A tanítás során az időablakba eső négyzetes hibaösszeget (vagy átlagos négyzetes hibát) igyekszünk minimalizálni, ennek megfelelően mind a három időpontbeli pillanatnyi hibát bele kell vennünk a tanítási összefüggésbe. A három hiba elvileg függhetne a vizsgált súlynak mind a három példányától, de az ábrán látható módon ε(3) csak p -től függ az ε(4) p -től és p -től ε(4) stb., tehát: Mivel, ezért miatt a konkrét helyzetben két tag kiesik. A kimeneti neuron lineáris, ezért: 59

Időfüggő (szekvenciális) hálók A hibavisszaterjesztés ről p -re a következő (vastagított vonalakkal jelölt) úton történik: Ennek megfelelően: Hasonlóképpen: és Ezzel az összes kérdéses tagot felírtuk a konkrét számértékekkel. 5. Dinamikus hálózatok kialakításának néhány további lehetősége 6. Dinamikus hálók alkalmazása 60

9. fejezet - Moduláris hálók 1. Moduláris háló kialakítása feladat dekompozíció alapján 2. Szakértőegyüttesek 3. Moduláris háló kialakítása a tanító mintakészlet módosításával 4. A moduláris eljárások összefoglaló értékelése 61

10. fejezet - Nemellenőrzőtt tanulású hálózatok 1. Gépi intelligencia II. - Felügyelt Hebb-féle tanulás Miről szól ez a rész? Ebben a részben megismerjük az egyik legelső tanulási eljárást neurális hálózatokban: a Hebb szabályt (Donald Hebb, 1949). Az megeloző lineáris algebrai fejezetek anyagát használjuk annak magyarázatául, hogy a Hebbféle szabály miért működik. Azt is megmutatjuk, hogy hogyan alkalmazható a Hebb szabály alakfelismerési problémák megoldásakor. 1.1. Tartalom 1. Bevezetés 2. A Hebb-féle szabály Teljesítményelemzés 3. A pszeudoinverz szabály 4. Alkalmazás 5. A Hebb-féle szabály változatai 1.2. Előadás dia-sorozat 62

Nemellenőrzőtt tanulású hálózatok 63

Nemellenőrzőtt tanulású hálózatok 64

Nemellenőrzőtt tanulású hálózatok 65

Nemellenőrzőtt tanulású hálózatok 66

Nemellenőrzőtt tanulású hálózatok 67

Nemellenőrzőtt tanulású hálózatok 68

Nemellenőrzőtt tanulású hálózatok 69

Nemellenőrzőtt tanulású hálózatok 70

Nemellenőrzőtt tanulású hálózatok 71

Nemellenőrzőtt tanulású hálózatok 72

Nemellenőrzőtt tanulású hálózatok 73

Nemellenőrzőtt tanulású hálózatok 74

Nemellenőrzőtt tanulású hálózatok 75

Nemellenőrzőtt tanulású hálózatok 76

Nemellenőrzőtt tanulású hálózatok 77

Nemellenőrzőtt tanulású hálózatok 78

Nemellenőrzőtt tanulású hálózatok 79

Nemellenőrzőtt tanulású hálózatok 80

Nemellenőrzőtt tanulású hálózatok Készítette: Fodor János, Óbudai Egyetem 2. Kohonen háló, kompetitív hálózatok 3. Adattömörítés Hebb tanuláson alapuló hálózatokkal, PCA, KLT. 4. Nemlineáris PCA és altér hálók 4.1. Nemlineáris PCA és altér hálók A független komponens analízis (ICA) feladat megoldására számos algoritmus született és ezen algoritmusok többsége szabadon felhasználható programcsomag, toolbox formájában hozzá is férhető. A következőkben a FastICA algoritmus működésének szemléltetésére mutatunk be néhány példát. Az első két példa összekevert képek szétválasztását mutatja be, a további példák pedig a koktélparti probléma (beszédjelek szétválasztása) egy lehetséges megoldását, illetve egyéb hangjelek szétválasztását illusztrálja. A példák, azon túl, hogy az algoritmus gyors működését illusztrálják, bemutatva, hogy néhány iterációs lépés elegendő a kevert jelek szétválasztására, egy, a megoldást biztosító szabadon hozzáférhető FastICA programcsomagra is felhívják a figyelmet. A FastICA for Matlab 7.x and 6.x (Copyright (c) Hugo Gävert, Jarmo Hurri, Jaakko Särelä, and Aapo Hyvärinen) programcsomag szabadon letölthető a http://research.ics.tkk.fi/ica/fastica/ honlapról. A program egy könnyen használható grafikus felülettel rendelkezik, ahol be lehet állítani az algoritmus paramétereit. 10.4.1-1. ábra - Grafikus felület A témához kapcsolódó további információk a http://www.cs.helsinki.fi/u/ahyvarin/papers/fastica.shtml címen találhatók. 4.1.1. példa: fekete-fehér képek szétválasztása A példa során három fekete-fehér kép és egy zaj összekevert képein mutatjuk be a FastICA algoritmus működését. 81

Nemellenőrzőtt tanulású hálózatok Az eredeti képek: A következő képeken látható a keverés eredménye, amelyet egy 4x4-es véletlen számokból álló keverő mátrix eredményezett. A megfigyelt jeleket ( ) tehát az összefüggés szerint keverjük az kiinduló jelekből (forrásokból), ahol a keverő mátrix. Az összekevert képek: Az algoritmus néhány lépés alatt konvergált. A bemutatott ábrasorozat 6 iterációs lépés eredményeit mutatja. Az egyes lépések után fennálló közbenső eredmények és a 6. lépés utáni végeredménynek tekintett eredmény látható a következő ábrákon. A FastICA algoritmus a többi független komponens analízis algoritmushoz hasonlóan a komponenseket egy skalár szorzótényezőtől eltekintve határozza meg, tehát az eredmény nem egyértelmű és az eredeti képek a visszaállított képek skalárszorosaként kaphatók meg, vagyis a képeket utólag az előírt határok közé vissza kell skálázni. Előfordulhat az is mint az a következő képeken meg is figyelhető, hogy eredményként egyes képek negatívját kapjuk, ezért az egyes lépéseknél a közbenső eredményképek negatívjait is bemutatjuk. 1. lépés: negatí v 2. lépés: negatí v 3. lépés: negatí v 4. lépés: negatí v 82

Nemellenőrzőtt tanulású hálózatok 5. lépés: negatí v Végeredmény (6. lépés): negatí v 4.1.2. példa: színes textúrák: A következő példában a kiinduló képeken sokkal inkább különböző textúrák láthatók, mint eltérő alakzatok. Ebben a példában a következő ábrán látható színes textúrák szerepelnek. Az eredeti képek: A keverő mátrix itt is egy 4x4-es véletlen számokból álló mátrix. A következő képeken látható az algoritmus egyes iterációs lépései után a képek alakulása. Az összekevert képek: 1 lépés: negatí v 2 lépés: negatí v 3 lépés: 83

Nemellenőrzőtt tanulású hálózatok negatí v 4 lépés: negatí v 5 lépés: negatí v Végeredmény (6. lépés): negatí v Az eredményképeken látható, hogy a visszaállítás nem minden tekintetben tökéletes. Eltérés lehet a kép színében (az eredeti 3. kép és a visszaállított 4. kép), de a 2. kép esetében az is látható, hogy a visszaállítás még nem sikerült maradéktalanul: a 2. visszaállított kép még jelentős arányban tartalmazza az 1. képet is. 4.1.3. példa: beszédjelek szétválasztása A példa során 4 különböző beszédjel összekeverésével létrejött jelekre alkalmazzuk a FastICA algoritmust. Az algoritmus működésének eredményét megfigyelhetjük lépésről lépésre a jelalakok megtekintésével. Továbbá az összes kirajzolt jel.wav formátumban is rendelkezésre áll, így meghallgatható. Az eredeti hangjelek (kiinduló jelforrások) időfüggvényei: 84

Nemellenőrzőtt tanulású hálózatok A jelek összekeverése egy 4x4-es véletlen számokat tartalmazó keverő mátrixszal történt, ennek eredménye látható a következő ábrán. kevert jelek időfüggvénye: Az algoritmus 7 lépés alatt konvergált, az egyes lépések után kialakuló eredményt mutatják az alábbi ábrák. 1. lépés után: 2. lépés után: 85

Nemellenőrzőtt tanulású hálózatok 3. lépés után: 4. lépés után: 5. lépés után: 6. lépés után: 7. lépés után (végeredmény): A végeredménynek az eredeti jelekkel való összevetéséből látható, hogy a jelek sorrendje megváltozott, továbbá, hogy az első eredeti jel negatív konstansszorosa jelent meg második szétválasztott jelkomponensként. 4.1.4. példa: vegyes hangjelek (beszéd és zene) szétválasztása A következő példában három zenei jel, egy beszédjel és egy utcazaj szétválasztását végezzük el. A keverés itt is egy véletlen számokból álló keverő mátrixszal történt. A jelek alakulása itt is követhető lépésről lépésre. Az eredeti jelek időfüggvényei: A kevert jelek: 1. lépés után: 86

Nemellenőrzőtt tanulású hálózatok 2. lépés után: 3. lépés után: 4. lépés után: 5. lépés után: 6. lépés után (végeredmény): 4.1.5. példa: szinusz jelek Ebben a példában egy olyan feladatot mutatunk be, ahol a független komponens analízis módszerek nem képesek a kevert jelet komponenseire szétválasztani. Ha az összekevert jelek komponenseire a függetlenség kritériumai nem teljesülnek az ICA módszerek a jel komponenseinek meghatározására alkalmatlanok. Bár ilyen esetekben a független komponens analízis algoritmusai nem alkalmasak a jel komponenseinek meghatározására, más jelszeparáló eljárás alkalmas lehet a szétválasztásra. Legyen a feladat különböző frekvenciájú szinusz jelek keverékének a szétválasztása. Mivel az összekevert jelek nem függetlenek, a feladat az ICA algoritmusok számára nem megoldható. Ezt illusztrálja a következő képsorozat: Az eredeti jelek: 87

Nemellenőrzőtt tanulású hálózatok A kevert jelek: Az eredményként kapott jelek FastICA algoritmus alkalmazásával: Látható, hogy nem sikerült szétválasztani a jeleket. Másodrendű statisztikán alapuló forrás szétválasztó algoritmusok számára viszont ez egy egyszerű feladat. eredmény AMUSE algoritmussal: Az AMUSE algoritmus részletes bemutatása az irodalomban pl. [1], [2], [3] megtalálható. Itt csupán az algoritmus fő lépéseit foglaljuk össze. AMUSE algoritmus: 1. adatok fehérítése 2. autó-kovariancia mátrix kiszámítása: R transzformációs tulajdonsága: 3. szimmetrikus auto-kovariancia mátrix diagonizálása szimmetrikus auto-kovariancia mátrix: diagonizálás: ahol : sajátértékekből álló diagonális mátrix, Q: sajátvektorokból álló mátrix 4. A becslése a sajátvektorokból álló mátrixszal ha a források szimmetrikus auto-kovariancia mátrixának n (jelek száma) különböző sajátvektora van, akkor a keverő mátrix egyértelműen (kivéve oszlopok sorrendje, nagyságrend) meghatározható. [1] L. Tong, V. Soon, Y. F. Huang, and R. Liu, Indeterminacy and identifiability of blind identification, IEEE Trans. CAS, vole. 38, pp. 499-509, March 1991. [2] L. Tong, Y. Inouye, and R. Liu, Waveform-preserving blind estimation of multiple independent sources, IEEE Trans. on Signal Processing, 41 (7), pp. 2461-2470, July 1993. [3] http://www.biologie.uni-regensburg.de/biophysik/theis/research/fmriworkshop/slides_theis.pdf Ez a példa ICALAB for Signal Processing programmal készült. A programban több független komponens analízis algoritmust implementáltak, így a különböző módszerek összehasonlítására is alkalmas. 88

Nemellenőrzőtt tanulású hálózatok A program részletes leírása, és az implementált algoritmusok megtalálhatók a http://www.bsp.brain.riken.jp/icalab/icalabsignalproc/ honlapon 89

11. fejezet - Analitikus tanítású hálózatok 1. A Hopfield hálózat 2. A Boltzmann gépek 3. Mean-field hálózatok 4. Hopfield típusú hálózatok alkalmazása optimalizációs problémákra 90

12. fejezet - Hibrid-neurális rendszerek 1. Az a priori tudás felhasználása virtuális minták generálására 2. Az a priori tudás beépítése a tanuló eljárásba 3. KBANN, a tudás alapú neurális hálózat 91

13. fejezet - Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés 1. Zajos adatok 2. Az adatok előfeldolgozása 3. Kilógó adatok 4. Hiányzó adatok 4.1. A feladat célkitűzése A feladat célja az EM algoritmussal való hiánypótlás bemutatása egy demonstratív példán. 4.2. A feladat leírása Egy színes fénykép egyes pixelei (adatátvitel vagy tárolás során) meghibásodnak: egyes pixeleknél elveszik a 3 komponensű színinformáció (sárga-vörös-kék) egyik komponense. A jelen demonstratív példánál egy fénykép pixeleinek 20%-a hibás, a hibás pixelek mindegyikénél egy színkomponens veszett el. Az eredeti kép: 1. ábra - Az eredeti kép 92

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés A 20%-ban pixelhibás kép (az elromlott színkomponenst 0-val vesszük figyelembe, mivel alaphelyzetben nincs információnk az értékéről): 2. ábra - Az 1-1 komponensben hibás pixelek 93

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés A demonstratív feladat megoldása során azt mutatjuk meg, hogy hogyan segít a klaszterezés amelyet itt most EM algoritmussal végzünk a hiányzó adatok pótlásában. Összehasonlítási referenciaként azt az egyszerű pótlási eljárást mutatjuk meg, amikor az egyes hiányzó színkomponenseket egyszerűen az egész képre vett átlagukkal helyettesítjük. MEGOLDÁS: Két lehetőséget mutatunk be: az elsőnél a hiányzó színkomponenst a megmaradt ép pixelek megfelelő komponensének átlagával helyettesítjük, ez adja a javítást, 94

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés a másodiknál először EM algoritmussal klaszterezzük az ép pixeleket a 3-dimenziós (szín) térben, majd megkeressük minden sérült pixelre, hogy a maradék két szín alapján melyik klaszter középpontjához van a legközelebb. A helyettesítés ezen klaszter megfelelő színkomponens átlagával történik. Az egyszerű adatpótlási megoldás Az első nagyon egyszerű adatpótlási lehetőség: a megmaradt 80%-nyi hibátlan pixelnél színkomponensenként átlagot képzünk. Ezzel az átlagos értékkel helyettesítjük az egyes hibás pixeleknél a hiányzó színkomponenst. Mivel 8 bites színmélységet használunk, az egyes komponensek minimális értéke 0, maximális értéke 255. A három színkomponens eloszlása (a 80%-nyi ép pixel színkomponensenkénti hisztogramja), megjelölve az átlagot, amit helyettesítésre fogunk használni: 3. ábra - A kép piros színkomponensének hisztogramja 4. ábra - A kép zöld színkomponensének hisztogramja 5. ábra - A kép kék színkomponensének hisztogramja 95

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés Mint a hisztogramokon fel is tüntettük, az ép pixelekre átlagolva a vörös színkomponens átlaga 75, a zöldé 121, a kéké 122. Tehát az összes sérült pixelnél, ha a vörös komponens hiányzik, akkor 75-el pótoljuk, ha a zöld, akkor 121-el stb. Az eredmény az egyszerű módszertől elvárható módon nem túl jó, de azért javul a kép: 6. ábra - Az egyszerű pótlással javított kép A klaszterezés, majd klaszterenkénti adatpótlás Hogyan használhatjuk fel az EM algoritmust? Az ép pixeleket klaszterezzük, a jelen demonstratív példánál 6 klaszterbe soroltuk. Ebben a demóban Gauss eloszlások keverékének tételeztük fel a klaszter színkomponenseket, és csak a Gauss eloszlások várható értékét tanítottuk, a szórásokat nem. A kialakuló klaszterek, és a klaszteren belüli színeloszlások a következők. Az első klaszterbe tartozó képpontok (a jobb láthatóság kedvéért az eredeti fényességükhöz képest kivilágosítva az ábrán): 96

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés 7. ábra - Az első klaszterbe tartozó képpontok (kivilágosítva) Az ebbe a klaszterbe tartozó képpontok színkomponenseinek hisztogramja és a hozzájuk tartozó átlagos értékek: 8. ábra - Az első klaszterbe tartozó képpontok piros színkomponensének hisztogramja 9. ábra - Az első klaszterbe tartozó képpontok zöld színkomponensének hisztogramja 97

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés 8. ábra - Az első klaszterbe tartozó képpontok kék színkomponensének hisztogramja Vegyük észre, hogy az ebbe a klaszterbe tartozó pixeleknél a színintenzitás egyik színnél se haladja meg a 80-at, a hisztogramokat ezért az eredeti 0-255 skálához képest vízszintesen megnyújtva rajzoltuk fel. Mint a hisztogramokon fel is tüntettük, az ép pixelekre átlagolva ebben a klaszterben a vörös színkomponens átlaga 22, a zöldé 33, a kéké 15. Nyilvánvaló, hogy ha egy például vörös színkomponensében sérült pixelről el tudjuk dönteni, hogy valószínűleg ebbe a klaszterbe tartozik, akkor sokkal jobban járunk, ha az erre a klaszterre jellemző 22-es átlaggal pótoljuk a hiányt, mintha az egész képre jellemző 75-el tennénk. (Az ebbe a klaszterbe tartozó pixeleknél jószerivel elő se fordul 50 feletti vörös érték.) Hasonlóképpen a többi klasztert is megvizsgálva, az utolsó klaszteren kívül a színkomponens hisztogramok mellőzésével. A második klaszterbe tartozó képpontok: 11. ábra - A második klaszterbe tartozó képpontok 98

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés A harmadik klaszterbe tartozó képpontok: 12. ábra - A harmadik klaszterbe tartozó képpontok 99

A negyedik klaszterbe tartozó képpontok: Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés 13. ábra - A negyedik klaszterbe tartozó képpontok A ötödik klaszterbe tartozó képpontok: 14. ábra - Az ötödik klaszterbe tartozó képpontok 100

A hatodik klaszterbe tartozó képpontok: Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés 15. ábra - A hatodik klaszterbe tartozó képpontok Ez a kép annyira látványosan mutatja, hogy a kék labda a képen önálló klaszterbe került, hogy itt is megmutatjuk a klaszterre jellemző színkomponens hisztogramokat. Itt említjük meg, hogy az egyes klaszterképek azért pettyesek, mert a hibás pixeleket nem tüntettük fel, csak az épen maradt 80%-ot. 16. ábra - A hatodik klaszterbe tartozó képpontok piros színkomponensének hisztogramja 17. ábra - A hatodik klaszterbe tartozó képpontok zöld színkomponensének hisztogramja 101

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés 18. ábra - A hatodik klaszterbe tartozó képpontok kék színkomponensének hisztogramja Látható, hogy ebben a klaszterben a kék és zöld szín dominál, ezért a klaszterre vonatkozó információ jelentősen eltér az egész képre vonatkozótól. A klaszterenkénti színpótlás eredménye: Az eredmény lényegesen jobb, mint amikor az egyszerű (egész képre vett átlaggal) pótoltunk. 19. ábra - Az EM algoritmussal kapott klaszterenkénti pótlással javított kép 102

Gyakorlati feladatmegoldás: adatelőkészítés, lényegkiemelés Az összehasonlítás kedvéért egymás mellé tettük az egyszerű módszerrel javított és az eredeti (20% hibás pixelt tartalmazó) képet is. 20. ábra - Balról-jobbra: a klaszterezett, majd klaszterenként javított; a globális paraméterrel javított és az eredeti, hibás kép 4.3. Megjegyzések: 1. A fenti demonstrációs példában nem használtuk ki, hogy a színinformáció mellett a képen az egymáshoz közeli pixelek is nagyobb is nagyobb valószínűséggel tartoznak össze. Ha a geometriai elhelyezkedést is kihasználjuk, nyilván még jobb eredményt érhettünk volna el. 2. Felmerülhet kérdésként, hogy a megmaradó két színkomponens alapján mennyire jól sorolható be a hibás pixel a megfelelő klaszterbe. Besorolva a 20%-nyi hibás pixelt mind a megmaradó 2 színkomponens, mind az eredeti 3 színkomponens alapján azt találtuk, hogy csak a pixelek 6,9%-át soroltuk be más kklaszterbe, mint amelyikbe 3 szín alapján soroltuk volna. (Vagy megfordítva: a 93,1%-ot jó helyre soroltuk be.) 3. Más módon is megmutatható a klaszterezés hasznossága. Az alábbi ábrán az áttekinthetőség kedvéért 2 dimenzióban, csak a vörös és kék színkomponensek eloszlását mutatjuk meg a 6 klaszterre. 21. ábra - A vörös (vízszintes tengely) és kék (függőleges tengely) színkomponensek eloszlása az EM algoritmussal kapott 6 klaszterre Szerző: Pataki Béla, BME Illeszkedő fogalom: Adatpótlás EM algoritmussal Illeszkedő további fogalom: hiányzó adatok (NH könyv 13. Fejezet), EM algoritmus (MI könyv, NH könyv) Neurális könyvfejezet: 13.4 Neurális további könyvfejezet: 13.4 5. Lényegkiemelés 103