II. LABOR Tanulás, Perceptron, Adaline



Hasonló dokumentumok
I. LABOR -Mesterséges neuron

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

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)

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

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

Neurális hálózatok bemutató

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

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

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

[1000 ; 0] 7 [1000 ; 3000]

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

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

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

Intelligens Rendszerek Elmélete

Ipari kemencék PID irányítása

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

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

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

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

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

Robotok inverz geometriája

Ipari mintavételes PID szabályozóstruktúra megvalósítása

Lineáris egyenletrendszerek

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

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

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Irányításelmélet és technika II.

Fényerősség. EV3 programleírás. Használt rövidítések. A program működésének összegzése

Függvények növekedési korlátainak jellemzése

7. Szisztolikus rendszerek (Eberhard Zehendner)

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

Mély neuronhálók alkalmazása és optimalizálása

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

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

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

Algoritmusok helyességének bizonyítása. A Floyd-módszer

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

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

Grafikus folyamatmonitorizálás

Függvények július 13. Határozza meg a következ határértékeket! 1. Feladat: x 0 7x 15 x ) = lim. x 7 x 15 x ) = (2 + 0) = lim.

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

Végeselem modellezés alapjai 1. óra

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

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

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

Hajlított tartó elmozdulásmez jének meghatározása Ritz-módszerrel

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Konvexitás, elaszticitás

Bázistranszformáció és alkalmazásai 2.

Egyszerű programozási tételek

Érdekes informatika feladatok

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei


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

Irányításelmélet és technika II.

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

A félév során előkerülő témakörök

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

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

