1. gyakorlat Mesterséges Intelligencia. Elérhetőségek web: www.inf.u-szeged.hu/~gulyasg mail: gulyasg@inf.u-szeged.hu Követelmények (nem teljes) gyakorlat látogatása kötelező ZH írása a gyakorlaton elhangzott algoritmusokból kötelező program írása (valamely metaheurisztika alkalmazása egy adatbázison)
Gépi tanulás alapfogalmai (a leírás Tóth László - Gépi Tanulási Módszerek jegyzete alapján készült) A gépi tanulás célja A gépi tanulás célja olyan programok készítése, amelyek a működés során szerzett tapasztalatok alapján képesek javítani saját hatékonyságukon. Tanuló-algoritmusok Olyan algoritmusok, melyek képes összefüggések, szabályosságok megtanulására (hipotetizálására) egy példa-halmaz alapján. Induktív tanulás A tanítás során nem látott esetekre is szeretnénk általánosítani a megtanult összefüggéseket. Feltevés: A példák hűen reprezentálják a tanulandó összefüggést. Felügyelet nélküli tanulás Felügyelet nélküli tanulásnak nevezzük, ha a példákhoz nincs külső segítség. leggyakoribb feladat: klaszterezés: adatok automatikusan kialakított osztályokba sorolása valamilyen hasonlóság alapján. Felügyelt tanulás Felügyelt tanulásnak nevezzük, ha a tanítópéldákhoz a helyes válaszok is adottak leggyakoribb: f(x 1,...,x N ) függvény tanulása {(y 1,...,y N );f(y 1,...,y N )} (i), (i=1,...,m) alakú példák alapján általában élesen szétválik a tanulási és tesztelési (felhasználási) fázis pl.: emberek orvosi tesztjei, valamint diagnosztizált betegésük; a cél olyan modell alkotása (tanulás), amely alapján az adott betegséget hatékonyabban lehet felismerni pl.: molekulák adatbázisa (gráfokkal leírva), és bizonyos számú molekula esetén ki van mérve, hogy hogyan reagál az AIDS vírusra; kérdés, hogy a többi, ismeretlen molekuláról mit lehet ezek alapján mondani
Tanuló adatbázis Felügyelt tanulás esetén Példa Magasság Hajszín Szemszín Osztály 1 alacsony szőke kék + magas szőke barna - 3 magas vörös kék + 4 alacsony sötét kék - 5 magas sötét kék - 6 magas sötét barna - 7 alacsony szőke barna - Attribútum-halmaz: A={Magasság, Hajszín, Szemszín} Osztálycímkék halmaza: C={+,-} Példa: egy sor az adatbázisban (a valóság egy entitását írja le) Döntési fák: ID3-algoritmus Az előző példához tartozó döntési fa: hajszín sötét vörös szőke - + szem kék barna + - Osztályozás a fa alapján: egy új, eddig ismeretlen entitást ({M, H, SZ}) a fa gyökeréből kiindulva, a csúcsokban található attribútumoknak megfelelően haladunk valamely levél felé; a példához tartozó címkét a levél címkéje adja meg
Modellalkotás: tanulási folyamat Algoritmus ID3(S, C, A) S: példahalmaz, C: osztály-címkék, A: attribútum halmaz készítsünk gyökércsomópontot a fának ha S-ben minden példa pozitív, akkor a gyökér címkéje legyen +, és return gyökér ha S-ben minden példa negatív, akkor a gyökér címkéje legyen -, és return gyökér ha az A attribútum-halmaz üres, akkor a gyökér címkéje legyen az S-ben lévő leggyakoribb címke, és return gyökér különben o legyen At a legjobban vágó attribútum o a gyökér címkéje legyen At o At minden lehetséges v értékére a gyökér alá hozzunk létre új ágat, ami az At attribútum v értékét reprezenztálja legyen Sv azon példák halmaza S-ből, melyek At értéke v ha Sv üres, akkor az adott ághoz tartozó csúcs (levél) címkéje legyen az S- ben lévő leggyakoribb címke return gyökér ha Sv nem üres, akkor az ághoz csatoljuk be az ID3(Sv, C, A-{At}) által visszaadott csúcsot Legjobban vágó attribútum Legyenek p +, és p - az S-beli pozitív, és negatív példák aránya Entrópia: halmaz homogenitásának mértéke (rendezetlenség foka, információ..) E S = p pos log p pos p minus log p minus E(S) 1 0 0,5 1 p + Egy adott A attribútumhoz tartozó várható nyereség, az entrópia várható csökkenése Gain S, A =E S v A S v S E S v Tehát egy adott csúcsban a legnagyobb Gain(S, A)-val rendelkező A-t választjuk vágó attribútumnak.
Főbb tulajdonságok a módszer mohó módon minél kisebb méretű fát épít, ezzel próbál általánosítani a modell (a fán kívül) felfogható konjunciók diszjunkciójaként emberi szemmel értelmezhető, szemléletes nem érzékeny a zajokra (statisztikai alapon dönt) könnyen kiterjeszthető (folytonos attribútumokra, hiányzó értékek kezelésére,...) Példa Magasság Hajszín Szemszín Címke 1 alacsony szőke kék + magas szőke barna - 3 magas vörös kék + 4 alacsony sötét kék - 5 magas sötét kék - 6 magas sötét barna - 7 alacsony szőke barna - S={1,,3,4,5,6,7} (csak a sorszámokkal azonosítva a példákat, egyszerűsítve) A={Magasság, Hajszín, Szemszín} C=Címke={+,-} (mivel ez menetközben nem változik, ezért csak most írjuk ki) ID3(S, C, A) p pos = 7, p minus= 5 7 E S = p pos log p pos p minus log p minus = 7 log 7 5 7 log 5 7 =0.8631 Gain S, Magasság S alacsony ={1,4,7 }, S alacsony =3, E S alacsony = 1 3 log S magas ={,3,5,6 }, S magas =4, E S magas = 1 4 log 1 3 3 log 1 4 3 4 log 3 =0.9183 3 4 =0.8113 Gain S, Magasság =E S S alacsony E S S alacsony S magas S E S magas = =0.8631 3 7 0.9183 4 7 0.8113=0.0059 Gain S, Hajszín S szőke ={1,,7}, S szőke =3, E S szőke = 1 3 log 1 3 3 log 3 =0.9183 S vörös ={3 }, S vörös =1, E S vörös =0 definíció alapján,mivel p pos =1
S sötét ={4,5,6 }, S sötét =3, E S sötét =0 definíció alapján, mivel p pos =0 Gain S, Hajszín =E S S szőke S E S szőke S vörös S E S vörös S sötét S E S sötét = =0.8631 3 7 0.9183 1 7 0 3 7 0=0.4696 Gain S, Szemszín S kék ={1,3,4,5 }, S kék =4, E S kék = 4 log 4 4 log 4 =1 S barna ={1,4,7}, S barna =3, E S barna = definíció alapján, p pos =0 =0 Gain S, Szemszín =E S S kék S E S kék S barna S E S barna = =0.8631 4 7 1 3 7 0=0.4345 Legjobban vág: Hajszín felosztás: S szőke ={1,,7 }, S vörös ={3}, S sötét ={4,5,6 } a vörös, és a sötét esetek egyszerűek: az elsőben csak +, a másodikban csak negatív példák vannak így rekurzív hívás csak a szőke esetre szükséges ami eddig megvan tehát: hajszín sötét vörös szőke - +? ID3(S szőke, C, A-{Hajszín}) Magasság Hajszín Szemszín Címke 1 alacsony szőke kék + magas szőke barna - 7 alacsony szőke barna - p pos = 1 3, p minus= 3 E S = 1 3 log 1 3 3 log 3 =0.9183
Gain S, Magasság S alacsony ={1,7 }, S alacsony =, E S alacsony = 1 log 1 1 log 1 =1 S magas ={,3,5,6 }, S magas =4, E S magas =0 definíció szerint Gain S, Magasság =0.9183 3 1 1 3 0=0.516 Gain S,Szemszín S kék ={1 }, S kék =1, E S kék =0 definíció szerint S barna ={,7 }, S barna =, E S barna =0 definíció szerint Gain S, Szemszín =0.9183 1 3 0 3 0=0.9183 Legjobban vág: Szemszín és ezzel kész is, hiszen a kék színhez csak pozitív, a barnához csak negatív példák tartoznak visszakapjuk a fentebb bemutatott fát