NEWFF letrehoz egy előrecsatolt neuronhálót net = newff(pr,[s1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)



Hasonló dokumentumok
Jelek tanulmányozása

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2006/2007

Generáljunk először is mintákat a függvényből. Ezzel fogunk majd később tanítani.

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

Bevezetés a lágy számítás módszereibe

KOVÁCS BÉLA, MATEMATIKA I.

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

Mágneses szuszceptibilitás vizsgálata

Beszámoló: a kompetenciamérés eredményének javítását célzó intézkedési tervben foglaltak megvalósításáról. Őcsény, november 20.

MATLAB. 4. gyakorlat. Lineáris egyenletrendszerek, leképezések

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

[MECHANIKA- HAJLÍTÁS]

BETONACÉLOK HAJLÍTÁSÁHOZ SZÜKSÉGES l\4"yomaték MEGHATÁROZÁSÁNAK EGYSZERŰ MÓDSZERE

[GVMGS11MNC] Gazdaságstatisztika

Lineáris algebra gyakorlat

Rendezési algoritmusok belső rendezés külső rendezés

MÁTRIXOK SAJÁTÉRTÉKEINEK ÉS SAJÁTVEKTORAINAK KISZÁMÍTÁSA. 1. Definíció alkalmazásával megoldható feladatok

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

Vektoros elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

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

Bár a digitális technológia nagyon sokat fejlődött, van még olyan dolog, amit a digitális fényképezőgépek nem tudnak: minden körülmények között

- mit, hogyan, miért?

A Hozzárendelési feladat megoldása Magyar-módszerrel

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

Párhuzamos programozás

Kombinatorika. 9. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Kombinatorika p. 1/

Egységes jelátalakítók

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

2011. március 9. Dr. Vincze Szilvia

Amit a Hőátbocsátási tényezőről tudni kell

ADATBÁZIS-KEZELÉS. Funkcionális függés, normál formák

Programozás I gyakorlat

1. Metrótörténet. A feladat folytatása a következő oldalon található. Informatika emelt szint. m2_blaha.jpg, m3_nagyvaradter.jpg és m4_furopajzs.jpg.

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Készítsen négy oldalas prezentációt egy vállalat bemutatására!

#instagramads Az első tapasztalatok. Contact: Eva Drienyovszki Senior Search Specialist

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

Boldva és Vidéke Taka r ékszövetkezet

Boldva és Vidéke Taka r ékszövetkezet

Digitális technika (VIMIAA01) Laboratórium 1

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

Az idegrendszeri memória modelljei

Növelhető-e a hazai szélerőmű kapacitás energiatárolás alkalmazása esetén?

Csoportosított adatok megjelenítése sorhalmaz függvények használatával

3. Térvezérlésű tranzisztorok

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

Épületvillamosság laboratórium. Villámvédelemi felfogó-rendszer hatásosságának vizsgálata

Esettanulmányok és modellek 1 Termelésprogramozás az iparban

INFORMATIKAI ALAPISMERETEK

Conjoint-analízis példa (egyszerűsített)

G Szabályfelismerés feladatcsomag

Kooperáció és intelligencia

Feladatlap. I. forduló

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

SAP JAM. Felhasználói segédlet

Fordítóprogramok Készítette: Nagy Krisztián

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6. Alapműveletek

ELEKTRONIKAI ALAPISMERETEK

Arany Dániel Matematikai Tanulóverseny 2011/2012-es tanév első (iskolai) forduló haladók I. kategória

Korszerű geodéziai adatfeldolgozás Kulcsár Attila


Az aktiválódásoknak azonban itt még nincs vége, ugyanis az aktiválódások 30 évenként ismétlődnek!

Tisztelt Hallgatók! Jó tanulást kívánok, üdvözlettel: Kutor László

Javítóvizsga témakörei matematika tantárgyból

A robbanékony és a gyorserő fejlesztésének elmélete és módszerei

Ablakok használata. 1. ábra Programablak

ELEKTRONIKAI ALAPISMERETEK

Neurális hálózatok MATLAB programcsomagban

A mérés célja: Példák a műveleti erősítők lineáris üzemben történő felhasználására, az előadásokon elhangzottak alkalmazása a gyakorlatban.

Jelölje meg (aláhúzással vagy keretezéssel) Gyakorlatvezetőjét! Györke Gábor Kovács Viktória Barbara Könczöl Sándor. Hőközlés.

Reiz Beáta április

Osztályozó és Javító vizsga témakörei matematikából 9. osztály 2. félév

EDC gyors üzembe helyezési útmutató

Milyen segítséget tud nyújtani a döntéshozatalban a nem-hagyományos jelfeldolgozás?

XII. LABOR - Fuzzy logika

TANTÁRGYI ÚTMUTATÓ. Prezentáció és íráskészségfejlesztés. tanulmányokhoz

KOVÁCS BÉLA, MATEMATIKA I.

B1: a tej pufferkapacitását B2: a tej fehérjéinek enzimatikus lebontását B3: a tej kalciumtartalmának meghatározását. B.Q1.A a víz ph-ja = [0,25 pont]

Számrendszerek közötti átváltások

Tanulás az idegrendszerben

Orvosi diagnosztikai célú röntgenképfeldolgozás

Lineáris algebra és a rang fogalma (el adásvázlat, május 29.) Maróti Miklós

Mintavételező és tartó áramkörök

Algoritmuselmélet. Keresés, rendezés, buborék, beszúrásos, összefésüléses, kupacos, láda, radix. Katona Gyula Y.

Variációk egy témára - táblázatkezelő feladatok megoldása többféleképpen

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

Lineáris algebra jegyzet

Feladatok megoldásokkal a negyedik gyakorlathoz (Függvényvizsgálat) f(x) = 2x 2 x 4. 2x 2 x 4 = 0, x 2 (2 x 2 ) = 0.

Számítógép hálózatok gyakorlat

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

Kötvények és részvények értékelése

Kerékpárlabda kvalifikációs szabályzat

SZAKÁLL SÁNDOR, ÁsVÁNY- És kőzettan ALAPJAI

xdsl Optika Kábelnet Mért érték (2012. II. félév): SL24: 79,12% SL72: 98,78%

Bevezetés az ökonometriába

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

MBLK12: Relációk és műveletek (levelező) (előadásvázlat) Maróti Miklós, Kátai-Urbán Kamilla

ECO-LOG-ING. Simon László

Z Á G A N U D

Átírás:

IV.- LABOR Előrecsatolt többrétegű hálók tanítása IV.- LABOR Előrecsatolt többrétegű hálók tanítása A dolgozat célja: az előrecsatolt többrétegű neuronhálók tanítása, időben változó értékű tanító együtthatók alkalmazása, a háló méretének optimalizálása a háló méretének csökkentésével vagy növelésével, a többrétegű neuronhálókkal kapcsolatos MATLAB függvények alkalmazása neuronhálók tanítására és tesztelésére Elméleti alapfogalmak Alapvető MATLAB függvények az előrecsatolt többrétegű hálók tanítására: newff- egy új többrétegű előrecsatolt perceptron típusú háló létrehozása sim-a háló kimenetének előállítása egy adott bemenetre (előhívási fázis) train-a háló tanítása NEWFF letrehoz egy előrecsatolt neuronhálót net = newff(pr,[s1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) PR -- R x 2 matrix, tartalmazza a minimális és maximális értékeket egy R elemű bemeneti vektorra Si az ik réteg neuronjainak száma, az utolsó (kimeneti réteg) neuronjainak a számát a feladat határozza meg) TFi i-ik réteghez tartozó aktivációs függvények típusa:tansig, logsig, purelin (alapértelmezett = 'tansig') BTF- backpropagation training function trainbfg- -quasi-newton backpropagation trainlm -Levenberg-Marquardt backpropagation traingd -Gradient descent backpropagation traingdm -Gradient descent with momentum backpropagation traingda -Gradient descent with adaptive learning rate backpropagation traingdx -Gradient descent with momentum and adaptive learning rate backpropagation BLF - Backprop weight/bias learning function, default = 'learngdm' LEARNGD-Gradient descent weight/bias learning function LEARNGDM-Gradient descent w/momentum weight/bias learning function PF- Performance function, default = 'mse'. MSE Mean squared error performance function. MSEREG Mean squared error with regularization performance function. MAE Mean absolute error performance function. Példa P = [0 1 2 3 4 5 6 7 8 9 10]; T = [0 1 2 3 4 3 2 1 2 3 4]; tanító halmaz net = newff([0 10],[5 1],{'tansig' 'purelin'}); % a háló felépítése 23

Mesterséges Intelligencia Labor net = train(net,p,t); %a háló tanítása Y = sim(net,p); %a háló kimenetének kiszámolása Ötletek a tanítási algoritmus gyorsítására, a lokális minimumokba való ragadás elkerülésére Milyen értéket kell választani a tanítási együtthatónak? a) Túl nagy tanítási együttható esetében az algoritmus nem konvergens. b) Igen kicsi tanítási együttható esetében a tanulás lassú, és gyakran elakad lokális minimumokban c) Javasolt a változó értékű tanítási együtthatónak az alkalmazása, kezdetben nagyobb együttható biztosítja a gyors tanítást, a tanítás végén pedig egyre kisebb értékű együttható alkalmazása eredményezi a pontos finom a tanulást. Egy javaslat a 1 változó értékű tanítási együttható kiszámítására µ [ k] = µ 0 ahol µ 0 -a tanítási 1+ Tk együttható kezdeti értéke, k-adik tanítási ciklus, T- egy paraméter, melynek segítségével a tanítási együttható változásának meredekségét lehet hangolni, µ [ k] -a tanítási együttható értéke a k-adik tanítási ciklusban 24 d) A lokális minimumokba való elakadás elkerülésére javasolt a momentum módszer alkalmazása. A Widrow Hoff (delta) szabályt egy újabb taggal, úgynevezett momentummal kell kiegészíteni. A momentumos tagnak a lényege, hogy figyelembe veszi a súlyzók módosításának az irányát az előbbi lépésből. Amint az algoritmus nevéből is kiszűrhető, egy tehetetlenségi tagról van szó. w [k + 1] = w [k] + µ δi f ( s ) x [k] + mw [k 1] w -az l-ik réteg i-ik neuronja és j-ik bemenet közötti súlyzó értéke µ l-ik réteghez tartozó tanítási együttható δi -a réteg kimenetén a hiba (a kimeneti réteg esetében a háló kimenetén kiszámolt hiba, rejtett rétegek esetében pedig a visszaáramoltatott hiba) x j [k] -az l-ik réteg j-ik bemenete a k-ik tanítási ciklusban m -momentum tag, 0 és 1 között vehet fel értéket e) Egy módszer a tanítás gyorsítására: ha a tanulás stagnál, duplázzuk meg a tanítási együtthatót ha a tanulás elég gyors, marad a tanítási együttható értéke az előbbi tanítási ciklusból ha a hiba növekedni kezd, felezzük a tanítási együtthatót A neuronháló méretének az optimalizálása Nem elég a feladatot megoldani, hanem a leggyorsabb megoldást szeretnénk elérni. Ha a neuronháló szoftveres megvalósításáról van szó, a háló kimenetének a kiszámítása (és tanítása) annál gyorsabb, minél kevesebb számítást kell elvégeznünk. A háló méretének az optimalizálása az elvégzendő számítások csökkentését eredményezi. A neuronháló optimális mérete a következőképpen határozható meg a) A háló méretének növelésével. Egy kisebb méretű hálóból kiindulva elvégezzük a tanítást. A tanítás végén ellenőrizzük, hogy elfogadható-e a megoldás. Ha nem elfogadható, újabb neuronokat építünk a hálóba. Egy rejtett réteget és egy kimeneti réteget tartalmazó háló esetében a rejtett rétegben egy újabb neuronnak a bevitele a súlyzómátrixoknak a következő módosításait igényli i j

