Az alábbi információk tájékoztató jellegűek. A hatályos követelmények az egyetemi tanrendi keresőben találhatók.
A kurzus célja, hogy gyakorlati szempontokat szem előtt tartva betekintést adjon a gépi tanulásba. Ennek megfelelően a témák tárgyalása során az algoritmusok megértésére és azok hatékony alkalmazására tevődik a hangsúly.
A kurzus teljesítésének feltétele, hogy:
Tehát szigorú értelemben vett vizsga nincs, az érdemjegy az 5 kötelező program teljesítése és megvédése alapján kerül meghatározásra.
Ez a teljesítési rendszer a gyakorlatorientáltságot tartja szem előtt, illetve azt, hogy a hallgatók az egész félév során foglalkozzanak az anyaggal. A feladatok megoldása során minden esetben egy kiadott, részben elkészített gépi tanuló rendszer kulcsfontosságú, apró részeit kell megvalósítani a kapcsolódó előadás anyag és a dokumentáció alapján adott határidőig, 100 próbálkozásból. A megvalósítás során minden esetben néhány sornyi kódot kell csak írni. A célja ennek, hogy a megoldás során a hallgató átlássa a teljes rendszer működését és a megoldásával lássa azt élesben működni. A kiértékelés automatikusan fog történni, aminek részletei később kerülnek meghatározásra.
A kurzus végén azok a hallgatók, akik az automatikus kiértékelés során sikeresen teljesítették mind az öt programot egy beszélgetés során számot adnak arról, hogy:
A kurzus során -- a folyamatos félévközi munkán túl -- nagy hangsúlyt kap a hallgatók egymás közti és az előadóval történő kommunikációja. Lehetőség lesz online megvitatni a kötelező feladatokkal kapcsolatos kérdéseket/problémákat, általánosságban (azaz a konkrét feladat megoldásának megmutatása nélkül) beszélgetni azokról. Ez szintén a gyakorlatorientáltság előtérbe kerülését segíti.
Bevezetés
A kurzus céljának és menetének ismertetése után példák segítségével megfogalmazásra kerül a gépi tanulás feladata illetve osztályozásra kerülnek a gépi tanuló megközelítések (regresszió, osztályozás). Részletesen és sok példa felhasználásával tárgyaljuk a felügyelt (supervised) és felügyelet nélküli (unsupervised) módszerek sajátosságait, illetve kitekintés jelleggel szóba kerülnek a részben felügyelt módszerek (semi-supervised) is. Az előadást WEKA bemutató zárja.
Lineáris algebra ismétlés és Octave programozás
A lineáris algebrai alapok felelevenítése során bemutatásra kerül az a programozási környezet amit a kurzus során használni fogunk. A tárgyalás során kiemelt szerepet kap a hagyományos szoftvertervezés és a gépi tanuló alkalmazások tervezése közötti különbség, amiben szintén nagy szerepet kap az Octave. A kötelező program kiértékeléséért felelős rendszer bemutatása is itt történik. Az előadás második felében bemutatjuk részleteiben, hogy hogyan használhatjuk a WEKA környezetet a végleges implementáció során (WEKA API). (0. kötelező program kiadása [opcionális, célja: ismerkedés az Octave-val és a kiértékelő rendszerrel])
Lineáris regresszió
Egy majd több változós lineáris regresszió részletes tárgyalása azzal a céllal, hogy betekintést kapjunk a gépi tanulási feladatok sajátosságaiba. A tárgyalás során részletesen tárgyaljuk a grádiens módszereket (gradient descent) és azok variánsait is (sztochasztikus (stochastic), kötegelt (mini-batch)). (1. kötelező program kiadása)
Logisztikus regresszió (osztályozás) és regularizáció
Az osztályozás feladatának bevezetése (egy és több osztály esetén) után tárgyaljuk a lineáris regresszió által inspirált, diszrkirminatív tanuló módszert a Logisztikus regressziót. Az eljárás mélyebb vizsgálata során bevezetésre kerül a túltanulás (overfitting) fogalma. Az előadás további részében a túltanulás egyik lehetséges kezelésével a regularizációval és annak elemzésével foglalkozunk. (2. kötelező program kiadása)
Neurális hálózatok
Az előadás tárgya a nemlineáris hipotézistérben történő tanulás bemutatása Mesterséges Neurális Hálózatok (Artificail Neural Network (ANN)) tanításának segítségével. Az előadás fő vonalát a Back Propagation algoritmus adja, az előadás végén néhány implementációs technika, segítség (Gradient Checkig) kerül bemutatásra. (3. kötelező program kiadása)
Support Vector Machines
Az előadás témája, a lineáris tanulók egy ügyes, úgynevezett kernel trükk alkalmazásával történő alkalmassá tétele arra, hogy nemlineáris összefüggéseket tanuljanak. A kernelek és tulajdonságaik bemutatása után a Pegasos SVM tanuló algoritmus tárgyalásával folytatódik az előadás. (4. kötelező program kiadása)
Gépi tanuló rendszerek kiértékelése
Az előadás egyik célja bemutatni, a gépi tanulásban alkalmazott kiértékelési módszereket (10-fold cross validation, devel set) és metrikákat. Tárgyaljuk azt, hogyan értelmezhetőek ezek a metrikák és hogyan használhatók fel arra, hogy javítsuk rendszerünket. Az előadás második felében a kiadott kötelező feladatokkal kapcsolatos kérdések megvitatása kerül terítékre (elsősorban az ANN implementációra vonatkozóan).
Felügyelet nélküli módszerek, klaszterezés
Ezzel az előadással magunk mögött hagyjuk a felügyelt módszereket és rátérünk a felügyelet nélküli módszerekre. Megvizsgáljuk ezek alkalmazási körét és sajátosságait. Az előadás további részében a klaszterezés feladatával és egy konkrét kalszterező algoritmussal a K-Means algoritmussal fogunk foglalkozni. (5. kötelező feladat kiadása)
Felügyelet nélküli dimenzió redukciós módszerek
Megnézzük a felügyelet nélküli módszerek egy másik alkalmazási területét a dimenzió redukciós módszereket. Az előadás során részletesen tárgyaljuk a Főkomponens analízist (Principle Componenent Analysis). Ez a téma opcionális, azaz ha nem jut idő erre az anyagrészre, akkor nem kerül tárgyalásra.
Large scale és elosztott gépi tanulás (Map-reduce, GoLF)
Kitekintés jelleggel az előadássorozat végén megnézzük azt, hogy a tárgyalt módszerek hogyan alkalmazhatók abban az esetben, ha nagyon nagy mennyiségű adat áll a rendelkezésünkre (esetleg annyi, amit egy akár több ezer számítógépből álló klaszterben, vagy a világban elszórtan található készülékeken (számítógép, mobil telefon, fényképezőgép) tudunk csak tárolni) és ezeket nem tudjuk összegyűjteni egyetlen adatbázisba, azaz megváltoztatva a környezetet, elosztott módon kell elvégeznünk a tanulást. Ez az anyag kitekintés jelleggel került bele az anyagba, azaz azt a célt szolgálja, hogy bemutassa merre tart a gépi tanulás, illetve azt, hogy jelenleg mik az izgalmas területek a téma kutatásában.
A kurzus teljesítéséhez szükséges tudásanyag teljes egészében elhangzik az előadásokon. Ezen felül van néhány hasznos forrás, amik segítségével tovább gondolhatók az elhangzottak, vagy akár más megfogalmazásban is elérhetők. Ezek listája olvasható lentebb.
A kurzust az 2011-2012-es tanév első félévében Andrew Ng (http://ai.stanford.edu/~ang/) professzor által tartott Stanfordi Machine Learning kurzus inspirálta. Jelen kurzus anyagának nagy része átfedésben áll az ott elhangzottakkal és a teljesítés feltételei is hasonlóak. Ennek megfelelően http://www.ml-class.org oldalon elérhető, angol nyelvű tananyag tanulmányozása kiemelten hasznos, de nem szükséges a kurzus teljesítéséhez.
Nagyon hasznos és jól érthető, angol nyelvű könyv a 2006-ban megjelent, Christopher M. Bishop professzor által írt Pattern Recognition and Machine Learning című könyv. Ennek olvasgatása is kifejezetten hasznos lehet.