Mély neuronhálók és alkalmazásaik Grósz Tamás MTA-SZTE Mesterséges Intelligencia Kutatócsoport
Hagyományos és „mély” (deep) neuronháló Hagyományos háló: egy rejtett réteg - betanítása hiba-visszaterjesztéssel (backpropagation): tkp. gradiens-módszer Miért csak egy rejtett réteg? - már így is tetszőleges pontosságra képes (a neuronszám növelésével!!) - már így is viszonylag lassú a tanítás
Hagyományos és „mély” (deep) neuronháló Mély neuronháló: több (2-9) rejtett réteg - adott neuronszám mellett pontosabb, mint egy rejtett réteggel - a nagy műveletigényre megoldás a GPU-k használata (20-40-szeres gyorsulás!) Probléma: sok rétegnél a backpropagation nem hatékony - visszafele haladva egyre kevésbé tudja megmondani, hogy melyik neuronnak mit érdemes reprezentálnia („explaining away”) - „vanishing gradient” effektus
Hagyományos és „mély” (deep) neuronháló Explaining away példa: Mély neuronháló tanítására 2 fő irányzat: - a tanító algoritmus kiegészítése előtanítással - a neuronháló struktúrájának módosítása
Előtanításon alapuló módszerek Az előtanításos módszer röviden: - előtanítási módszer alkalmazása a neuronháló súlyainak inicializálására - inicializálás után „finomhangolni” a háló súlyait (backprop) Az előtanítás hatásai: - az inicializálással optimumhoz közelebbi állapotból tudjuk indítani a tanítást - a mély hálók problémáit „kezeli” az előtanítás
Korlátos Boltzmann Gép A mély neuronhálók építőeleme Korlátos: rétegen belül nincs kapcsolat Szimmetrikus kapcsolat a rétegek neuronjai között Rejtett réteg Látható réteg
Kontrasztív Divergencia (CD) algoritmus A tanítás során a cél: a rejtett réteg segítségével megmagyarázni a látható réteget. A gradienst rekonstrukciók segítségével közelítjük:
DBN előtanítás (2006) Deep Belief Network: korlátos Boltzmann-gépekből mély háló építése betanítás: CD-algoritmus rétegenként Finomhangolás softmax kimeneti réteg hozzáadása után
Diszkriminatív előtanítás (2011) A DBN előtanítás alternatívája Előtanítás algoritmusa:
A neuronhálót módosító módszerek - manapság legnépszerűbb módszerek - nincs szükség idő és erőforrás igényes előtanításra - nagyon könnyen kombinálhatóak a módosítások Lehetséges módosítások: - aktivációs függvény - a hálózat felépítése - neuronok közötti kapcsolatok (connectivity)
Rectifier neuronhálók (2012) Rectifier aktivációs függvény: F(x) = max(0,x) Eltérések a szigmoid neurontól: a kimenetnek nincs felső korlátja negatív bemenet esetén 0 kimenet nem szükséges előtanítani Egyéb javasolt aktivációs függvények: Softplus (sigmoid integráltja) Abs paraméteres aktivációs függvény
Dropout módszer (2013) A módszer lényege: tanítás során a rejtett neuronok egy része (10-50%) véletlenszerűen „kieshet” az azonos rétegben eső neuronok kevésbé támaszkodhatnak egymásra zajos adatra jól működik Alkalmazható bármely másik módszerrel együtt: hagyományos szigmoid hálók rectifier hálók előtanított hálók
Konvolúciós neuronhálók A módszer lényege: az egyes neuronok konvolúciót hajtanak végre a bemeneten Csak egy kis lokális ablakot látnak a neuronok konvolúció után pooling függvénnyel (max, min, avg, …) mintavételezünk
Egyéb aktivációs függvények Sokféle aktivációs függvény alkalmazásra került: Tanh Softplus Avg Maxout … Bővebben: https://en.wikipedia.org/wiki/Activation_function
Rekurrens hálók A módszer lényege: a hálóban található visszacsatolás a visszacsatolás miatt más tanítási módszer szükséges rendkívül hatékonyak idősorok feldolgozására a visszacsatolás történhet időben is
LSTM (hosszú és rövid távú memória) A mély rekurrens hálók új építőeleme: a hagyományos neuronok helyett tanítása rendkívül bonyolult működése lassú Felépítése: 3 kapu (gate) + 1 belső állapot (cell) a kimenet minden bemenő kapura vissza van csatolva (időben rekurrens)
LSTM (hosszú és rövid távú memória)
Ipari szektor Több nagy IT cég is aktívan kutatja a területet Google: Képfelismerés/gépi látás Beszédfelismerés Megerősítéses tanulás (DeepMind) Microsoft: Hasonlóan mint a Google Facebook: Mély hálókon alapuló ajánlórendszerek
ImageNet verseny Képfeldolgozási verseny: Korábbi nyertesek: Mi látható a képen? Korábbi nyertesek: 2014 Google: 22 rejtett réteg Konvolúció + maxout 2015 Microsoft: Reziduális tanulás 152 rejtett réteg Watson https://visual-recognition-demo.mybluemix.net/
Google Google híres mély hálós projektje: A lényeg röviden: Building High-level Features Using Large Scale Unsupervised Learning A lényeg röviden: mély neuronháló tanítása 10 millió youtube videóra 1000 PC, 16000 CPU mag a tanításhoz saját előtanítási algoritmus (DBN-hez hasonló) + konvolúciós struktúra 3 napig tanult Végeredmény: Amit a média felkapott, hogy a háló megtanulta a macskákat detektálni
Google Google újabb híres mély hálós projektje: AlphaGo A lényeg röviden: Go játékot játszó háló Megerősítéses tanítás Végeredmény: A neuronháló nyert 4-1-re a Go mester ellen
Beszédfelismerés
Eredmények a híradós adatbázison
Tanítási idők Nvidia GeForce GTX 560 Ti kártyán Módszer Előtanítási idő Finomhangolási idő Hagyományos 0 óra 4.5 óra Dropout 5.5 óra DBN előtanítás 1 óra 4 óra Diszkriminatív előtanítás 2.5 óra 3 óra Rectifier háló Rectifier háló + Dropout
Paralingvisztikus alkalmazások Cél: a beszédből másodlagos információk kinyerése Eddig sikeresen alkalmaztuk a következő feladatokra: Fizikai és kognitív fáradság becslése Részegség becslése Parkinson kór súlyosságának becslése (ezt nyertük meg) Evés közben elhangzott beszédből megmondani mit eszik Nativeness: Angolul beszélő mennyire jól beszéli a nyelvet Nativeness 2: Angolul beszélőnek mi az anyanyelve Öszinteség becslése Hazugság felismerése Megfázás felismerése
Némabeszéd-interfész Cél: a nyelv ultrahangos felvételeiből beszédet szintetizálni (vagy felismerni)
Némabeszéd-interfész Bemenet: ultrahangos felvétel (videó) Kimenet: Felismerés: osztályozás Szintézis: regresszió (spektrális paraméterek becslése) Mindkét esetben mély tanulást alkalmazunk
Időskori makuladegeneráció http://www.areds2.org.uk/macular-degeneration
Időskori makuladegeneráció HRD-k Folyadéktér
HRD-k detektálása mély hálóval Orvos által annotált kép Automatikus detektálás eredménye
Köszönöm a figyelmet! Kérdések?