IV.- LABOR Előrecsatolt többrétegű hálók tanítása a rejtett réteg súlyzó mátrixához hozzá kell adni egy újabb oszlopot, a kimeneti réteghez hozzá kell adni egy újabb sort Újra és újra elvégezzük a háló tanítását, amíg a hiba a megfelelő érték alá nem csökken. Az új neuron bevitele után a hiba csökkenése lesz észlelhető. Ha a hiba csökkenése stagnál, egy újabb neuron bevitelére kerül sor. b) A háló méretének a csökkentésével. Egy nagyobb méretű hálóból kiindulva (amely biztosan megoldja a feladatot) optimalizáljuk a háló méretét csökkentve a rejtett rétegben levő neuronok számát. A neuronok kivágásánál felmerül a kérdés, hogy melyik neuronokat lehet kivágni a hálóból. A neuron hálóból kivághatóak azok a neuronok, amelyek teljesítik a következő feltételeket: Ha két neuronnak a kimenete hasonló a tanítóhalmaz minden elemére A tanítóhalmaz minden elemére egyes neuronok kimenete nulla (vagy nullához közeli) Egy neuron kivágása után továbbtanítjuk a neuronhálót. Első fázisban a hiba növekedése lesz észlelhető, de ha a háló képes megoldani a feladatot, a hiba az elvárt érték alá csökken. Tehát egy újabb neuront kell kivágni. Addig ismételjük a neuronok kivágását, amíg a hiba az elvárt érték alá nem csökken. Az alábbiakban egy példaprogram látható, amelyben 5x7 méretű alfabetikus karaktereket tanítunk egy előrecsatolt többrétegű mesterséges idegsejthálóval a MATLAB Neural Networks Tolbox függvényeit alkalmazva. clf; figure(gcf) echo on % NEWFF - az elırecsatolt háló inicializálása % TRAINGDX - a háló tanítása gyors backpropagation algoritmussal % SIM - a neurális háló szimulációja %% KARAKTER FELISMERÉS % A TANÍTÓ HALMAZ FELÉPÍTÉSE % ========================== %prprob tartalmazza a tanító halmazt (26 karakter) és az elvárt kimenetet [alphabet,targets] = prprob; [R,Q] = size(alphabet); [S2,Q] = size(targets); %% MEGHATÁROZZUK A HÁLÓ STRUKTÚRÁJÁT % ================================== % logsig típusú aktivációs függvényeket alkalmazunk a rejtett és a kimeneti % rétegbe %S1-a rejtett retegben levı neuronok száma %S2-a kimeneti rétegben levı neuronok száma S1 = 10; net = newff(minmax(alphabet),[s1 S2],{'logsig' 'logsig'},'traingdx'); net.lw{2,1} = net.lw{2,1}*0.01; net.b{2} = net.b{2}*0.01; %a COMMAND ablakba beírva a net változót, láthatjuk, hogy milyen paramétereket %tartalmaz és ha szükséges, módosíthatjuk azokat. %például net.trainparam.lr -a tanítási együttható lekérdezése %például net.trainparam.lr=0.001 %net.layers{1}.transferfcn % a rejtett réteg aktivációs függvényének 25

