490 likes | 649 Views
Trénovanie rekurentn ých neurónových sietí na grafickom procesore. Peter Trebatický. Úvod. Pre čo použiť grafický procesor Kalmanova filtrácia výpočtovo náročná Rapídne sa zvyšujúci výkon bežne dostupných GPU Použitie pri trénovaní Dopredné a spätné šírenie Modifikácie Kalmanovho filtra
E N D
Trénovanie rekurentných neurónových sietí na grafickom procesore Peter Trebatický
Úvod • Prečo použiť grafický procesor • Kalmanova filtrácia výpočtovo náročná • Rapídne sa zvyšujúci výkon bežne dostupných GPU • Použitie pri trénovaní • Dopredné a spätné šírenie • Modifikácie Kalmanovho filtra • Neurónové siete s echo stavmi
Grafické procesorové jednotky • Grafické procesorové jednotky na bežných grafických kartách sa vyvinuli v extrémne flexibilné a výkonné procesory • Pôvodne pre urýchlenie matematických výpočtov pre zobrazovanie grafiky • Kvôli rastúcej zložitosti ponúkaných algoritmov „natvrdo“ bola pridaná možnosť programovania • General Purpose Computing on GPU • Niektoré karty nemajú grafický výstup • Grafická karta sa stáva koprocesorom
Prečo sú GPU stále rýchlejšie? • Je to vysoko paralelný výpočtový prostriedok • Sú špecializované, je jednoduchšie pridať ďalšie tranzistory určené na výpočet a nie na cacheovanie dát a riadenie • Trh s počítačovými hrami tlačí na vyšší výkon za nižšiu cenu • Konkurencia podnecuje inováciu
Prúdové spracovanie • Prúdy • Skupina údajov vyžadujúcich podobné spracovanie • Prvky na mriežke, voxely, atď. • Poskytujú dátový paralelizmus • Kernely • Funkcie aplikované na každý prvok v prúde • Transformácie, rovnice, ... • Malá závislosť medzi elementami • Programujeme pre stovky procesorov • Bežia na nich kernely (spolupracujúce vlákna) spracúvajúce prúdy
Donedávna zložité • Grafické karty boli vytvorené pre videohry • Neobvyklý programovací model • Jednotlivé pojmy späté s počítačovou grafikou • Veľmi obmedzené programovacie prostredie • Problém nesúvisiaci s grafikou bolo treba pretransformovať na prácu s „grafikou“ • Dáta => textúry • Algoritmy => skladanie obrazu (renderovacie prechody) • Dá sa zapisovať len na predom zvolené miesto (pixel)
Jazyky • API • Direct3D, OpenGL • Využitie shaderov • HLSL, GLSL, Cg • GPGPU jazyky • Skrývajú detaily D3D/OpenGL • Brook, Sh, RapidMind, Accelerator • CTM (CAL): ACML • CUDA: CUBLAS
CUDA • Hardvér aj softvér navrhnutý s ohľadom na možnosť všeobecných výpočtov na GPU • Hardvér – plne dátovoparalelná architektúra • Spúšťanie vlákien (lightweight) • Globálne čítanie aj zápis • Cache paralelných dát • Skalárna architektúra • Celé čísla, bitové operácie (doteraz len 32b float) • Softvér – programuje sa v C • Jazyk C s užitočnými rozšíreniami
Využitie GPU v umelej inteligencii • Genetický algoritmus - 20× • Operátory aj fitnes na GPU • Genetické programovanie - 100× • Vyhodnotenie stromov • Support Vector Machines - 28× • Rozoznávanie tváre • Dopredná neurónová sieť • Dopredné šírenie - 20× • Spätné šírenie chýb v čase - 3×
Dopredné a spätné šírenie • Maticovými operáciami • Po vrstvách • u W1= a1 • y1=f(a1) • Pri doprednej sieti spojíme viacero vstupov do matice • U W1= A1 • Y1=f(A1) • Alebo...
Kalmanova filtrácia • Alternatíva ku gradientovým metódam trénovania neurónových sietí • Jednoduchý princíp • Stáva sa populárnym • Známy niekoľko desaťročí • Používaný v rôznych oblastiach
Kalmanov filter • Sada matematických rovníc • Pre lineárne dynamické systémy • Prediktor-korektor • Optimálny xk+1 = Fk+1,kxk + qkstavová rovnica yk = Hkxk + rkrovnica pozorovania qk~N(0, Qk); rk~N(0, Rk)
Kalmanov filter • Predikcia • Korekcia
Neurónová sieť ako dynamický systém • Váhy siete predstavujú „stav“ systému • yk je požadovaný výstup • Odhad parametrov • Nelineárny systém xk+1 = xk + qk yk = hk(xk, uk, vk-1) + rk
Rozšírený Kalmanov filter (EKF) • Taylorov rozvoj okolo aktuálne odhadovaného stavu • Prvý člen rozvoja • Linearizácia • Môžeme použiť Kalmanov filter
Rozšírený Kalmanov filter (EKF) • Rovnice: • Rozmery matíc
Úzke miesta • Násobenie matíc • Invertovanie symetrickej matice • Choleského dekompozícia • Použijeme pri výpočte inverznej matice 1. Substitúcia, 3. Spätný prechod 2. Dopredný prechod
Násobenie matíc na GPU • So staršou architektúrou problematické • Architektúra nebola vhodná • Veľa údajov sa znovupoužíva • Kombinácia CPU+GPU • CUDA pre NVidia • poskytuje operácie BLAS 1 až 3 • BLAS3 = násobenie matíc
Objektívne porovnanie • Knižnica ATLASIntel Core2 Quad Q6600 2.4 GHz • Knižnica CUBLASnVidia GeForce 8800 GTX • Obe dodržujú štandard BLAS • Zdrojový kód skoro identický • Drobná úprava vo volaní funkcií • Prenos údajov CPU - GPU • Vplyv reprezentácie desatinných čísel • Paralelne sa dá počítať aj na procesore
Dosiahnuté výsledky Trénovací cyklus
Unscented Kalman Filter (UKF) • Sigma body • Malý počet • Deterministicky volené • Zachytávajú skutočné štatistiky • Prejdú nelineárnou transformáciou • Nie sú potrebné derivácie • Vyhodnotenia funkcií • Nutnosť prešíriť vstupy sieťous novými váhami (sigma bodmi)
Unscented Kalman Filter (UKF) • Časová aktualizácia • Aktualizácia pozorovaním
Filter nprKF • Len vyhodnotenia funkcií • Stirlingova formula • Namiesto Taylorovho rozvoja • Derivácie určené numericky • S presnosťou do 2. rádu • Podobnosť s UKF • Tiež sigma body • Presnejší odhad • Triangularizácia matice • Householderovými transformáciami
Zdieľané filtre UKF a nprKF • Označenie UKFj a nprKFj (joint) • Výstupy rekurentných neurónov súčasťou stavového vektora • Nelineárna stavová rovnica • Zmena v rovniciach kroku predikcie • Zjednodušenie výpočtu výstupu siete xk+1 = f(xk,uk) + qk namiesto xk+1 = xk + qk
Rezervoár rekurentne poprepájaných neurónov – riedko a náhodne Neurónové siete s echo stavmi
Sieť s echo stavmi • Stav neurónov pre rovnakú vstupnú postupnosť po čase nezávisí od jeho počiatočného stavu
Sieť s echo stavmi • Skombinovanie signálov z rezervoára
Sieť s echo stavmi • Skombinovanie signálov z rezervoára • Získanie histórie stavov X • Požadované výstupy Y • Výstupné váhy ako lineárna kombinácia • 1. možnosť • Inverzia symetrickej matice • Choleského dekompozícia • 2. možnosť • Pseudoinverzná matica pomocou SVD
Generovanie melódie • Pôvodná melódia
Generovanie melódie • Pôvodná melódia • Začiatok • Pokazenie 0,4 0,2 -0,2 -0,4
Zhrnutie • Zrýchlenie výpočtu „zadarmo“ • GeForce 8, Radeon R580, aj mobilné verzie • Nie je vždy nutná podrobná znalosť GPU • CUDA • ACML • Na rozdiel od špeciálnych koprocesorov, multiprocesorových strojov, gridov
Tézy dizertačnej práce • Modifikácie Kalmanovho filtra • Zjednodušenie všeobecných vzorcov pre rekurentné neurónové siete • UKF a nprKF • UKFj pravdepodobne prvý krát použitý v kontexte rekurentných sietí • Grafické procesory • Ukázanie vhodnosti použitia pri trénovaní rôznych sietí a algoritmov pre rekurentné siete • Objektívne porovnanie rýchlosti s CPU pri porovnateľnom vynaloženom úsilí
Súpis prác • AAB Vedecké monografie vydané v domácich vydavateľstvách • Kvasnička, Vladimír - Trebatický, Peter - Pospíchal, Jiří - Kelemen, Jozef: Myseľ, inteligencia a život. - Bratislava : Vydavateľstvo STU v Bratislave, 2007. - 517 s. - ISBN 978-80-227-2643-6 • ADC Vedecké práce v zahraničných karentovaných časopisoch • Trebatický, Peter: Recurrent Neural Network training with the Kalman Filter-based techniques, Vol. 15, No.5.In: Neural network world. - ISSN 1210-0552. - Vol. 15 No. 5 (2005), s. 471-488 • ADE Vedecké práce v zahraničných nekarentovaných časopisoch • Trebatický, Peter - Pospíchal, Jiří: Neural Network Training with Extended Kalman Filter Using Graphics Processing Unit.In: Lecture Notes in Computer Science. - ISSN 0302-9743. - Vol. 5164 Artificial Neural Networks - ICANN 2008, Part II, 18th International Conference, Prague, CzR, September 2008 : Proceedings (2008). - : Springer Berlin/Heidelberg, s. 198-207
Súpis prác • AEC Vedecké práce v zahraničných recenzovaných vedeckých zborníkoch, monografiách • Trebatický, Peter: Generalizácia s neurónovými sieťami a echo stavmi.In: Kognice a umělý život. - Kognice a umělý život V: Svazek 2. Opava, Máj 2005. - Opava : Slezská universita v Opavě, 2005, s. 563-572 • Trebatický, Peter: Modifikácie Kalmanovho filtra pre trénovanie neurónových sietí.In: Kognice a umělý život VII. - Opava: Slezská univerzita, 2007. - ISBN 978-80-7248-412-6. - S. 349-355 • Trebatický, Peter: Výpočty na grafickom procesore v rámci umelej inteligencie.In: Kognice a umělý život VIII (sborník). - : Slezská univerzita v Opavě, 2008. - ISBN 978-80-7248-462-1. - S. 333-338 • AED Vedecké práce v domácich recenzovaných vedeckých zborníkoch, monografiách • Trebatický, Peter: Korektúra textu neurónovými sieťami s echo stavmi.In: Myseľ, inteligencia a život. - Bratislava : Vydavateľstvo STU v Bratislave, 2007. - ISBN 978-80-227-2643-6. - S. 357-368
Súpis prác • AFC Publikované príspevky na zahraničných vedeckých konferenciách • Čerňanský, Michal - Makula, Matej - Trebatický, Peter - Lacko, Peter: Text Correction Using Approaches Based on Markovian Architectural Bias.In: EANN 2007, Proceedings of the 10th International Conference on Engineering Applications of Neural Networks, Thessaloniki, Greece, 29.-31.8.2007. - Thessaloniki : Publishing Centre Alexander Technological Educational Institute of Thessaloniki, 2007. - ISBN 978-960-287-093-8. - S. 221-228 • Trebatický, Peter: Echo-state networks generalization.In: MENDEL 2005: 11th International Conference on Soft Computing : Brno, June 15-17, 2005. - Brno : Institute of Automation and Computer Science FAculty of Mechanical Engineering Brno University of Technology, 2005. - ISBN 80-214-2961-5. - S. 151-156 • Trebatický, Peter: Korektúra textu neurónovými sieťami s echo stavmi.In: Kognice a umělý život VI : 6. seminář, 28.5.-1.6.2006 Třešť, ČR. - : Slezská univerzita v Opavě, 2006. - ISBN 80-7248-355-2. - S. 393-399 • Trebatický, Peter: Trénovanie rekurentných neurónových sietí technikou rozšíreného Kalmanovho filtra.In: CZ ACM Student 2004, Finále, Praha 26.11.2004. - , 2004. - S. 8
Súpis prác • AFD Publikované príspevky na domácich vedeckých konferenciách • Trebatický, Peter: Kalman Filter Modifications for Neural Network Training.In: Student Research Conference 2007. 3rd Student Research Conference in Informatics and Information Technologies Bratislava, April 18, 2007 : Proceedings in Informatics and Information Technologies. - Bratislava : STU v Bratislave FIIT, 2007. - ISBN 978-80-227-2631-3. - S. 257-264 • Trebatický, Peter - Pospíchal, Jiří: Prediction with Echo state Networks.In: Student Research Conference 2006 : Proceedings in Informatics and Information Technologies. - : Vydavateľstvo STU v Bratislave, 2006. - ISBN 80-227-2395-9. - S. 79-86 • Trebatický, Peter - Bieliková, Mária: Programming Contest at IIT.SRC 2008.In: Student Research Conference 2008. 4th Student Research Conference in Informatics and Information Technologies Bratislava, April 30, 2008 : Proceedings in Informatics and Information Technologies. - : STU v Bratislave FIIT, 2008. - ISBN 978-80-227-2848-5. - S. 445-446 • Trebatický, Peter: Recurrent Neural Network Training with the Extended Kalman Filter.In: Student Research Conference 2005 : Proceedings in Informatics and Information Technologies. - Bratislava : Faculty of Informatics and Information Technologies, 2005. - ISBN 80-227-2217-0. - S. 57-64 • AFH Abstrakty príspevkov z domácich konferencií • Trebatický, Peter: Recurrent Neural Network Training with the Kalman Filter Based Techniques. In: 1-st. Slovak-Japanese Seminar on Intelligent Systems. Herľany - Slovak Republic, 18.9.-20.9.2005. - , 2005