TanHibZh20060404

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

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


Tartalomjegyzék

1. Származtassa az LMS algoritmust és adja meg a konvergencia feltételeit! Mi a sajátérték fizikai jelentése? (4 pont)

A kiindulási alap az adaline analitikus tanítása, ahol az epszilonnégyzet várható értékét kiszámolva adódik a hibafelület kvadratikus képlete, és azt a súlyvektor szerint deriválva megkapjuk az ideális súlyvektor R-inverzszer P képletét. Ugyanennek létezik iteratív változata is, amiben csak az inverzszámítást ússzuk meg, w' = w + mu*(-grad(k))

LMS: Widrow ötlete, hogy tanítsunk továbbra is iteratív gradienssel, de ne a várható hiba alapján számoljuk a gradienst, hanem a pillanatnyi hiba alapján. Hogy megkapjuk a pillanatnyi gradienst, most a pillanatnyi epszilonnégyzetet kell deriválni a súlyvektor szerint: grad(k) = 2*epszilon(k)*(-x(k)) ==> w' = w + 2*mu*epszilon*x(k)

Konvergencia: 0 < mu <= 1/lambda_max, lambda_max szemléletes jelentése: a hibafelület konjugált-gradiens irányai közül a legmeredekebb meredekségéről szól valamit (talán).

2. Mi a momentum eljárás és milyen esetben alkalmazható sikerrel? (3 pont)

Lokális minimum (kiküszöbölésére?)
Az új súlyt nem csak a gradiensből származtatjuk, hanem az egy lépéssel előző súlyból is.
Tehát delta wi = mű (-gradiens kalap) helyett delta wi = mű (-gradiens kalap) + éta* delta wi-1
Ha valaki ért hozzá átírhatná képlet formába, nekem most így nagy hirtelen nem megy.

3. Van egy MLP hálózatunk

Ezen a helyen volt linkelve a feladat3.jpg nevű kép a régi wiki ezen oldaláról. (Kérlek hozd át ezt a képet ide, különben idővel el fog tűnni a régi wikivel együtt)


A nagy (vastag szaggatott) nyíllal bejelölt súly módosító összefüggéseit határozza meg, ha backprop eljárást alkalmaz. (5 pont)

Hát most ebbe nem vagyok teljesen biztos, hogy jó, mert ugye órán nem ilyen mindenen-átívelő-nyilra néztük a hibát, hanem csak egy normális élre. Szóval mondjuk úgy értelmezem, hogy meg kell mondani külön w^(1)_3N-re és w^(2)_23-ra. (Két alsó él.) Ez esetben:
w^(2)_23(k+1) = w^(2)_23(k) + 2 * mű * epszilon2(k) * sgm'(s^2_2(k)) * x^(3)_2(k)
w^(1)_3N(k+1)-t pedig már megint nem értem...

Ron: Hát, vagy talán fel lehetne úgyis fogni, mint egy súly, ami csak úgy ott van. Azért persze trükkös, mert a kimeneti neuronok után nincs szigmoid doboz, de ez valszeg annyit változtat, hogy nem kell visszavetíteni a hibát a doboz előttre (mert nincs doboz): w' = w + 2*mu*epszilon*x (a nyílnak megfelelő epszilon és x)

4. Egy bázisfüggvényes háló (pl. RBF, CMAC, stb.) konvergencia sebessége általános tanítópont elrendezés mellett mikor lesz maximális? Mekkora tanulási aránytényező (mű) szükséges a maximális tanulási sebességhez? Megadható-e egy CMAC esetében az optimális tanulási aránytényező? Ha nem, miért nem? Ha igen, hogyan kell meghatározni?

(tipp) Ha egy-egy bázisfüggvény minél kevesebb tanítópontot fed le (mivel ha egy BF sok tanítópontot fed, akkor az e pontokra tanítás "rángatja" a megfelelő súlyokat), akkor nagyobb a konvergenciasebesség. Ha minden BF pont egy tanítópontot fedne csak, akkor mu=1 használatával egy lépésben tudna tanulni. (különben talán mu=1/(legfeljebb ahány tanítópontot fed le egy bázisfüggvény), de ez csak megérzés) CMAC esetében: ?

Miben változik a helyzet, ha a tanítópontok egyenletes távolságra helyezkednek el egymástól? Ez esetben hogyan választaná meg a CMAC háló C paraméterét és mekkora lenne az optimális mű? Függ-e ez attól, hogy hány dimenziós a probléma (a bemenetek dimenziója)? (12 pont)

Ha a tanítópontok egyenletes távolságban vannak, akkor akkor maximális a konvergenciasebesség, ha t = c, azaz a tanítópontok távolsága megegyezik az aktív bitek számával. Ebben az esetben mű = 1/c az optimális választás.

5. Az EXOR (kizáró vagy) kapcsolatot akarja megoldani RBF hálóval. Adjon olyan megoldást, hogy a rejtett rétegben két Gauss neuron van. Válasszon középpontokat, és mutassa meg, hogy egy ilyen hálózatta a feladatot meg lehet oldani. Válasszon olyan szigma értéket is, amely alkalmasnak tűnik a feladat számára. (8 pont)

Válasszunk két azonos osztályú pontot középpontoknak. Órán érzésre szigma=1 volt, valszeg amíg nem túl nagy, mindegy micsoda (bár lehet hogy akkor is mindegy :)).

Szerintem órán szigma 1/gyök(2) volt. Mert az egész nevező adódott egyre, az meg 2*szigma^2.