January 16, ψ( r, t) ψ( r, t) = 1 (1) ( ψ ( r,

Diszkréten mintavételezett függvények

Példatár a bevezetés a Matlab programozásába tárgyhoz

Forgalmi modellezés BMEKOKUM209

Digitális technika házi feladat III. Megoldások

Bevezetés a programozásba. 5. Előadás: Tömbök

Stratégiák tanulása az agyban

Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén

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

Support Vector Machines

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Permutációk véges halmazon (el adásvázlat, február 12.)

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

Algoritmizálás és adatmodellezés tanítása 2. előadás

Szinkronizmusból való kiesés elleni védelmi funkció

Analóg-digitál átalakítók (A/D konverterek)

Debreceni Egyetem Informatikai Kar. Fazekas István. Neurális hálózatok

Határozott integrál és alkalmazásai

Sorozatok, sorozatok konvergenciája

Térinformatikai algoritmusok Elemi algoritmusok

Sztöchiometriai egyenletrendszerek minimális számú aktív változót tartalmazó megoldásainak meghatározása a P-gráf módszertan alkalmazásával

Neurális hálózatok MATLAB programcsomagban

Dinamikus modellek szerkezete, SDG modellek

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

Véges állapotú gépek (FSM) tervezése

Mérési struktúrák

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

Matematika A2 vizsga mgeoldása június 4.

Differenciálegyenletek numerikus megoldása

Lineáris algebra gyakorlat

SCILAB programcsomag segítségével

2. Laboratóriumi gyakorlat A TERMISZTOR. 1. A gyakorlat célja. 2. Elméleti bevezető

Térinformatikai algoritmusok Elemi algoritmusok

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

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

1. Kombinációs hálózatok mérési gyakorlatai

Átírás:

II. LABOR Tanulás, Perceptron, Adaline A dolgozat célja a tanító algoritmusok osztályozása, a tanító és tesztel halmaz szerepe a neuronhálók tanításában, a Perceptron és ADALINE feldolgozó elemek struktúrája, tansítása és a köztük lev hasonloságok és különbségek ismertetése. Elméleti alapfogalmak Tanulás A neurális hálózatok legfbb jellemzje az adaptációs tanulási képesség. A neurális hálózatokban a tanulás egyszeren a rendszer valamilyen képességének javítását jelenti. Így tanulásról beszélhetünk, amikor olyan hálózat-architektúrát illetve paramétereket (súlyvektort) keresünk, amely mellett egy hálózat egy adott függvénynek a minél jobb approximációjára lesz képes, de tanulás során egy hálózat azon képessége is fejleszthet, amely a bemenetére kerül minták közötti hasonlóság megállapítását teszi lehetvé. A neurális hálózatok fbb tanulási formái: Tanítóval történ tanulás (ellenrzött vagy felügyelt tanulás) Tanulás tanító nélkül (nem ellenrzött vagy felügyelet nélküli tanulás) Analitikus tanulás Ellenrzött tanulásnál a hálózat összetartozó be- és kimeneti értékei, ú.n. tanítópárok állnak rendelkezésre. A tanítás azon alapszik, hogy ismertek a hálózatnak valamely bemenetekre adandó kívánt válaszai, így a hálózat tényleges válasza minden esetben közvetlenül összehasonlítható a kívánt válasszal. Az összehasonlítás eredménye- a tényleges és a kívánt válasz különbsége- felhasználható a hálózat olyan módosítására, hogy a tényleges válaszok a kívánt válaszokkal minél inkább megegyezzenek, a hálózat kimenete és a kívánt kimenet közötti különbség csökkenjen. Ellenrzött tanulásról beszélünk akkor is, amikor a kívánt válasz pontosan nem ismert, csupán annyit tudunk, hogy a hálózat válasza helyes vagy nem. Ezt megersít (reinforcement) tanulásnak nevezzük. A neurális hálózatok tanításáról lévén szó, említést kell tenni a tanítási folyamat fontosabb lépéseirl. Amint ismert az információ, egy neurális háló súlyzóiban van eltárolva, és a tanítási folyamat ezen súlyzók meghatározását, beállítását, módosítását jelenti. A tanítás egy ciklikusan ismétld folyamat, amely során a tanító halmazból egyenként vesszük a bemeneteket, megmutatjuk a hálónak, felhasználva az aktuális súlyzókat, az adott bemenetre kiszámoljuk a háló kimenetét, majd az elvárt érték és a kiszámolt érték között számolunk egy hibát. A hibát majd alkalmazzuk a súlyzók módosítására. A tanítási algoritmust két különböz osztályba sorolhatjuk, attól függen, hogy milyen módon határozzuk meg a hibát, éspedig minden bementre egyenként számolunk egy hibát, majd minden egyes bemenet után tanítjuk a háló súlyzóit vagy csak a teljes tanító halmazra számolunk egy hibavektort, amely alapján csak egyetlen egyszer módosítjuk a súlyzókat. Els esetben a tanítás a hiba pillanatnyi értéke alapján történik (ezt a tanítási módot szokás online tanításnak nevezni) vagy a tanító halmaz minden egyes elemére kiszámolt globális hiba alapján (ezt a tanítási módot szokás batch tanításnak nevezni). 9

Mesterséges Intelligencia Labor Tanítási ciklus A tanítás során a tanító halmazból veszünk egy be- és kimeneti elempárt. Az adott bemenetre kiszámoljuk a neuron (neurális háló) kimenetét. Az elvárt érték és kiszámolt értékbl számolt hibát felhasználjuk a súlyzók (paramétere módosítására. A tanítás során vesszük egyenként a tanító halmazból az elempárokat, és minden elempárra elvégezzük a paraméter módosítást. Egy ilyen ciklust- a háló tanítását az összes elempárra - tanítási ciklusnak nevezünk. Egy neurális háló tanítása a tanítási ciklusok sorozatából tevdik össze. A tanítás befejezdését annak alapján dönthetjük el, hogy közben leellenrizzük, hogy a háló teljesíti-e az elvárt feltételeket. A felügyelt tanítás esetében például minden tanítási ciklusra számolunk egy globális hibát, melyet ábrázolunk, és ha a hiba egy bizonyos küszöbérték alá kerül, leállítjuk a tanítást. A tanítás lényegében több fázisból tevdik össze -els fázis, amikor tanítjuk a hálót, és erre rendelkezésre áll egy tanító halmaz, amely ki-bemeneti elempárokat tartalmaz -egy tesztel fázis, amikor leellenrizzük a háló viselkedését olyan bemenetekre is, amelyek nem voltak jelen a tanító halmazban. Elfordulhat, hogy a tanítás sikerrel jár, de a tesztelés sikertelen. Ebben az esetben újra kell tanítani a hálót. Mindkét esetben százalékban szokták kifejezni, hogy a tanító halmaz hány százalékára viselkedik helyesen a háló. A sikeres tanítás és tesztelés után elmentjük a súlyzókat és alkalmazhatjuk a hálót. Ahhoz, hogy egy adott tizedesnyi pontossággal meg tudjuk határozni, hogy hány százalékban ad helyes eredményt a háló, a tanító halmaznak megfelel számú elemet kell tartalmaznia. Ha 0 darab elemre tanítjuk a hálót, csak 0%-os pontosággal tudjuk meghatározni a helyes mködést. Ha 0 elembl egy elemre téved, azt jelenti, hogy 90% százalékban helyesen mködik a háló. Nem ellenrzött tanulásnál nem állnak rendelkezésünkre adott bemenethez tartozó kívánt válaszok. A hálózatnak a bemenetek és a kimenetek alapján kell valamilyen viselkedést kialakítania, a környezetbl nincs semmiféle visszajelzés, ami a hálózat viselkedésének helyességére utalna. Ebben az esetben is rendelkezésünkre áll egy tanító halmaz, de csak bemeneteket tartalmaz, és nem tartalmazza az elvárt kimeneteket. Analitikus tanulás-a megfelel viselkedést biztosító hálózat kialakítása elméleti úton, a feladatból határozható meg. Ebben az esetben nem is beszélhetünk tanulásról, a hálózat megfelel kialakítása nem lépésenként, a környezetbl szerzett információ fokozatos felhasználása révén, hanem analitikus módszerekkel végezhet el. Tanító halmaz - be és kimeneti elempárok, amelyek rendelkezésünkre állnak. Általában ezt egy táblázatban tároljuk. A következkben bemutatásra kerül az egyszer perceptron és ADALINE hálók struktúrája és az LSM tanítási algoritmus. Az egyszer perceptron csak egyszerbb gyakorlati feladatok megoldására alkalmazható (a bináris kimenetbl, és lineráis szeparálási képességébl adódóan). Az egyszer perceptron kiindulási pont a többréteg percetron (MLP) tanulmányozásában. A PERCEPTRON az egyike a legels és legegyszerbb mesterséges neurális hálózatoknak. Az elrecsatolt többréteg hálózatok olyan speciális változatának tekinthet, amely egyetlen rétegbl és azon belül egy vagy több processzáló elembl áll. Az egy processzáló elembl álló változatot szokás egyszer perceptronnak is nevezni. A Perceptront eredetileg Rosenblatt javasolta egy olyan hálózatként, amely képes arra, hogy megfelel beállítás, tanítás után két lineárisan szeparálható mintahalmazt szétválasszon. A 0

lineáris szeparálhatóság azt jelenti, hogy a bemeneti mintateret egy síkkal (hipersíkkal) két diszjunkt tartományra tudjuk bontani úgy, hogy a két tartomány eltér osztályba tartozó bemeneti mintapontokat tartalmazzon. Az egyszer perceptron tehát kétosztályos esetekben lineáris feladatok ellátására alkalmas. A késbbiekben az egyszer perceptront továbbfejlesztették, több elem, illetve többréteg hálózatokká, amelyek képességei az egyszer perceptron képességeit messze felülmúlják. A perceptron struktúrája az alábbi ábrán látható. Az egyszer perceptron egy partikuláris esete a McCulloch-Pitts mesterséges neuron modellnek, amikor az aktiváló függvény egy lépcsfüggvény. Az egyszer neuron szerepe osztályozni a bemeneteket a két lehetséges osztály egyikébe (y = + vagy y = -) A kimenetet a következképpen kell kiszámítani: v = N i= w i x i θ +, ha y = ϕ ( v) = sgn( v) =, ha x x ( n) ( n) C C 2 Az osztályok a következ egyenlet által megadott hipersíkkal vannak szétválasztva: N i= wix i θ = 0 Ennek egy partikuláris esete N=2 w x + w2 x2 θ = 0, egy egyenes egyenletét ábrázolja az x 2 Ox síkban. Ebben az esetben a bemeneti vektorok egy egyenessel vannak elválasztva. Egy példa egy ilyen típusú feladatra az ÉS logikai függvény, ellenpélda pedig a XOR, ami nem szeparálható egy egyenessel. N=3 esetében az elválasztás egy síkkal, N>3 esetében hipersíkkal történik. Az egyszer perceptron csak lineárisan szeparálható feladatok megoldására alkalmazható.

Mesterséges Intelligencia Labor Változók, paraméterek jelölése: x =, x, x,..., -bemeneti vektor 2 x N [ ] T w [ θ w, w,..., ] T = -súlyzó vektor (szinaptikus kapcsolatok, 2 w N vektora) θ küszöb (referencia bemenet) y a neuron kimenete d várt válasz µ tanítási együttható, 0 <=µ <. Perceptron típusú neurális háló tanításának lépései: ) súlyzók inicializálása: w = 0; 2) a háló (neuron) kimenetének kiszámolása y = sgn [ w x] T ahol sgn() a aktiváló függvény. 3) módosítjuk a súlyzók értékét (szinaptikus kapcsolatok ersségét) w [ k + ] = w[ k] + µ ( d y)x -vektoriális forma w k + = w k + η d y x -skaláris forma i [ ] i[ ] ( ) i ( n) ( n) +, ha x C ahol d ( n) =, ha x C2 4) vesszük a következ elemet a tanító halmazból Addig ismételjük a ciklust, amíg az osztályozás minden bemeneti vektorra helyes. ADALINE mesterséges neuronháló. LMS (Least Mean Square) algoritmus Az ADALINE neuron abban különbözik a perceptron-tól, hogy a hibát nem a kimeneten, hanem a lineáris kimenet alapján számoljuk ki. Az LMS algoritmust ismert Widrow Hoff algoritmus, vagy delta-szabály. Az ADALINE felépítését a következ ábra szemlélteti 2 halmazból a) a súlyzók inicializálása w k (0) = 0, k =,2,..., N b) a háló kimenetének a kiszámolása egy bemeneti vektorra a tanítási N y = j = 0 w j x j c) kiszámoljuk a hibát, mint a várt kimenet és a lineáris kimenet közötti különbséget d) módosítjuk a súlyzókat a delta- szabályt alkalmazva

