49
Trénovanie rekurentných neurónových sietí na grafickom procesore Peter Trebatický

Trénovanie rekurentn ých neurónových sietí na grafickom procesore

  • Upload
    conley

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Trénovanie rekurentných neurónových sietí na grafickom procesore

Peter Trebatický

Page 2: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Ú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

Page 3: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 4: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Porovnanie výpočtovej sily

Page 5: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 6: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 7: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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)

Page 8: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 9: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 10: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Pamäťový model modernej GPU

Page 11: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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×

Page 12: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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...

Page 13: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

N telies v priestore

Page 14: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

N telies v priestore na GPU

Page 15: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 16: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

-2 0 2 4 6 8 10 12 14

Page 17: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

-2 0 2 4 6 8 10 12 14

predikcia

Predikcia

Page 18: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

-2 0 2 4 6 8 10 12 14

predikcia

pozorovanie

Predikcia

Page 19: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

-2 0 2 4 6 8 10 12 14

predikcia

pozorovanie

korekcia

Predikcia Korekcia

Page 20: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

-2 0 2 4 6 8 10 12 14

predikcia

pozorovanie

korekcia

Predikcia Korekcia

Page 21: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

-2 0 2 4 6 8 10 12 14

predikcia

pozorovanie

korekcia

Predikcia Korekcia

I n i iali áciac z

Page 22: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

Sada matematických rovníc Pre lineárne dynamické systémy

Prediktor-korektor Optimálny

xk+1 = Fk+1,kxk + qk stavová rovnica

yk = Hkxk + rk rovnica pozorovania

qk~N(0, Qk); rk~N(0, Rk)

Page 23: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Kalmanov filter

Predikcia

Korekcia

, 1 11ˆ ˆk k k kk

x F x

, 1 1 , 1 1T

k k k k k k k

P F P F Q

( )1T Tk k k k k k k

K P H H P H R

( )k k k k k k x x K y H x

( )k k k k P I K H P

Page 24: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 25: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Rozšírený Kalmanov filter (EKF)

Taylorov rozvoj okolo aktuálne odhadovaného stavu

Prvý člen rozvoja Linearizácia Môžeme použiť Kalmanov filter

Page 26: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Rozšírený Kalmanov filter (EKF)

Rovnice:

Rozmery matíc

( )

1

1 1

1

ˆ ˆ ˆ , ,

T Tk k k k k k k

k k k k k k k

k k k k k k

h

K P H H P H R

x x K y x u v

P P K H P Q

, , , ,x o x x x x o o o xn n n n n n n n n n K P Q R H

Page 27: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Úzke miesta

Násobenie matíc Invertovanie symetrickej matice Choleského dekompozícia

Použijeme pri výpočte inverznej matice1

1

1

T

T

AA I

BB A I

B A Z

BZ I

, , je dolná trojuholníková maticaT B A A BB B

2. Dopredný prechod

1. Substitúcia, 3. Spätný prechod

Page 28: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 29: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 30: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Predikcia nasledujúceho symbolu v postupnosti Laser

0.5 0.

9 1.0 1.2

2.3

4.2

0.5

1.0 1.

1 1.2 1.

6

2.9

0.5 0.

9 1.1 1.2

2.1

6.0

0.6 1.

0 1.1 1.

3

2.1

4.9

0.0

1.0

2.0

3.0

4.0

5.0

6.0

J=4,w=56

J=8,w=140

J=12,w=256

J=16,w=404

J=30,w=1174

J=60,w=4144

Rel

atív

na r

ýchl

osť

EK

F G

PU

EKF ATLASf

EKF ATLASft

EKF ATLASd

EKF ATLASdt

Page 31: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Dosiahnuté výsledky

Trénovací cyklus

Page 32: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Presnosť výpočtu

-0.6%

-0.4%

-0.2%

0.0%

0.2%

0.4%

0.6%

0.8%

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Roz

diel

EKF ATLASf vs EKF ATLASd

EKF GPU vs EKF ATLASd

EKF GPU vs EKF ATLASf

Page 33: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Unscented Kalman Filter (UKF)

Page 34: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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ťou

s novými váhami (sigma bodmi)

Page 35: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Unscented Kalman Filter (UKF)

Časová aktualizácia

Aktualizácia pozorovaním

[ 1]

[ ]

ˆ

ˆx

x x

n

n n

x x

P P Q

( )( )

( )( )

[ 2 1]

[ 2 1]

2 ( )[ 1] 0

2 ( )[ ] 0

2 ( )[ ] 0

[ ]

(sigma body)

g( , )

x x

o x

x

x

x

o o

x

x o

x o

n n

n n

n mn i ii

n Tcyy n n i i ii

n Tcxy n n i i ii

Tn n xy yy

W

W

W

χ x x P x P

χ u

y

P y y R

P χ x y

K P P

( )ˆ

ˆd

Tyy

x x K y y

P P KP K

Page 36: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 37: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 38: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Neurónové siete s echo stavmi

Rezervoár rekurentne poprepájaných neurónov – riedko a náhodne

Page 39: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Sieť s echo stavmi

Stav neurónov pre rovnakú vstupnú postupnosť po čase nezávisí od jeho počiatočného stavu

Page 40: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Sieť s echo stavmi

Skombinovanie signálov z rezervoára

Page 41: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 42: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Generovanie melódie

Pôvodná melódia

Page 43: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

Generovanie melódie

Pôvodná melódia

Začiatok

Pokazenie

0,4

0,2

-0,2

-0,4

Page 44: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 45: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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í

Page 46: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 47: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 48: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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

Page 49: Trénovanie rekurentn ých  neurónových sietí na grafickom procesore

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