Kooperatív és tanuló rendszerek - zh 2009 04 28

A VIK Wikiből
A lap korábbi változatát látod, amilyen Kiskoza (vitalap | szerkesztései) 2014. május 26., 14:36-kor történt szerkesztése után volt. (Kiskoza átnevezte a(z) KooperativRendszerekZH2009apr28 lapot Kooperatív és tanuló rendszerek - zh 2009 04 28 lapra átirányítás nélkül)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
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


Kooperatív és Tanuló Rendszerek ZH 2009. április 28.

1. Hasonlítsa össze a Perceptron-t és az Adaline-t felépítés, képesség, tanítási algoritmus szempontjából! (10p)

  • A két neuron felépítése lényegében azonos: a bemeneti [math] (x_1, x_2, ..., x_N) [/math] vektort kiegészítjük egy [math] x_0 = 1 [/math] elemmel (ez azért kell, hogy a csupa nulla bemenő vektorra is tudjunk nemnulla kimenetet generálni), majd az így kapott [math] \underline{x} [/math] vektort beszorozzuk a súlyokat tartalmazó [math] \underline{w}^T [/math] vektorral. Az [math] s = \underline{w}^T \underline{x} [/math] értéket pedig küszöbözzük: [math] y = sgn(\underline{w}^T \underline{x}) [/math] (pozitív s-re 1, negatívra -1 lesz a kimenet).
  • A perceptron tanításához a neuron kimenetét (y) vetjük össze a kívánt kimenettel (d). Egy tanítópont hibája: [math] \varepsilon = d - y [/math], a súlyvektor módosítása: [math] \underline{w}' = \underline{w} + \alpha \varepsilon \underline{x} [/math] (alfa a tanítási tényező). Sorra vesszük a tanítópontokat, és addig ismételgetjük a korrekciót, amíg mindegyik tanítópontra megfelelő lesz a kimenet. Csak lineárisan szeparálható pontok osztályozására működik (azaz, ha létezik a pontokat tartalmazó N-dimenziós térben olyan hipersík, aminek egyik oldalán van az összes +1-es kimenetű pont, a másik oldalán a többi). Ez esetben belátható, hogy véges lépésben egy jó súlyvektorhoz konvergál az eljárás.
  • Az adaline tanítása annyiban más, hogy nem y-nal vetjük össze d-t, hanem s-sel, vagyis a küszöbözés előtti súlyozott összeggel. Egy tanítópont hibája: [math] \varepsilon = d - s [/math], az összes pont átlagos négyzetes hibája: [math] \frac{1}{P} \sum_{i=0}^P (d_i - \underline{w}^T \underline{x}_i)^2 = \frac{1}{P}(\underline{d} - \underline{\underline{X}}\underline{w})^T (\underline{d} - \underline{\underline{X}}\underline{w}) [/math], ezt akarjuk minimalizálni. (P a tanítópontok száma, X a vektoraikból mint sorvektorokból képzett mátrix, d a kivánt kimenetekből képzett oszlopvektor). A minimumhelyén a gradiense (a súlyvektor függvényében) 0 kell legyen, innen kifejezve a súlyvektort: [math] \underline{w} = (\underline{\underline{X}}^T \underline{\underline{X}})^{-1} \underline{\underline{X}}^T \underline{d} [/math]. Itt nincs iteráció (bár a gradiens nullhelyének meghatározása nagyméretű mátrixok esetén iteratív módszerekkel célszerűbb), és nem csak lineárisan szeparálható pontoknál működik, viszont semmi garancia nincs arra, hogy jól fog minden pontot osztályozni, mert csak a lineáris rész négyzetes hibáját minimalizáltuk, nem a rosszul osztályzott pontok számát.

2. Származtassa a CMAC hálózat súlyvektorának analitikus megoldását. Mutassa meg, hogy a megoldás megfeleltethető a Wiener-Hopf egyenlet megoldásának. Adja meg a két összefüggés kapcsolatát! (20p)

  • A CMAC súlyainak meghatározásához a következő egyenletet kell megoldani: [math] \underline{\underline{A}}\underline{w}=\underline{d} [/math], ahol w a súlyok oszlopvektora, d a tanítópontokban kívánt kimenetekből álló oszlopvektor. Az A mátrix azt írja le, melyik tanítópont melyik neuronokat aktiválja (vagyis melyik tartományokba esik bele). Az i. sor j. eleme adja meg, hogy az i. tanítópont a j. neuront aktiválja-e, a baloldalon álló szorzat a tanítópontok tényleges aktivációinak oszlopvektora.
  • Az egyenletet általános esetben nem oldható meg egzaktul, viszont megkereshető az a súlyvektor, amire a legkisebb lesz a négyzetes hiba: [math] {|| \underline{\underline{A}}\underline{w}-\underline{d} ||}^2 = (\underline{\underline{A}}\underline{w}-\underline{d})^T (\underline{\underline{A}}\underline{w}-\underline{d}) [/math]. A minimum megkereséséhez tekintsük a kifejezést w elemei függvényének, és keressük meg azt a helyet, ahol a gradiens 0. Belátható, hogy a gradiens [math] 2\underline{\underline{A}}^T\underline{\underline{A}}\underline{w} - 2\underline{\underline{A}}^T\underline{d} [/math], a nullhelyben pedig [math] \underline{w} = (\underline{\underline{A}}^T\underline{\underline{A}})^{-1} \underline{\underline{A}}^T \underline{d} [/math].

3. Mit nevezünk túltanulásnak, milyen következménye van, és hogyan lehet védekezni ellene? (Minden ismert lehetséges ellenszert mutasson be) (10p)

  • Egy rendszer tanítása során a tanítópontok hibája általában csökkenő jellegű. A hálózat hibája a tanításhoz fel nem használt pontokban szintén csökken (a hálózat az egész függvényt egyre jobban megtanulja). Egy bizonyos pont után viszont, a tanítópontok hibája még mindig csökken, de a többi ponté nőni kezd, mivel a háló a tanítópontok olyan apró részleteit kezdi tanulni, amik az egész függvényre nem igazak, és romlik az általánosítóképesség.
  • Egyik ellenszer a korai megállás: amikor észrevesszük, hogy az ellenőrzéshez használt nem tanító pontkban nőni kezd a hiba, abbahagyjuk a tanítást (hiába lehetne a tanítópontok hibáját még csökkenteni).
  • További módszerek: keresztvalidáció, regularizáció (TODO).
  • Wikipédia: túltanulás
  • Wikipédia: korai leállás

4. Mikor és miért van szükség CMAC hálózatoknál tömörítő leképzésre. Milyen problémákat okozhat ennek használata, és hogyan lehet a problémákat mérsékelni/elkerülni? (10p)

könyv 5. fejezet 132-135. oldal, össze kéne foglalni

5. Mit nevezünk lokális és mit globális tanulásnak? Van-e előnye egyiknek a másikkal szemben? Az ismert hálók közül melyek a globális és melyek a lokális tanulási hálók és miért? (10p)

  • A jó megoldásban arról van szó, hogy lokális hatása van egy tanulópont tanításának, vagy globális. A neurális hálónál globális, a CMAC-nél globális, az RBF meg a függvénytől, és annak a tulajdonságától függ, vagyis az lehet globális, és lokális. -- Tsiga - 2012.05.03.

Ponthatárok:

  • 1: 0-23
  • 2: 24-31
  • 3: 32-39
  • 4: 40-47
  • 5: 48-60

-- Sanyi - 2009.04.28.