KoopKerdesekZHOssz03

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


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

  • Alapvetően RBF kapcsán esett róla szó.
  • "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."
  • A Gauss függvénynek két paramétere van: a középpontja és a szórása. Ez utóbbi lehet skalár, vagy többdimenziós esetben vektor is
  • A középpontok meghatározására használható az ortogonális least squares (OLS) és a K-means módszer. Előbbi kiindul egy egy pontot tartalmazó RBF-ből, majd azt iteratívan bővíti, ha nem elég jó a tanulóképessége (a hozzáveendő középpontokat az ismert tanítópontok közül választja). A K-means csoportokba próbálja osztani a tanítópontokat, és a csoportokhoz egy-egy középpontot illetve bázisfüggvényt rendel
  • R heurisztikus szórás választás: általában elég tág határok közt változtatható a tanulási képesség rontása nélkül.. Jól használható az adott középpontú bázisfüggvény szórásának, ha vesszük a középponthoz legközelebbi R (R=2-3) másik középpontot, és ezek távolságainak átlagát számoljuk. Ha mindegyik függvényhez azonos szórást akarunk használni, erre is használható a fenti kifejezés (véletlenszerűen kijelölve egy középpontot).
  • Végül mind a középpontok, mind a szórások meghatározására alkalmazhatóak az ellenőrzött tanítási módszerek, pl. gradiens alapú keresés, viszont fontos megjegyezni, hogy például a szórás hibafelülete nem kvadratikus, így érvényes minden rá, ami az MLP nem kvadratikus hibafelületére.

Annyit tennék még itt hozzá, hogy az OLS azon kívül, hogy iteratívan választ újabb középpontokat, közbeiktat egy ortogonalizáló lépést is. Ez ahhoz kell, hogy a kiválasztott középpontok minél inkább korrelálatlanok legyenek, vagyis minél inkább függetlenül szóljanak bele egymástól a kimenetbe (ugye az ortogonalitás annyit tesz, hogy a skaláris szorzatuk 0, vagyis korrelálatlanok).

Mit nevezünk túltanulásnak, milyen következménye van, és hogyan lehet védekezni ellene? (minden ismert ellenszert mutasson be)

  • 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ó pontokban nőni kezd a hiba, abbahagyjuk a tanítást (hiába lehetne a tanítópontok hibáját még csökkenteni).
  • Regularizáció: A lényege, hogy egyfajta simaságot megkövetelünk, egyfajta az általánosításhoz tartó zajt adunk a tanításhoz, így nem annyira tud nagyon rátanulni a tanítópontokra.
  • Új neuron felvétele: Ha időközben hozzáadunk egy új neuront vagy elveszünk, akkor megváltoztatja a háló egész kimenetét, és a túltanulástól egy ideig a tanulások folyamán az általánosítás felé halad, majd persze megint eljut a túltanulásig. Plusz érdeme, hogy segítségével tudunk lökni a lokális minimumoknál, és a "sekélyebb" területeknél.
  • keresztvalidáció: Lásd lentebb!

Mi a keresztkiértékelés és mikor használjuk? Milyen változatait ismeri?

