Intelligens rendszerek laboratórium 1 - 5. Ellenőrző kérdések

A VIK Wikiből
A lap korábbi változatát látod, amilyen Szabó Bence (vitalap | szerkesztései) 2015. március 22., 23:26-kor történt szerkesztése után volt.


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?