Mesterséges Intelligencia Labor %lekérdezése %net.layers{2}.transferfcn % A második (kimeneti) réteg aktivációs %függvényének lekérdezése %net.layers{1}.transferfcn='tansig' -tansig aktivációs függvény alkalmazása %a rejtett rétegbe %% TANÍTJUK A HÁLÓT (ZAJMENTESEN) % ================================== % Beállítjuk a tanítási paramétereket net.performfcn = 'sse'; % Sum-Squared Error kritérium függvény net.trainparam.goal = 0.1; % a cél hiba net.trainparam.show = 20; % a hiba kirajzolásának frissítése net.trainparam.epochs = 5000; % a maximális tanítási korszakok száma net.trainparam.mc = 0.95; % momentum értéke P = alphabet; %-a tanítandó karakterek T = targets; %-az elvárt kimenet [net,tr] = train(net,p,t); % a háló tanítása %% A HÁLÓ TANÍTÁSA ZAJOS KÖRNYEZETBEN % ================================== netn = net; %lementjük a régi hálót netn.trainparam.goal = 0.6; % a cél hiba netn.trainparam.epochs = 300; % maximális tanítási korszakok száma % A hálót 10 cikluson át tanítjuk, az eredeti karaktereket torzítva T = [targets targets targets targets]; for pass = 1:10 fprintf('sikeres = %.0f\n',pass); P = [alphabet, alphabet,... (alphabet + randn(r,q)*0.1),... (alphabet + randn(r,q)*0.2)]; [netn,tr] = train(netn,p,t); echo off end echo on %% TANITJUK A HÁLÓT AZ EREDETI (nem zajos) KARAKTERKRE % ========================================= % biztosítva ezáltal, hogy az eredeti karaktereket helyesen azonosítja netn.trainparam.goal = 0.1; % célhiba netn.trainparam.epochs = 500; % maximális tanítási korszakok száma net.trainparam.show = 5; % a hiba kirajzolásának frissítése a net hálóra P = alphabet; T = targets; [netn,tr] = train(netn,p,t); %a háló tanítása %% A HÁLÓ TESZTELÉSE % A TESZT PARAMÉTEREK BEÁLLÍTÁSA noise_range = 0:.05:.5; max_test = 100; network1 = []; network2 = []; T = targets; 26

