Intelligens rendszerek laboratórium 1 - 5. Ellenőrző kérdések
- Milyen problémák megoldására valók az SVM-ek (Szupport Vektor Gépek)?
Az SVM-ek a bemeneti adatok vizsgálatával azokban mintákat keresnek. Osztályozásra, és regressziós analízisre (függvény approximáció) használjuk.
- Milyen formában adottak a problémát leíró mintapontok általában?
- Milyen 2 főbb csoportra oszthatók a mintapontok SVM-tanítás esetén?
- Mit értünk függvény approximáció, avagy regresszió alatt (SVM-ek esetén)?
Függvény approximáció a rendelkezésre álló adatok közötti függvénykapcsolat közlítését jelenti.
- Mit értünk osztályozás alatt (SVM-ek esetén)?
- Mi az alapötlete az osztályozásra alkalmas SVM-ek regressziós feladatra való alkalmazásának?
- Mit értünk egy (pl. SVM-es) modell általánosítási hibáján?
A tanítás során nem használt mintapontokra számított hiba. Ha alacsony a modell komplexitása, akkor nagyobb a hiba.
- Minek a minimalizálására törekszik az SVM? [vázlatos képlet]
A tanulási algoritmus törekszik a modell méretének minimalizálására (ritka modellt alkot), ami a hiba rovására történik.
min(Hiba + 1/C * Komplexitás)
- Mik a szupport vektorok?
A szupport vektor gép a megoldás során kiválasztja a tanító vektorok egy részhalmazát, amelyek a modell alapját adják. Ezek a vektorok az úgynevezett szupport vektorok (tartó vektorok).
- Mi az "outlier"?
Az outlier egy olyan megfigyelési pont, ami távol áll a többi megfigyelési ponttól.
- Mik a főbb hasonlóságok és különbségek a neurális hálózatok és az SVM-ek között?
- Mik az RBF (Radial Basis Function) halók?
- Mit jelent az, hogy egy probléma lineárisan szeparálható?
- Mit értünk "kernel trükk" alatt?
- Melyik kernel függvényt használjuk a laborgyakorlat során? [képlet]
- Mely 3 hiperparamétert használjuk a laborgyakorlat során az SVM-ek tanításánál?
- Milyen célból használunk keresztkiértékelést (cross validation) az osztályozós SVM tanítása során?
Kézzel behangolni az osztályozó hibaparamétereit nehézkes. A keresztkiértékelés magában foglal egy ciklust, ami folyamatosan változtatja a hiperparaméterek értékét egy-egy tartományon, majd rendre elvégzi a modellezést (azaz felépíti az SVM-et), ellenőrzi az adott modell eredményét, és megjegyzi hibát. A ciklus lefutatása után a legkisebb hibát eredményező hiperparaméter-kombinációt kell kiválasztani
- Mit jelöl a "C" hiperparaméter?
- Mit jelöl a "sigma" hiperparaméter?
- Mit jelöl az "epsilon" hiperparaméter és mikor van rá szükség?
Azokra a mintákra, melyek az érzéketlenségi sávon belül esnek, a hiba értéke 0, míg a kívül eső pontok hibáját büntetjük. Az epsilon érzéketlenségű veszteség függvény alkalmazásával az osztályozós problémához hasonló optimalizálási feladatra jutunk.
- Mi az epsilon-érzéketlenségi sávval rendelkező abszolútérték függvény képlete, és hol használjuk?
if |f(x)-y| < epsilon:
elteres = 0
else:
elteres = |f(x)-y|-epsilon
- Milyen ágensek szerepelnek a laborgyakorlat regressziós feladatrészében, és hogyan működnek együtt?
TeacherAgent akik a sinc (x) = sin(x) x függvényt paraméterezhetően megadható zajjal tudják mintavételezni.
StudentAgent akik a tanár ágens(ek)től kérdezik le a függvény értékeit és ez alapján (ha elegendő információ összegyűlt), approximálják a függvényt.
- Milyen indítási paramétereket vár a TeacherAgent ágens?
A TeacherAgent indításkor egy paramétert (egy valós számot) vár, ami arányos a sinc(x)-re adott Gauss zaj mértékével (0 a zajmentes eset, míg a 0.3 érték már egy elég zajos mintát eredményez). Itt tulajdonképpen azt lehet megadni, hogy az egyes tanárok mennyire pontosan, illetve pontatlanul ismerik a megtanulandó függvényt.
- Milyen indítási paramétereket vár a StudentAgent ágens?
A StudentAgent egyetlen indítási paramétere a tanuláshoz szükséges minták/mintapontok száma, azaz hogy hányszor, hány helyen fogja a diák lekérdezni a tanárok által ismert függvényt.
- Hogyan választhat a diák ágens több tanár közül?
Kevésbé realisztikus megoldás: a StudentAgent ágens a sinc(x) függvényt 20
pontban ismerheti (pl. [-10,10] tartomány egész pontjain) és ennek fényében választja
ki a legjobb tanárt. Itt a legegyszerűbb, ha az ismert pontokban lekérdezi az egyes
tanítókat (többször is, hiszen a random zajnak csak a szórását állítottuk be), és azt
választja, amelyik a legpontosabb válaszokat adja.
Realisztikusabb megoldás: a StudentAgent ágens ugyanazon pontban többször is
lekérdezi ugyanazon tanítót, és ennek alapján számítja ki a zaj szórását. Ezt minden
tanítóval megismételve kiválasztható a legpontosabban válaszoló, „legmagabiztosabb”
tanító. Megj. : feltételezzük, hogy a tanítók helyesen tudják a megtanulandó függvényt.
- A laborgyakorlat osztályozós részében kétféle osztályozást végzünk. Melyik ez a kettő?
- Milyen ágensek szerepelnek a laborgyakorlat osztályozós feladatrészében, és hogyan működnek együtt?
A WebcamAgent egy vektorizált képet küld az osztályozó ClassifierAgent ágensnek, amely ennek alapján tanul, és osztályozza a kapott mintákat.
- Mik a WebcamAgent és ClassifierAgent ágensek indítási paraméterei?
- Milyen formában adottak a problémát leíró mintapontok (a képek és a hozzájuk tartozó osztály-azonosítók) a laborgyakorlat osztályozós részénél?
- A laborgyakorlat mindkét osztályozós részfeladatában (+/- és boldog/szomorú smiley) 0-tól 3-ig számozottak a mintapontok. Miért?