Keresztvalidáció vagy más néven keresztkiértékelés: A keresztvalidáció alapvetően azt használja fel, hogy a mintaponthalmazunkat 3 részre osztjuk. A tanítópontok, a kiértékelő pontok, és a tesztelő pontok. A tanítópontok egyértelmű, hogy mit jelent, a kiértékelő pontokkal értékeljük tanítás közben a hálót, vagyis közvetetten befolyásolja a tanítást. A tesztelő pontokat csak a tanítás végén használjuk a tanított háló értékelésére, ezért ezek még közvetetten sem befolyásolják a tanítást. Ez mind szép és jó, de a keresztvalidáció akkor jön szóba, hogyha kevés tanítópontunk van, és nincs erőforrásunk 3 részre osztani, ekkor hogy idézzek: "Ennek során a rendelkezésre álló mintapontokat véletlenszerűen osztjuk k diszjunkt részhalmazra, majd k-1 részhalmazt tanításra, a maradék részhalmazt meg kiértékelésre használjuk. Az eljárást megismételjük az összes részhalmazra úgy, hogy a tanító pontok közül mindig más-más részhalmazt hagyunk ki"..." A hálózat eredő minősítését az egyes kiértékelések átlagaként nyerjük". Hátránya, hogy sokat kell számolni, előnye, hogy kevés tanítópontnál is jó eredményt ad. Változatai?

  • A kereszt kiértékelést a neurális hálók tanításánál alkalmazhatjuk. Ilyenkor egy algoritmus alapján felosztjuk a rendelkezése álló mintapontjainkat K db halmazra. Majd ebből a K halmazból K-1 halmaz pontjait tanítópontként felhasználjuk és a maradék 1 db halmaz pontjait pedig tesztpontként alkalmazzuk. Az eljárást addig kell ismételni, amíg minden halmaz nem szerepelt teszthalmazként. Az eljárást így K sokszor kell megismételni. De előnyös, mert így K db tanítást történik, és mindig olyan teszthalmazon végezzük el a tesztelést, majd az adott tanítási ciklusban nem vett részt csak a feltehetően a korábbiban. Így hatékonyabban mérhető a háló általánosító képessége.
  • A keresztvalidáció a kereszt kiértékelés speciális esete. Ebben az esetben egyetlenegy tanítási folyamat történik. A tanítás eredményét az elkülönített tesztpontokon teszteljük. Ennél az eljárásnál is először természetesen fel kell osztanunk a rendelkezésre álló mintapontokat tanító és teszt mintákra. A keresztvalidáció bármilyen típusú tanítási eljárásnál használható. Ha többször szeretnénk tanítani a hálót, akkor mindig más mintapontokat kell kijelölni tesztpontoknak.


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?

  • Regularizáció: Általánosító képességet jelent. A lényege, hogy egyfajta simaságot megkövetelünk, egyfajta az általánosításhoz tartó zajt adunk a tanításhoz, így nem annyira tud nagyon rátanulni a tanítópontokra. Fontossága kevés ismert vagy tanítópont esetén kiemelkedő, hiszen a kevés mintaponttal való tanítás után sem jelenik meg a túltanulás. Az SVM hálók az osztályozás során olyan hipersíkot keresnek, mely minden tanítóponttól egy megadott margin (margó, biztonsági sáv)-ra van, így egyfajta biztosított általánosítást végez, ami amennyiben az eddigi tanítópontok jól leírták a problémát a többi tanítópont is nagyobb valószínűséggel lesz a hipersík megfelelő oldalán, hiszen olyan síkot keres, ami minden pontra igaz ( vagy éppen nem igaz, lásd szoft margó).

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?

  • A tömörítő leképezés azt jelenti, hogy a kiinduló (virtuális) címtartományt egy kisebb (fizikai) címtartományra képezzük le. Lényegében a hatékony tömörítő eljárások veszteséges lejárások, szükségük a véges memória miatt van. A problémát a veszteség jelenti, amely megfelelő hash, vagy tömörítő eljárást alkalmazva nem lehet probléma, így olyan hash függvényt kell találni ami egyenletesen képez le a fizikai címtartományba.
  • Másképpen kicsit hivatalosabban, az alapvető asszociációs vektorunkat letömörítjük egy tömörített asszociációs vektorra, az alapján hogy a bemeneti tér viszonylag kevés bementi pontjáról érkezik tényleges bemenet. Ez alapján a tömörített vektor alapkán választjuk ki a súlyokat, nem pedig a az eredeti vektor alapján. A tömörítő eljárás egyfajta hashelést jelent, és a probléma akkor van, hogyha ütközés lép fel, vagyis két egymástól távol lévő tanítópont pont részben azonos súlyokat választanak ki. Ha az ütközés valószínűsége kicsi, akkor a hatása elhanyagolható, valamint a tanító lépések számának növelésével az ütközésből adódó interferencia csökkenthető.

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?

  • Globális tanulás: Minden tanítóponton a tanulás kihat a teljes tartományra, vagyis ha tanítunk egy pontot egy MLP-nek, akkor az megfogja változtatni az értékét egy nagyon távoli bemenetnek is a kimenetét. Ilyenek az MLP, és az RBF, de csak olyan függvény esetén melynek a kimenete a teljes bemeneten érvényes, vagyis egy közepes szórású Gauss függvény már nem fejti ki mindenhol a hatását.
  • Lokális tanulás: Leginkább a globális tanulás ellentettje, vagyis egy tanítópont csak véges területen fejti ki a hatását, így képesek vagyunk lokális tanulásra. Jó példa erre a XOR RBF-el való tanítása. Ilyenek a CMAC, az SVM, és az RBF is bizonyos paraméterek mellett.

Itt megjegyeznék, hogy Horváth Gábor meglepetten mondta, hogy sokan írták azt, ami a docx-ben van, és az teljesen hülyeség, amit fentebb leírtam az 6/6 pontot ért. -- Tsiga - 2012.05.16.

--asztalosdani 2013. június 6., 09:35 (UTC)