IV.- LABOR Előrecsatolt többrétegű hálók tanítása % A TESZT ELVÉGZÉSE for noiselevel = noise_range fprintf('a háló tesztelése %.2f zajszintre.\n',noiselevel); errors1 = 0; errors2 = 0; for i=1:max_test P = alphabet + randn(35,26)*noiselevel; % AZ ELS? HÁLÓ TESZTELÉSE (net) A = sim(net,p); % a háló szimulációja a bemenetekre AA = compet(a); % errors1 = errors1 + sum(sum(abs(aa-t)))/2; %a hiba összegzése % A MÁSODIK HÁLÓ TESZTELÉSE An = sim(netn,p); %a háló szimulációja a bemenetekre AAn = compet(an); errors2 = errors2 + sum(sum(abs(aan-t)))/2; %a hiba összegzése echo off end % ÁTLAGHIBA SZÁMOLÁSA 100 x 26 KARAKTERRE network1 = [network1 errors1/26/100]; %elsı háló átlag hibavektora network2 = [network2 errors2/26/100]; %második háló hibavektora end echo on % AZ EREDMÉNY ÁBRÁZOLÁSA % ======================= clf plot(noise_range,network1*100,'--',noise_range,network2*100); title('felismerési HIBA %-ban kifejezve'); xlabel('zajszint'); ylabel('elsı háló(zajmentes tanítás) - - Második háló (Zajos tanítás) - --'); Feladat I. A III. Labor órán megtervezett előrecsatolt többrétegű háló tanítását végezzük el a következő esetekre a. a súlymódosításnál vegyük figyelembe a büntető tagot µλ w, melynek hatására a tanítás után a súlyzók értéke kicsi lesz (közel nullához). A büntető tag alkalmazásával a súlymódósítás a következőképpen alakul : w [ k + 1] = w [ k] + µ δ x µλ w. A büntetőtagot csak azon súlyzókra alkalmazzuk, melyek abszolút értéke egy küszöb alatt van w < θ, ellenkező esetben a háló nem fog tanulni. b. λ felejtési együttható. A büntető tag alkalmazásának a célja, hogy a tanítás elvégzése után egyszerűsítsük a háló struktúráját, kiejtve a hálóból azokat a neuronokat, melyek kimenete a teljes tanítási ciklusra nulla körüli értéket vesz fel. A feladat, hogy a tanítás elvégzése után határozzuk meg az optimális neuronhálótopológiát. 1 c. A tanítás során alkalmazzunk időben változó tanítási együtthatókat µ [ i] = µ 0 1+ ki ahol µ 0 -a tanítási együttható kezdeti értéke, i-az i-edik tanítási ciklus, k- egy paraméter, melynek segítségével a tanítási együttható változásának meredekségét lehet hangolni µ [ i] -a tanítási együttható értéke az i-edik tanítási ciklusban d. Tervezzünk egy többrétegű előrecsatolt perceptron típusú optimális méretű hálót 1. kiindulva egy kisebb méretű hálóból (kevesebb neuron a rejtett rétegben), és növelve a rejtett rétegben levő neuronok számát 2. kiindulni egy nagyobb méretű hálóból (mely biztosan megoldja a i j 27

Mesterséges Intelligencia Labor II. feladatot) és csökkenteni a rejtett rétegben (rétegekben) levő neuronok számát. (Azokat a neuronokat távolítsuk el, melyek kimenete a teljes tanítási halmazra nullához közeli értéket ad, vagy melyek nem változnak a tanítás ideje alatt.) Hasonlítsunk össze különböző gradiens alapú algoritmusokat, alkalmazva a NeuralNetworkToolbox függvényeit. Az összehasonlítást alkalmazzuk karakterosztályozásos feladatra. (Az osztályozandó számjegyek 0 9, a karakterek mérete 5x7) A fontosabb függvények, melyek segítségével a feladat elkészíthető, a következők:newff, sim és train 28