Egy feldolgozó elem nemlineáris aktiváló függvénnyel A súlyzók módosítása abban az esetben, ha a neuron nemlineáris aktivációs függvényt tartalmaz, a következ képlet alapján alakul: w ( k + ) = w( + µε f ( s) x( ahol ε ( = ( d( y( ) az elvárt érték és a háló kimenetén kapott érték közötti különbség, f ( s) az aktivációs függvény deriváltja, w súlyvektor, x a bemeneti vektor, µ pedig a tanítási együttható. Példa feladat: Tervezzünk egy neuronhálót, amelyet 3x3 mátrixon ábrázolt karakterek azonosítására alkalmazunk. A feladat megoldásának fontosabb lépései: ) A tanítandó karakterek tervezése (meghatározása) 2) A háló be és kimeneteinek a meghatározása 3) A neuronháló struktúrájának a meghatározása 4) A tanítóhalmaz felépítése 5) A háló tanítása 6) A háló tesztelése csak elhívási fázist alkalmazva Végezzük el a háló tanítását két esetre majd hasonlítsuk össze a kapott megoldásokat. Els változatban két karakterre, majd négy karakterre végezzük el a háló tanítását. Két karakteres megoldásnál alkalmazzuk a következ karaktereket A neuronháló bemeneteinek a számát a karakter pixelek száma (a neuronháló változó bemenetei), valamint egy konstans érték bemenet együttesen adja. A neuronháló kimenetei számának a meghatározására két megoldást javasolunk. Ha két karakterünk van a háló kimenetét binárisan lehet kódolni. Például a T karakternek feleljen meg logikai igaz, a H karakternek pedig logikai hamis. Ennek megfelelen a háló egyetlen PERCEPTRON típusú neuronnal megvalósítható. Ebben az esetben a háló tanítása könnyen elvégezhet. Igen ám, de ennek a megoldásnak van egy hátránya. 3