6. Mi az alapgondolata az Ortogonal Least Square (OLS) eljárásnak? Milyen hálócsaládnál alkalmazható és mire szolgál? (4 pont)

RBF hálóknál jelenik meg. Segitségével a Bázisfüggvények középpontjait tudjuk megválasztani. "Az ortogonális legkisebb négyzetes hibájú (OLS) eljárás iteratív módon választ középpontokat úgy, hogy közben figyelembe veszi a háló képességét is. Ez azt jelenti, hogy a háló méretét lépésről lépésre növeljük, újabb és újabb bázisfüggvények bekapcsolásával egészen addig, amíg megfelelő teljesítőképességet el nem érünk."

7. Mi a regularizáció és milyen esetekben van szerepe? Osztályozási feladatra alkalmazott SVM hálóknál milyen formában jelenik meg a regularizáció és mit eredményez? (5 pont)

Regularizáció: rosszul definiált feladatok megoldásában segít, valamilyen járulékos kényszer hozzáadásával.
c(*w*) + lambda * omega = Cr(*w*)
Lambda állításával súlyozható, hogy omega milyen szerepet kapjon az optimumfüggvényben.

8. Mi az a kernel trükk, és mi a jelentősége? (4 pont)

A kernel trükk az, amikor a problémát a bemeneti tér helyett rögtön a kernel térben oldjuk meg, anélkül, hogy a jellemző tér bármikor is szóbajönne. Ennek az az értelme, hogy így elkerüljük, hogy esetlegesen egy végtelen dimenziós térben kelljen számolnunk. (Jellemző tér lenne ilyen.)

9. Oszályozási feladatra akarunk LS Szupport Vektor Gépet használni. Fogalmazza meg a kritériumfüggvényt és a Lagrange egyenletet. Milyen alapgondolatot használ az eljárás, hogy a Lagrange egyenletből a másodlagos egyenlethez eljussunk? Mi lesz a másodlagos egyenlet? (10 pont)

Kritériumfüggvény, hogy a súlyvektor minél rövidebb legyen (1/2w^T*w). A Lagrange-egyenletben ehhez még hozzávesszük az osztályozás helyességéről szóló (w^T*x_i+b)*d_i >= 1 felétételt:
J = 1/2w^T*w - sum_i[alfa_i*((w^T*x_i+b)*d_i - 1)]

A másodlagos egyenlethez jutás: J-t kell w,b szerint minimalizálni, alfa szerint maximalizálni, ezért vesszük a w szerinti deriváltat, dJ/dw = w - sum_i(alfa_i*x_i*d_i), ez a szélsőértékkeresés miatt legyen egyenlő nullával, ha alfákat tudnánk, tudnánk w-t is. A w-re így kapott gyönyörűséget visszahelyettesíthetjük J-be (valamint hasonló deriválást csinálunk b szerint is, ahonnan adódik, hogy sum_i(alfa_i*d_i) = 0, ami miatt J-ből kinulládoik a b-s tag), és kapjuk a másodlagos egyenletet, hogy:
Q = 1/2*sum_ij(alfa_i*alfa_j*x_i^T*x_j*d_i*d_j) - sum_ij(alfa_i*alfa_j*x_i^T*x_j*d_i*d_j) + sum_ij(alfa_i) =
= -1/2*sum_ij(alfa_i*alfa_j*x_i^T*x_j*d_i*d_j) + sum_ij(alfa_i), ez aztán QP-vel megoldható, mert csak alfáktól függ (alfa_i>=0, sum_i(alfa_i*d_i)=0)

10. Van 10000 50 dimenziós adata, illetve 100 10000 dimenziós adata, melyekkel tanuló hálót akar konstruálni. Két lehetőség közül választhat: MLP-t vagy SVM-et alkalmaz. Az adott esetekben milyen szempontokat venne figyelembe, és mit választana? Részletesen indokolja meg a választást. (5 pont)

(Szerintem) Első esetben MLP ki van zárva, mivel minnél nagyobb a P az N-nél, annál valószínütlenebb, hogy meg lehet oldani, így dimenziónövelés nélkül nem lehetne megúszni a dolgot. SVM-nél viszont ez nem okoz gondot, mivel a Kernel trükkel meg lehet oldani. A második esetben épp ezért az MLP is használható, mivel P << N.

Ron: Nono fiam, talán kőből nem lehet hidat építeni? :) Szóval az MLP-nek nem baj ha nagy a P/N arány, mert az MLP dimenziónövelést valósít meg a rengeteg nemlineáris kimenetű neuronjával (épp ezért várjuk, hogy jobb lesz a képessége mint a sima egy darab perceptronnak).

Az első esetre MLP-t használnék, mert sok a tanító pont a dimenziókhoz képset is (bár nem tudom 50 dimenzióhoz mi számít soknak igazán), jól meg lehet tanítani a hálót meg minősíteni is. A másodikra MLP-t nem alkalmaznék, mert nagyon kevés a pont a dimenziószámhoz képest, és szinte biztos a túl/sehogysem tanulás.

A másodikra használnék SVM-et, mivel a kevés pont, sok dimenzió miatt elég valószínű, hogy meg tudja találni a nemlineáris elválasztó-egyenest, amivel az operál (állítólag). Hogy az elsőre használnék-e SVM-et.. talán a sok tanítópont miatt a kernelmátrix (ami kell a QP-hoz) nagyon nagy lenne, akkor már inkább az MLP.

-- Đani - 2007.03.26. -- susu - 2007.03.26. -- Ron - 2007.03.27. -- Đani - 2007.03.27.