Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Deep Learning a gyakorlatban Python és LUA alapon

    A tantárgy angol neve: Deep Learning in Practice with Python and LUA

    Adatlap utolsó módosítása: 2019. július 1.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Villamosmérnöki szak
    Mérnökinformatikus szak
    Gazdaságinformatikus szak
    Egészségügyi mérnöki szak
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VITMAV45   2/2/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Gyires-Tóth Bálint Pál, Távközlési és Médiainformatikai Tanszék
    A tantárgy tanszéki weboldala http://smartlab.tmit.bme.hu/oktatas-deep-learning
    4. A tantárgy előadója
    Név: Beosztás: Tanszék, Int.:
    Dr. Gyires-Tóth BálintEgyetemi adjunktusBME-TMIT
    Dr. Csapó Tamás GáborTudományos munkatárs
    BME-TMIT
    Dr. Zainkó Csaba
    Egyetemi adjunktusBME-TMIT
    5. A tantárgy az alábbi témakörök ismeretére épít Python programozás
    Mátrixalgebra
    6. Előtanulmányi rend
    Ajánlott:

    Neurális hálózatok (VIMIJV07)
    Deep learning alkalmazása a vizuális informatikában (VIIIAV20)

    7. A tantárgy célkitűzése

    Az adatmennyiség robbanásszerű növekedésével, a grafikus processzorok jelentős technológiai fejlődésével és a tudományterület új eredményeinek köszönhetően az elmúlt években a mély tanuló rendszerek, azon belül is a mély neurális hálózatok (Deep Neural Networks, DNN) valós életbeli folyamatok megfigyelések alapján történő modellezésének az egyik leghatékonyabb eszközévé váltak. A neuronháló mély rétegei a modellezni kívánt folyamat különböző, magas és alacsony szintű absztrakcióinak kinyerésére, osztályozására és predikciójára képesek. A mély tanuló rendszerek már a gépi beszéd- és látásfunkciók modellezésén túl alkalmasak például fordításra, zenei stílus automatikus osztályozására, felhasználói preferencia jóslására, felhasználó azonosítására, sőt, akár rajzolni és zenét komponálni is tudnak. Napjainkban már az olyan nagy cégek, mint a Google, Facebook, Amazon, IBM is egyre több technológiájukat helyezik deep learning alapokra. 

    A tárgy gyakorlati problémák megoldásán keresztül tanítja meg a rendelkezésre álló, az iparban is széles körben használt két legfontosabb nyílt forráskódú mély tanuló keretrendszer, a Google TensorFlow / Keras (Python) és a Facebook által támogatott PyTorch (Python) programozását és ezek széleskörű használatához szükséges elméleti alapokat. 

    8. A tantárgy részletes tematikája

    A félév során az előadásokon és gyakorlatokon rövid elméleti áttekintőt követően ismertetjük a megoldandó problémát és annak Python alapú megoldását.

    1. Elmélet: Bevezető a mély tanulás világába. Python alapok.
      Gyakorlat: Mátrixműveletek Python alapon. GPU alapú számítások. A GPU memóriaigényének és terhelésének monitorozása. 

    2. Elmélet: Mély tanulás elméleti alapjai. A mély neurális hálózat. Hibavisszaterjesztés (backpropagation). 
      Gyakorlat: Az XOR probléma és többdimenziós függvények neurális hálózat alapú modellezésének bemutatása Python alapon. Egy és több rejtett rétegű hálózatok implementációja.

    3. Elmélet: A Google szövegfelolvasó működése (pl. Androidon). A statisztikai parametrikus beszédszintézis elméleti háttere. Beszédkorpuszok. Tanítható paraméterfolyamok. One-hot kódolás.
      Gyakorlat: Paraméterfolyamok előkészítése a tanításhoz. Szakadásos paraméterfolyamok interpolációja. Python alapú megvalósítás.

    4. Elmélet: Előrecsatolt mély neurális hálózatok. A beszéd paramétereinek (pl.alapfrekvencia, hangidőtartamok és spektrum) párhuzamos modellezése előrecsatolt mély neurális hálózatok segítségével. 
      Gyakorlat: Előrecsatolt mély neuronháló alapú beszédszintézis Python alapú implementációja. 

    5. Elmélet: Felhasználói viselkedés elemzése mobil szenzoradatok alapján. Aggregált, ensemble modellek. A szenzoradatok rögzítése és standardizálása.
      Gyakorlat: Egyszerű regressziós és osztályozási példa megvalósítása magasszintű deep learning keretrendszerben. Hálózatok vizsgálata és vizualizációja a TensorBoard segítségével.

    6. Elmélet: Konvolúciós mély neurális hálózatok (Convolutional Neural Networks, CNN). A felhasználói viselkedés modellezése egy és kétdimenziós konvolúciós mély neuronhálókkal. 
      Gyakorlat: Mély konvolúciós hálózat alapú felhasználói viselkedés modell implementációja Python alapon. 

    7. Félévközi házi feladat bemutató.

    8. Elmélet: Visszacsatolt neurális hálózat alapjai és előnyei. Long Short-Term Memory (LSTM) és Gated Recurrent Unit (GRU) hálózatok felépítése és implementációja. Szövegszintézis („verset ír a számítógép”) elméleti és gyakorlati alapjai. Tanítóadatbázisok (szövegkorpusz) gyűjtése és előkészítése. 
      Gyakorlat: Többdimenziós szinuszos függvény modellezése visszacsatolt neurális hálózattal Python alapon. LSTM/GRU alapú szövegszintézis Python alapú implementációja. 

    9. Elmélet: Komplex architektúrák. Residual, highway, dense és skip kapcsolatok. A receptív mező növelése. Kauzális és nyújtott (dilated) konvolúciós rétegek. Alkalmazási példák.
      Gyakorlat: Neurális hálózatok gráf szerű felépítése és tanítása. Autoregresszív modellek (pl. WaveNet, WaveGlow). Python alapú példák. 

    10. Elmélet:  Hiperparaméter optimizáció. A hiperparaméterek hatása a tanítás pontosságára. Manuális, véletlenszerű és rács alapú hiperparaméter keresés. Iteratív hiperparaméter keresési eljárások. Tree-structured Parzen Estimators.
      Gyakorlat: Hiperparaméter optimizáció Python modulok segítségével.

    11. Elmélet: End-to-end beszédfelismerés visszacsatolt neurális hálózatokkal. Connectionist Temporal Classification (CTC) célfüggvény.
      Gyakorlat: End-to-end beszédfelismerés LSTM alapon, CNN és fully-connected rétegekkel.

    12. Elmélet: Generatív modellek és alkalmazásai. Mély auto-encoder típusú hálózatok. Variációs auto-encoderek (Variational Autoencoder) és generatív versengő hálózatok (Generative Adversarial Network, GAN). 
      Gyakorlat: Variációs auto-encoder és GAN megvalósítása Python nyelven.

    13. Elmélet: A többszintű trendelemzés elméleti alapjai, tőzsdei vonatkozásai. Devizapiaci (forex) árfolyam adatgyűjtés és előkészítés a tanításhoz.
      Gyakorlat: CNN/LSTM alapú tőzsdei trendelemzés Python alapú implementációja. 

    14. Elmélet: A természetes nyelvfeldolgozás alapjai. Szóbeágyazás alapjai és típusai: BOW, skip-gram, N-gram és CBOW beágyazások. Távolságmetrikák. Word2Vec, GloVe és FastText modellek. Sequence-to-sequence és transformer modellek. Attention (figyelem) mechanizmus.
      Gyakorlat: Természetes nyelvfeldolgozási példa (pl. író klasszifikáció Python alapon).
    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat. A gyakorlat során a hallgatók az előadáson hallottak gyakorlati alkalmazását láthatják és gyakorolhatják. Saját laptop használata megengedett.
    10. Követelmények

    A szorgalmi időszakban:

    A hallgatók a szorgalmi időszak során egyedül vagy csapatban tetszőlegesen választott nagy házi feladatot készítenek, amelyen gyakorolhatják a mély tanuló rendszerek tervezését, megvalósítását és az órán tanult eszközök használatát. Az elkészített rendszert dokumentációkkal együtt a félév végén kell bemutatniuk, illetve félév közben egy alkalommal be kell számolni az előrehaladásról. A házi feladatok dokumentációja és a forráskódok karbantartása széles körben elterjedt, általános git rendszeren keresztül történik.

    A hallgató a félév elismerését jelentő félév végi aláírást csak akkor kaphat, ha a házi feladata teljesíti a minimális követelményeket.

    A vizsgaidőszakban:

    A tantárgy anyagából a hallgatók vizsgát tesznek. A félév végi osztályzatot a házi feladat (50%) és a vizsgajegy (50%) alapján kapják. A vizsgán a hallgatóknak el kell érniük a meghatározott minimum szintet (40%).

    Elővizsga:

    Elővizsga tehető a szorgalmi időszak utolsó hetében.

    11. Pótlási lehetőségek A házi feladat leadása a pótlási héten megadott időpontban pótolható.
    Elégtelen vizsga a TVSZ szabályai szerint pótolható.
    12. Konzultációs lehetőségek Az előadókkal egyeztetett időben.
    13. Jegyzet, tankönyv, felhasználható irodalom
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra10
    Felkészülés zárthelyire0
    Házi feladat elkészítése27
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés27
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Gyires-Tóth Bálint 

    Egyetemi adjunktus

    BME-TMIT

    Dr. Csapó Tamás Gábor

    Tudományos segédmunkatárs

    BME-TMIT

    Dr. Szaszák György

    Tudományos munkatárs

    BME-TMIT

    Dr. Németh Géza

    Habilitált egyetemi docens

    BME-TMIT

    Dr. Zainkó Csaba

    Egyetemi adjunktus

    BME-TMIT