KoopKerdesekZHOssz02
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
Egy NFIR(FIR-MPL) hálózat felépítése az abrán látható. A vastag szaggatott vonallal jelölt részek a FIR szűrők, ahol 2 késleltető elem és 3 súly van. Adja meg a háló időben kiterített változatát (virtuális háló) és pontokba szedve adja meg a tanítás lépéseit!
Ehhez nincs ábra, de itt marad, hogy volt ilyen is.
Mit jelent az időbeli kiterítés olyan NFIR háló tanításánál, ahol egy MLP súlyai helyén FIR szűrőket alkalmazunk?
FIR szűrő: Lényege, hogy a tárolja a szűrő az elmúlt pár bemenetet, és ezek összege a kimenete, olyan mint egy shiftreigiszter ami a kimenetén az összes tárolt érték összegét adja.
Akkor a könyvből egy hosszú idézet:" E megközelítés szerint végezve a vizsgálatot valójában időben kiterítjük a hálózatot és így egy nagyobb, de statikus hálót kapunk, ami már a hagyományos hibavisszaterjesztéses algoritmussal tanítható. A kiterítés következtében kapott virtuális háló azonban igen nagyméretű is lehet a FIR szűrőkben található késleltető láncok méretétől függően, továbbá a virtuális háló struktúrája el fog térni a szokásos többrétegű perceptron felépítésétől: az egyes rétegek processzáló elemei nincsenek a következő réteg összes processzáló elemével összekötve. További eltérés, hogy a virtuális háló az időbeli kiterítés következtében jóval több súlyt tartalmaz, mint a fizikailag létező valóságos; egy valóságos súlynak a virtuális hálóban több megfelelője van, melyek a háló működésének különböző időpillanataihoz tartoznak és a kiterített hálóban más-más rétegben szerepelnek. A hagyományos hibavisszaterjesztéses algoritmus alkalmazásánál az azonos fizikai súly különböző virtuális megfelelőihöz eltérő súlymódosító összefüggéseket kapunk, mivel a hibavisszaterjesztés útja a különböző virtuális megfelelőkig eltérő. Ennek ellenére csak egy fizikai súly létezik, tehát ezt különbözőképpen nem módosíthatjuk. A megoldás csak az lehet, hogy a különböző módon visszaterjesztett "hiba" figyelembevételével nyert súlymódosítások eredőjével kell módosítanunk a fizikai súly értékét, ami azt jelenti, hogy a megfelelő virtuális súlyok azonos mértékben és egyszerre módosulnak."
Mi a kernel trükk és mi a jelentősége?
- Mit nevezünk kernel trükknek és mi a jelentősége? Alkalmazható-e a kernel trükk az ismert előrecsatolt hálók (lineáris súlyozott összeg, MLP, RBF, CMAC) esetében? Amennyiben lehet kernel trükköt alkalmazni, meg tudja-e adni a kernel függvényt az egyes esetekben? Adja meg a kernel függvény meghatározásnának általános módját minden olyan esetben, ahol a háló leképzése kerneles formában is megadható, és ahol lehet, adja meg a kernel függvényt explicit formában is!*
Alapból a kimenetet a következő összefüggéssel állítjuk elő:
A kernel trükk segítségével azonban ezt a függvényt átalakítjuk a következő formába:
Amint az a második összefüggésből is látszik a kerneles reprezentáció a tanítópontoknak megfelelő számú (P) kernel függvény-érték súlyozott összegeként áll elő, függetlenül attól, hogy az implicit módon definiált jellemzőtér dimenziója (M) mekkora. A kernel függvény megválasztásától függően a jellemzőtér dimenziója nagyon nagy, akár végtelen is lehet, ami az első szummás kifejezés szerinti kimenet előállítást nagyon megnehezítené, sőt akár lehetetlenné is tenné, miközben a kernel reprezentáció komplexitása a tanítópontok száma által mindenképpen korlátozott. Minthogy a kernel térbeli megoldás ekvivalens a jellemzőtérbeli megoldással, a kernel módszerekkel azt tudjuk elérni, hogy a megoldás komplexitását akkor is korlátozni tudjuk, ha egyébként a megfelelő jellemzőtérbeli megoldás extrém módon komplex lenne. A kernel függvények bevezetésének ezt a hatását kernel trükknek (kernel trick) nevezzük.
Egy idősor-előrejelzési feladatot szeretne megoldani NFIR vagy NARX hálózattal. Írja le a háló konstrukciójának lépéseit és azt is, hogy az egyes lépéseknél szükséges feladatok hogyan oldhatók meg. Mi a különbség a kétféle architektúra között?
Az NFIR konstrukciónál egy FIR-MLP-t készítenék, amely lényegében egy tetszőleges számú rejtett réteggel, és azokban tetszőleges számú perceptronnal működő hálózat, azonban a súlyokat (kivéve az eltolás súlyokat) egy FIR szűrőre cserélem, ezzel kész is a háló. A tanítás során a súlymódosításnál használhatom az idő szerinti kiterítést, azonban ez sok számítást vesz igénybe, így inkább a hatékonyabb temporális hiba visszaterjesztési eljárást alkalmazom, ahol az eredő gradienst az eredő hiba kimeneti parciálisa szerint kapok meg. NARX hálózat esetében olyan hálózatot csinálok, melynek a bemeneti oldalán készítek bemeneteket, amikre az előző időpont bemeneteit, valamint az előző bemenethez tartozó kívánt kimenetet is beadom. A tanítás normális módon hálótól függően visszaterjesztéses módszerrel (ezek nem előrecsatolt hálózatok, a FIR hálókkal ellentétben, amik viszont igen). Ez a rész itt már lehet, hogy bődületes nagy hülyeség. Szóval a tesztelést NOE hálózattal végezném, hiszen ez a bemenetén felhasználja a régebbi kimenetek is a régi bemenetek mellett.
Lehet-e lokális minimum egy lineáris kimeneti réteggel rendelkező egy rejtett rétegű MLP és egy RBF (vagy CMAC) esetén, ha a súlyokat tanítjuk és egy négyzetes hibafüggvényt alkalmazunk? Válaszát indokolja!
Az MLP paraméterekben nemlineáris leképezése miatt a hibafelület nem kvadratikus. Ez még akkor is igaz, ha az MLP-nél is lineáris kimeneti réteget alkalmazunk. A felületen létezhetnek lokális minimumok, sőt a globális minimum sem egyértelmű: a súlyok megfelelő permutációjával különböző, de egyenértékű megoldásokhoz juthatunk. A lokálisak, mint láttuk a háló tanításánál (a gradiens alapú tanuló eljárásoknál) okozhatnak komoly nehézséget. A bázisfüggvényes hálók, amennyiben csak a kimeneti lineáris réteget tanítjuk, négyzetes hibafelülettel rendelkeznek, ami biztosítja, hogy nincsenek lokális minimumok .
Mi a Hebb tanulási szabály és milyen hálók tanításánál van szerepe? Milyen módon származtatható az Oja szabály a Hebb szabályból?
Adja meg a Hebb tanulási szabályt és a Hebb tanulás szerepét a Kohonen háló tanításánál!
A Hebb tanulást a mesterséges neurális hálók tanításánál alkalmazzák. Ez a tanítás eljárás a biológiai tanulás folyamatát utánozza. A neurális hálók elemei közötti kapcsolat erőssége az elemeket aktivitásának szorzatával arányos. A kapcsolat erőssége alatt az elemek közötti súlytényezőt kell érteni. A Hebb-szabály:
Ahol a "k" jelenti az egyik időpillanatot, "k+1" pedig a következőt. A w[ij] jelenti az i. és a j. processzáló elem közötti súlytényezőt. A jelenti a bátorsági faktort, az y[i] és az y[j], pedig az i. és a j. processzáló elem kimenetének értéke. A képlet lehet ez is: , ahol az x[i] az i. bemenetet jelenti.
Oja szabály Hebb-ből: http://mialmanach.mit.bme.hu/neuralis/ch10s04 10.4.2. rész
Milyen két fő elv alkalmazásával származtatható a GHA (Sanger-algoritmus)-t felhasználó PCA háló? Írja le a GHA algoritmus fő lépéseit! (Ha az összefüggéseket is meg tudja adni, írja le azokat is, ha nem, akkor a gondolatmenetet írja le!)
__TODO__
Egy olyan MLP hálót szeretne tanítani, melyben minden neuronnál a szokásos szigmoid függvény helyett annak -1-szeresét alkalmazza. Alkalmazható-e ez a háló a szokásos feladatok megoldására? Ha igen, hogyan alakul a tanítása, ha nem, indokolja meg, hogy miért nem!
A háló ekvivalens egy közönséges, szigmoidot használó MLP-vel, amiben (a bemenetieket leszámítva) minden súlyt -1-szereségre változtattunk (így a rétegek közt ugyanúgy egyszer invertálódnak az értékek), és a kimenetet is -1-szeresére változtatjuk. Tehát az új háló tanítására egy triviális módszer, hogy a vele ekvivalens normál MLP-t betanítjuk (azonos bemenetekkel, de a kívánt kimenetek helyett a -1-szeresüket használva a tanításhoz), majd a végén visszamásoljuk a kapott súlyokat (a -1-szeresüket) az új hálóba.
Mi a szerepe a tanulási tényezőnek (bátorságfaktor) az iteratív tanulási eljárásoknál, és hogyan kell megválasztani a Perceptronnál illetve az Adaline-nál?
- Tanulás közben általában azt tudjuk megállapítani a rendszerről, hogy egy adott bemenetre a kimenet mennyire és milyen irányba tér el a megkívánttól. A hiba és a hálózatot leíró függvény alapján tudjuk, milyen irányba érdemes változtatni a paramétereket, de azt általában nem, hogy mennyire. Azt, hogy milyen "bátran" lépjünk a megfelelő irányba, a bátorsági tényező szabja meg. Erősen befolyásolja a "jó" rendszerhez való konvergencia sebességét, illetve azt, hogy egyáltalán konvergálunk-e.
- Perceptronnál a tanulás konvergens a bátorsági tényező értékétől függetlenül, de nagyobbnak kell lennie nullánál, és az értéke befolyásolja a konvergencia sebességét. Adaline esetében túl nagy érték okozhat divergenciát; a konvergencia biztosításához az mátrix legnagyobb sajátértékének reciprokánál kisebbre kell választani, valamint nullánál nagyobbra. Ez egyenletben kifejezve a jól ismert az R legnagyobb sajátértéke, ahol az R a bemenet autokorrelációs mátrixa, ami egyenlő a fentebb írt mátrixxal. Léteznek módszerek a tényező tanulás közbeni adaptív változtatására is, amik alapvetően gyorsítják a konvergenciát, azonban ugyanezek a feltételek érvényesek rá.
-- Tsiga - 2012.05.16.
--asztalosdani 2013. június 6., 08:45 (UTC)