Mesterséges Intelligencia Labor Ha hibás karaktert viszünk a bemenetre, attól függen, hogy melyik karakterhez hasonlít jobban vagy T, vagy H karakternek ismeri fel a háló, a valóságban pedig egy harmadik karakterrl van szó. A hibás karaktereknek a felismerésére a megoldás a következ: annyi kimenete legyen a neuronhálónak mint az osztályozandó karakterek száma. Ebben a megközelítésben minden egyes karakterhez hozzárendelünk egy perceptron típusú neuront. Ha a helyes karakter kerül a háló bemenetére a karakternek megfelel neuron kimenete aktív lesz, míg hibás karakter esetében a háló kimenetee nulla marad. Ha több karaktert kell osztályozni a hálónak annyi kimenete lesz ahány karakter. Az következ táblázatokban a tanítóhalmazok alakulása van feltüntetve a három esetnek megfelelen.. táblázat Két karakter egy kimenet Bemenetek Elvárt kimenet 0 0 0 0 0 0 0 4

2. táblázat Két karakter két kimenet Bemenetek Elvárt kimenet 0 0 0 0 0 0 0 0 3. táblázat 4 karakter 4 kimenet Bemenetek Elvárt kimenet 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A kimenetek kódolása függ az alkalmazott aktivációs függvény típusától. Küszöbfüggvényt alkalmazva a kimeneteket 0, el kodoljuk, lépcsfüggvény esetében pedig -,. A tanítás több tanítási ciklust tartalmaz. Egy tanítási ciklus a következ lépéseket tartalmazza a) a tanítóhalmazból a következ karakter bevitele a neuronháló bemenetére b) a háló kimenetének kiszámolása c) a hiba kiszámolása az elvárt kimenet és a kiszámolt háló kimenete között d) a súlyzók tanítása e) a hiba összegzése A tanítási ciklusokat addig kell ismételni, amíg a hiba egy meghatározott érték alá nem csökken. Mivel elre a tanítási ciklusoknak a száma ismeretlen, egyszerübb ha elre meghatározzuk a tanítási ciklusok számát, majd ellenrizzk, hogy a hiba eléggé lecsökkent-e? Ha a hiba a tanítás után a meghatározott küszöbérték alá csökkent, a tanítást befejezetnek mínsítjük. Ellentkez esetben tanítási együtthatót módosítva, tanítási ciklusok számát növelve megismételjük a neuronháló tanítását. A tanító halmazon kívül egy tesztel halmazt is fel kel építeni. A tesztel halmaz nem csak ideális, hanem zajos, hibás karaktereket is tartalmaz. A tesztel halmaz minden elemére kiszámoljuk a háló kimenetét. Minden egyes tanítási ciklusban minden egyes karaktert beviszünk a háló bemenetére A tanítóhalmazt két külön mátrixban van tárolva. A T mátrix tartalmazza a karakterek kódolását a d mátrix pedig tartalmazza a kimenetek kódolását. A T mátrix méretét tanulmányozva, azt látjuk, hogy egy-el több oszlopot tartalmaz mint a 3-as táblázatban bemutatott tanító halmaz. Ennek oka, hogy a konstans érték bemenet is bekerült a tanító halmazba. Amint látható a T mátrix els oszlopának minden egyes eleme -es. Az els oszlop reprezentálja a konstans érték bemeneteket. A tanítás során a konstans értékeket is tanítani kell. A konstans értéknek a tanító halmazba való bevitelével azt érjük el, hogy ehhez a bemenethez kapcsolódó sulyzó reprezentálja a konstans értéket aminek a tanítása egyszerre fog történni a változó bemenetekhez kapcsolodó súlyzókkal. Az alábbi példában 4 karakter tanítása van szemléltetve T=[ 0 0 0 0; 0 0 ; 0 0 0 0; 5

Mesterséges Intelligencia Labor 0 0 0 0 ]; Amint látható a kimenetek kódolásából aktivációs függvényként lépcsfüggvényt alkalmaztunk d=[ - - -; - - -; - - -; - - - ]; A következ sorban a súlyzómátrixok véletlenszer inicializálása látható. A súlyzómátrix sorainak a számát meghatározza a neuronháló bemeneteinek a száma, míg a súlyzómátrix oszlopainak a számát meghatározza a neuronk (a hálo kimeneteine a száma w=(rand(0,4)-0.5)*a; a tanítási együttható [0 ] közötti értéket vehet fel. Túl nagy tanítási együtthatót választva a tanulás divergensé válhat. Túl kicsi tanítási együttható lassú tanulsát eredményez. A tanítást ciklus többször lefutatva különböz tanítási együtthatókra meghatározhatóak azon tannítási együthatóknak az értéke, amely a legyorsabb tanulást eredményezi. u=0.05; Az alábbi programrész tartalmazza a háló tanítását. Amint látható a programban két ciklus különíthet el. A bels ciklus biztosítja a tanító halmazból minden egyes karakter tanítását. A küls ciklus határozza meg a tanítási ciklusoknak a számát. for i=:n E(i)=0; for j=:4 x=t(j,:)'; %- a j-ik elem kiválasztása a tanítóhalmazból s=w'*x; %az inger kiszámolása y=sign(s); % a háló kimenetének a kiszámolása h=d(j,:)'-y; % a hiba kiszámolása w=w+u*x*h'; % a súlyzok tanítása E(i)=E(i)+h'*h; % a hiba összegzése egy tanítási ciklusra. A hibát egy vektorban tároljuk, a vektor minden egyes eleme egyes tanítási ciklusokban kapott hibákat tartalmazzák. Grafikusan ábrázolva a hibát következtetni lehet a háló tanulásának alakulására. end end plot(e); grid on; title('négyzetes hiba változása') xlabel('cikluslépés') ylabel('négyzetes hiba') A tesztelési fázis a következ programrészben van szemléltetve. Amint látható a tesztelés csak elhívási fázist tartalmaz, és megyegyezik a tanítás során az elhívási fázisaal, azzal a különbséggel, hogy a bemeneteket a Teszt_halmaz nev mátrix tartalmazza. 6

for j=:4 x=teszt_halmaz(j,:)'; s=w'*x; y=sign(s); end %- a j-ik elem kiválasztása a tanítóhalmazból %az inger kiszámolása % a háló kimenetének a kiszámolása Gyakorlati feladatok kérdések ) Tervezzünk egy-egy neurális hálót az ÉS, VAGY, XOR logikai függvények megvalósítására. Probáljuk a súlyzók értékét analitikusan meghatározni, majd a háló tanítására alkalmazzuk a delta-szabályt 2) Tervezzünk egy neuronhálót melynek bemeneteit egy 3x3 as mátrixon ábrázolt bemeneti vektorból kapjuk. A hálót tanítsuk meg a T és H karakterek felismerésére. Hasonlítsuk össze a PERCEPTRON és ADALINE algoritmusokat a tanítási hiba függvényében, valamint tanulmányozzuk a hiba változását különböz tanítási együtthatókra. 3) Módosítsuk a háló topológiáját úgy, hogy négy különböz karaktert tudjunk osztályozni. Végezzük el a tanítást különböz tanítási együtthatókra, és hasonlítsuk össze a PERCEPTRON és ADALINE algoritmusokat. 4) Vezessük le a w ( k + ) = w( + µεf ( s) x( tanítási képletet, ha a neuron nemlineáris aktivációs függvényt tartalmaz, kiindulva a következ képletbl: 2 ε ( wi ( k + ) = wi ( µ w ( i 7