A neurális hálózatok alapjai

Hasonló dokumentumok
Neurális Hálók. és a Funkcionális Programozás. Berényi Dániel Wigner GPU Labor

First Prev Next Last Go Back Full Screen Close Quit

Gépi tanulás a gyakorlatban. Lineáris regresszió

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Konvolúciós neurális hálózatok (CNN)

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Tanulás az idegrendszerben. Structure Dynamics Implementation Algorithm Computation - Function

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók. Pataki Béla

Matematika A1a Analízis

Matematika A1a Analízis

Visszacsatolt (mély) neurális hálózatok

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

A L Hospital-szabály, elaszticitás, monotonitás, konvexitás

Adatbányászati szemelvények MapReduce környezetben

Line aris f uggv enyilleszt es m arcius 19.

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

Irányításelmélet és technika II.

Intelligens orvosi műszerek VIMIA023

3. Lineáris differenciálegyenletek

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

"Flat" rendszerek. definíciók, példák, alkalmazások

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs rendszerek Tanszék. Neurális hálók 2. Pataki Béla

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Differenciálszámítás. 8. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Differenciálszámítás p. 1/1

Konjugált gradiens módszer

Neurális hálózatok elméleti alapjai TULICS MIKLÓS GÁBRIEL

Biomatematika 12. Szent István Egyetem Állatorvos-tudományi Kar. Fodor János

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Lineáris regressziós modellek 1

VIK A1 Matematika BOSCH, Hatvan, 5. Gyakorlati anyag

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

Haladó lineáris algebra

Szélsőérték-számítás

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Kalkulus 2., Matematika BSc 1. Házi feladat

Nemlineáris programozás 2.

Matematika I. NÉV:... FELADATOK: 2. Határozzuk meg az f(x) = 2x 3 + 2x 2 2x + 1 függvény szélsőértékeit a [ 2, 2] halmazon.

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1

Gazdasági matematika II. vizsgadolgozat megoldása, június 10

A fontosabb definíciók

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

I. LABOR -Mesterséges neuron

Statisztikai módszerek a skálafüggetlen hálózatok

2 (j) f(x) dx = 1 arcsin(3x 2) + C. (d) A x + Bx + C 5x (2x 2 + 7) + Hx + I. 2 2x F x + G. x

n n (n n ), lim ln(2 + 3e x ) x 3 + 2x 2e x e x + 1, sin x 1 cos x, lim e x2 1 + x 2 lim sin x 1 )

1/1. Házi feladat. 1. Legyen p és q igaz vagy hamis matematikai kifejezés. Mutassuk meg, hogy

MATEMATIKA 2. dolgozat megoldása (A csoport)

Tanulás tanuló gépek tanuló algoritmusok mesterséges neurális hálózatok

Legkisebb négyzetek módszere, Spline interpoláció

Általánosan, bármilyen mérés annyit jelent, mint meghatározni, hányszor van meg

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Intelligens Rendszerek Gyakorlata. Neurális hálózatok I.

First Prev Next Last Go Back Full Screen Close Quit. (Derivált)

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

A lineáris programozás alapjai

Mátrixok 2017 Mátrixok

Megerősítéses tanulás 7. előadás

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Statisztika I. 12. előadás. Előadó: Dr. Ertsey Imre

First Prev Next Last Go Back Full Screen Close Quit

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus.

Matematika I. NÉV:... FELADATOK:

Kétváltozós függvények differenciálszámítása

1. Oldja meg a z 3 (5 + 3j) (8 + 2j) 2. Adottak az A(1,4,3), B(3,1, 1), C( 5,2,4) pontok a térben.

3D számítógépes geometria 2

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

Matematika III előadás

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Bevezetés a programozásba. 5. Előadás: Tömbök

Deep Learning a gyakorlatban Python és LUA alapon Tanítás: alap tippek és trükkök

FELÜGYELT ÉS MEGERŐSÍTÉSES TANULÓ RENDSZEREK FEJLESZTÉSE

Megerősítéses tanulás 9. előadás

x, x R, x rögzített esetén esemény. : ( ) x Valószínűségi Változó: Feltételes valószínűség: Teljes valószínűség Tétele: Bayes Tétel:

KÖZELÍTŐ INFERENCIA II.

Mérési struktúrák

Numerikus matematika. Irodalom: Stoyan Gisbert, Numerikus matematika mérnököknek és programozóknak, Typotex, Lebegőpontos számok

A maximum likelihood becslésről

Figyelem, próbálja önállóan megoldani, csak ellenőrzésre használja a következő oldalak megoldásait!

(Independence, dependence, random variables)

Megerősítéses tanulás

Tanulás az idegrendszerben

Stratégiák tanulása az agyban

Modern műszeres analitika szeminárium Néhány egyszerű statisztikai teszt

Függvény differenciálás összefoglalás

Közösség detektálás gráfokban

KÖZELÍTŐ INFERENCIA II.

Hidden Markov Model. March 12, 2013

Least Squares becslés

Gyakorló feladatok az II. konzultáció anyagához

Numerikus integrálás

Egyenletek, egyenlőtlenségek V.

A mérési eredmény megadása

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Átírás:

A neurális hálózatok alapjai Modern Tudományos Programozás Wigner FK 20 November 2018

Bevezető példa Egyenes illesztés: Sok minden demonstrálható rajta, de tudjuk, van intuíciónk róla, hogyan működik

Egyenes illesztés Feladat: Adott N darab {x i, y i } pont pár (az adatok). Szeretnénk jellemezni őket egy modellel, pl. egyenes: y = M ab x = ax + b Választottunk egy költség függvényt az eltérés mérésére L z0 (z) = z 0 z 2 Kérdés: Hogyan illesszük a modellt az adatokra?

Egyenes illesztés Azt mondjuk, hogy a modell akkor illik az adatokra, ha a költségfüggvény minimális: min a,b i L yi (M ab (x i ) ) Minimumban a paraméterek szerinti deriváltak nullák: 0 = d da L yi (M ab (x i ) ) i 0 = d db i L yi (M ab (x i ) )

Egyenes illesztés Ismert, hogy komponált függvények deriváltja a lánc szabály szerint: d dx f g x = f g x g (x) Így átírhatjuk a minimum feltételt: 0 = d da i 0 = d db i L yi (M ab (x i ) ) = L yi (M ab (x i ) ) = i i L yi (M ab (x i ) ) d da M ab x i L yi (M ab (x i ) ) d db M ab x i

Egyenes illesztés Esetünkben speciálisan: M ab x = ax + b, d da M ab x i = x i, d db M ab x i = 1 így 0 = i 0 = i L z0 z = z 0 z 2, L z0 z = 2(z 0 z) L yi (M ab (x i ) ) d da M ab x i L y i M ab x i d db M ab x i = i 2(y i ax i b) x i = 2 y i ax i b 1 i

Egyenes illesztés 0 = (y i ax i b)x i i 0 = y i ax i b i Ez egy lineáris egyenletrendszer {a, b}-re, ezért meg tudjuk oldani, zárt alakban. Másképp fogalmazva: a minimalizálandó függvényünknek egyértelmű minimuma van!

Modell illesztés Foglaljuk össze, hogy mit használtunk fel: Volt egy modellünk M, aminek voltak hangolható paraméterei Volt egy költségfüggvényünk L A kettőt összekomponáltuk L M = L M, majd kerestük a paraméterek szerinti minimumát A minimumban a paraméterek szerinti deriváltak nullák Tehát deriváltat kellett számolnunk, de ez a kompozícióra a lánc szabály segítségével könnyen ment (szorzat alak) A deriváltak ismeretében egy egyenletrendszert kaptunk, amit meg kellett oldani.

Mi lenne ha...? https://what-if.xkcd.com/13/

Mi lenne ha...? A modellünk nem csak lineáris lenne, hanem valamilyen általánosabb függvényosztály

Mi lenne ha...? A modellünk nem csak lineáris lenne, hanem valamilyen általánosabb függvényosztály És ha mondjuk nem csak két paramétere lenne, hanem mondjuk 1 millió...

Mi lenne ha...? A modellünk nem csak lineáris lenne, hanem valamilyen általánosabb függvényosztály És ha mondjuk nem csak két paramétere lenne, hanem mondjuk 1 millió...

Problémák Néhány a problémák közül: Ha sok paraméterünk van, a szimbolikus deriválás és megoldás nem működik Az egyenletrendszer, amit meg kell oldanunk általában nem lineáris Következés képpen a minimum nem egyértelmű és sok van belőle (valószínűleg)

Deriválás A deriváltakat több féle módszerrel számolhatunk: Szimbolikusan Numerikusan Automatikusan

Deriválás A deriváltakat több féle módszerrel számolhatunk: Szimbolikusan Numerikusan Mi a különbség? Automatikusan

Deriválás A deriváltakat több féle módszerrel számolhatunk: Szimbolikusan f x = x 2, f x = 2x Numerikusan f 1.00 = 1.0000 ൠ f 1.01 = 1.0201 f 1.00 1.0201 1.0000 0.01 = 2.01 Automatikusan f x = x 2 f 1 = 1 1 f 1 + ε = 1 + ε 1 + ε = 1 + 2ε Tehát: f 1 = 1 és f 1 = 2

Automatikus differenciálás A módszer felfogható úgy, hogy a számokat kiterjesztjük egy infinitezimális iránnyal: x x + x ε ahol ε egy infinitezimális szám, és ε 2 = 0 x reprezentálja a függvény értékét x a derivált értéke az adott függvényérték mellett

Automatikus differenciálás A deriválási szabályok ekkor egyszerűen reprezentálhatóak: x + x ε + y + y ε = (x + y) + x + y ε x + x ε y + y ε = (xy) + x y + xy ε sin x + x ε = sin(x) + x cos(x) ε Általában tehát: f x + x ε = f x + f x x ε

Automatikus differenciálás Általában tehát: f x + x ε = f x + f x x ε Ezt viszont értjük, hiszen ez csak a lánc szabály!

Automatikus differenciálás f x + x ε = f x + f x x ε Konstansok: c = c + 0ε

Automatikus differenciálás f x + x ε = f x + f x x ε Ha van egy függvényem, hogy számolom ki a deriváltját egy adott x 0 pontban? Ha csak x + 0ε -t rakunk bele, akkor a fenti képlet szerint 0 lesz a deriváltat jellemző tag. f(x) + 0ε

Automatikus differenciálás f x + x ε = f x + f x x ε Ha van egy függvényem, hogy számolom ki a deriváltját egy adott x 0 pontban? Megoldás: x + 1ε Ekkor ugyanis az eredmény: (f x + f x ε)

Automatikus differenciálás Összefoglalva: Konstans: (c + 0ε) Változó: (x + 1ε) Lánc szabály: f x + x ε = f x + f x x ε Tovább komponálva: f g x + x ε = f g(x) + f g(x) g (x)x ε Még tovább: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε

Automatikus differenciálás Mi van több változó esetén? f x + x ε, y + y ε = f x, y + df dx x, y x + df dy x, y y ε Hasonlóan általánosítható, ha komponálunk: f g(x + x ε), h y + y ε = f g(x), h(y) + df dg g(x), h y g (x)x + df dh g(x), h y h (y)y ε

Automatikus differenciálás Menjünk vissza ehhez a képlethez: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε Ezt felrajzolhatjuk így is: f g h x

Automatikus differenciálás Menjünk vissza ehhez a képlethez: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε Ezt felrajzolhatjuk így is: Ha deriválni akarok, akkor (x 0 + 1ε)-t teszünk be alul: x 0 + 1ε f g h x

Automatikus differenciálás Menjünk vissza ehhez a képlethez: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε Ezt felrajzolhatjuk így is: f Ha deriválni akarok, akkor (x 0 + 1ε)-t teszünk be alul: h x 0 + h (x 0 )1ε g h És terjesztjük felfelé! x 0 + 1ε x

Automatikus differenciálás Menjünk vissza ehhez a képlethez: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε Ezt felrajzolhatjuk így is: Ha deriválni akarok, akkor (x 0 + 1ε)-t teszünk be alul: És terjesztjük felfelé! g(h x 0 ) + g h x 0 h (x 0 )1ε h x 0 + h (x 0 )1ε x 0 + 1ε f g h x

Automatikus differenciálás Menjünk vissza ehhez a képlethez: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε Ezt felrajzolhatjuk így is: f g(h(x)) + f g h x g (h x )h (x)x ε f Ha deriválni akarok, akkor (x 0 + 1ε)-t teszünk be alul: És terjesztjük felfelé! g(h x 0 ) + g h x 0 h (x 0 )1ε h x 0 + h (x 0 )1ε x 0 + 1ε g h x

Automatikus differenciálás Menjünk vissza ehhez a képlethez: f g(h x + x ε) = f g(h(x)) + f g h x g (h x )h (x)x ε Lényegében a derivált szorzatát jobbról zárójelezve halmozzuk fel f g h x

ҧ Automatikus differenciálás Tegyük fel, hogy egyszer kiszámoltuk az összes függvény értéket és letároltuk minden pontban: x = x h x = തh g h x = gҧ f g(h x + x ε) = f g(h(x)) + f g h x g h x h x x ε = ҧ f + f gҧ g തh h xҧ x ε f g h x fҧ gҧ തh xҧ

Automatikus differenciálás A deriváltban levő szorzatot ekkor felülről lefelé így is számolhatjuk: f g(h x + x ε) = f ҧ + f gҧ g തh h xҧ x ε f szintjén a derivált f a gҧ helyen g szintjén hozzájön szorzónak g deriváltja a തh helyen. h szintjén hozzájön szorzónak h deriváltja a xҧ helyen. x szintjén, hozzájön szorzónak x deriváltja, de az 1. f g h x fҧ gҧ തh xҧ

Automatikus differenciálás Mi van, ha elágazás van? f g(x + x ε), h y + y ε = f g, ҧ തh + df dg g, ҧ തh g ( x)x ҧ + df dh g, ҧ തh h (തy)y ε Összegezni kell az ágakra! f-nek két argumentuma van, lesz egy két tagú összeg df + df dg dh A g tagban jön szorzónak dg a x ҧ helyen. dx A h tagban jön szorzónak dh dy x-nél a szorzó 1. az തy helyen. g x gҧ xҧ f fҧ h തh y തy y-nál a szorzó 1.

Automatikus differenciálás Lényegében az, hogy a gráfban alulról felfelé, vagy felülről lefelé számolunk, ugyan azt az eredményt adja, mert csak átzárójelezzük a lánc szabály szorzatát df dg dg dp dp dx + df dh dh dq dq dy = f Alulról indulva Felülről indulva df dg df dg dg dp dp dg dp dx + df dh dp dx + df dh dh dq dh dq dq dy = dq dy g p x h q y

Automatikus differenciálás A költségek viszont egészen mások tudnak lenni (hányszor kell egy rész-függvény deriváltját előállítani) g f h Ha redukáló jellegű a kifejezés (sok tagból lesz kevés eredmény), akkor felülről célszerű indulni p x q y Fordítva (kevés adatból állítunk elő sok eredményt), akkor alulról célszerű indulni p q r s g h x

Automatikus differenciálás Ha nem valamelyik szélsőséges esetben vagyunk, akkor baj van: Kezdhetjük a szorzat építést akármelyik pontból és két irányban haladhatunk, de: A minimális költségű kiértékelési módszer megtalálása NP nehéz probléma... f g p h q x y p q r s g h x

Differenciálás Összefoglalva: Ha sok változó szerint kell deriválnunk, akkor az automatikus differenciálás módszere minimális költséggel megadja egy számítási gráf eredményeinek deriváltjait a paraméterek szerint. g p x f h q y p q r s g h x

Mihez kezdünk a deriváltakkal? Ezek numerikus értékek, elvileg fel tudunk írni belőlük egy egyenletrendszert, de nem tudjuk zárt eljárással megoldani (abban sem lehetünk biztosak, hogy létezik-e megoldás)

Mihez kezdünk a deriváltakkal? Ezek numerikus értékek, elvileg fel tudunk írni belőlük egy egyenletrendszert, de nem tudjuk zárt eljárással megoldani (abban sem lehetünk biztosak, hogy létezik-e megoldás) De iterálni mindig lehet...

Iteratív megoldás Emlékeztető: gradiens módszer 0 α 1 tanulási ráta w n+1 = w n α df dw w n f(w) df dw α df dw

Iteratív megoldás Emlékeztető: gradiens módszer Mi kell hozzá? w n+1 = w n α df dw w n Kezdő érték w 0 A derivált (ezt már megoldottuk) Megállási feltétel f(w) α df dw df dw

Gradiens módszer Problémák: Ha rosszul indítjuk el a módszert, nem talál megoldást Ha nem figyelünk a konvergenciára, nem mindig megy bele a minimumba Beragadhat lokális minimumba A minimum közelében nagyon lecsökkenhet a konvergencia sebessége (lapos minimum) Ha valahol nagy ugrás van a deriváltban (nem analitikus viselkedés), az nagyon elronthatja a konvergenciát... f(w) α df dw df dw

Gradiens módszer Hogy néz ez ki több változóra (w W, f F)? W n+1 = W n α df dw W n Azonban ne felejtsük el a kontextust: az F függvényünk lehet egy kompozíció, a végén egy költség függvénnyel, ami pl. egy összegzett eltérést fejez ki megfigyelt {X i, Y i } adatpontoktól: F = L Yi (M W (X i )) i

Gradiens módszer W n+1 = W n α N dlyi (M Wn (X i )) i dw Ez viszont azt jelenti, hogy ha N nagy, akkor nagyon költséges kiszámolni a teljes σ i d dw -t...

Gradiens módszer W n+1 = W n α N dlyi (M Wn (X i )) i dw Sőt, a helyzet rosszabb, sokszor a véges numerikus ábrázolás miatt a sokféle gradiens összegzésekor elveszik az az információ, hogy merre is a legjobb lépni a paraméterekkel.

Sztochasztikus gradiens módszer W n+1 = W n α n dlyi (M Wn (X i )) i dw A teljes felösszegzés helyett egy kisebb mintával közelíthetjük a deriváltat: n < N (batch) Ekkor a derivált csak egy sztochasztikus becslése lesz az igazi deriváltnak: Sztochasztikus Gradiens Módszer A továbbiakban ezt mindig odaértjük, ahol deriváltat írunk!

Momentum Gradiens módszer Egy másik változata a módszernek, amikor az előző változtatás nagyságát is figyelembe vesszük valamilyen súllyal: W n+1 = α n dl Yi M Wn X i i dw + β W n W n+1 = W n + W n

AdaGrad A jó konvergenciát sokszor segíti egy prekondícionáló használata, de ezt költséges lehet megkonstruálni. Az AdaGrad megpróbál becsülni egyet: df W n+1 = W n αq 1 dw W n Ahol Q = diag n t=0 df dw t df dw t Ez lényegében skálázza α-t a korábbi deriváltak nagysága szerint. További olvasnivaló: link, link

Root Mean Square Propagation Egy másik fajta prekondícionálás az alábbi: W n+1 = W n α df Q n,wn dw W n Q n,wn = βq n 1,Wn + 1 β df dw n 2 Minden egyes súlyra léptetünk egy skálázási faktort, ami csak 1 β faktorral változik a gradiens négyzetével arányosan.

Adam Az előzőek ötvözése: W n+1 = W n α Q n,wn P n,wn P n,wn = 1 1 β 1 β 1 P n 1,Wn + 1 β 1 df dw n Korábbi gradiensek átlaga Q n,wn = 1 2 df β 1 β 2 Q n 1,Wn + 1 β 2 2 dw n Korábbi gradiensek szórása Minden egyes súlyra léptetjük a korábbi gradiensek átlagának és szórásának egy becslését, és a szórást használjuk prekondícionálásra. Link

Gradiens módszerek Sok féle gradiens módszer változat létezik, nem könnyű előre megmondani, hogy adott problémára melyik lesz a legjobb Érdemes többet is kipróbálni, illetve a paramétereikkel játszani Egy részletesebb lista többféle módszerről: link

Függvény osztályok Mi legyen a modell függvényünk?

Függvény osztályok Az előző módszerekkel tehát tudunk optimalizálni függvény kompozíciókat. Vegyük azonban észre, ha a függvények mind lineárisak, akkor a teljes kompozíció is egy lineáris függvény lesz... f x = cx + d g x = ax + b f g(x) = ca x + (cb + d)

Függvény osztályok Tehát ahhoz, hogy nem lineáris függvényeket is le tudjunk írni, szükség van arra, hogy a kompozícióban legyen nemlinearitás is.

Függvény osztályok Tehát ahhoz, hogy nem lineáris függvényeket is le tudjunk írni, szükség van arra, hogy a kompozícióban legyen nemlinearitás is. Milyen nemlinearitás legyen?

Nemlinearitások Sok féle nemlinearitást ki lehet próbálni, néhány példa: Tanh: σ x = tanh(x) Szigmoid: σ x = 1 1+e x RELU: σ x = ቊ 0, x < 0 x, x 0 Továbbiak: link

Nemlinearitások Néhány szempont, ami számít: Folytonos, folytonosan differenciálható vagy sem 0 közelében lineáris-e, vagy sem Monotonitás a függvényre és a deriváltjára Olcsó legyen kiszámolni

Nemlinearis kompozíciók Érdekesebb azonban az Univerzális Approximációs tulajdonság: N f(x) i c i σ(a i x + b i ) < ε, x Azaz, pl. az előző nemlinearitások szuperpozíciójaként minden folytonos f(x) függvény tetszőlegesen pontosan közelíthető. Vö.: tavaly: Ortogonális függvényrendszerek Pl.: Cybenko, G. (1989) link

Nemlinearis kompozíciók A valóságban azonban azt tapasztaljuk, hogy minél több nemlinearitást komponálunk: N i x = σ i a i x + b i N 1 N 2 annál jobban működik a rendszer, azaz annál jobban tudja közelíteni a célfüggvényt. Ennek az elméleti magyarázata még nyitott kérdés.

Nemlinearis kompozíciók Miért lehet mégis hasznos? Egy illusztráció: Ha a sokparaméteres hálózatot úgy fogjuk fel, hogy egy magas dimenziós térben beágyazza az adatot, akkor több nemlinearitással több lehetősége van határfelületeket találni pl. klasszifikációhoz. Forrás: link

Neurális hálózatok

Neurális hálózatok Az előzőeket összerakva: A neurális háló egy differenciálható függvény kompozíció, ami nemlinearitásokat tartalmaz. A nemlinearitás azért fontos, hogy jól közelíthessünk általános függvényosztályokat. A differenciálhatóság azért fontos, hogy automatikus deriválással előállíthassuk a gradiens módszerhez szükséges deriváltakat és a módszer konvergáljon. Igazából ennél kevesebb is elég: nekünk csak egy eljárás kell minden elemhez a kompozícióban, hogy milyen járulékot írjunk a lánc szabály szorzatába.

Rétegek A neurális hálók kompozícióinak elemeit általában rétegeknek nevezik: Viszont a bemenet is réteg (input layer) és a kimenet is (output layer) a belső rétegekre a rejtett (hidden layer) elnevezést szokás használni

Rétegek A legáltalánosabb réteg a teljesen összefüggő (fully connected) réteg: f x = Ax + b Ahol A egy sűrű mátrix, b meg egy megfelelő méretű vektor. Ennek a hálózatnak a legnagyobb a kifejező ereje, de az N 2 paraméter nagyon költséges.

Rétegek Ha kevesebb paramétert akarunk és/vagy tudjuk, hogy valamilyen eltolás invariancia van a problémánkban, akkor célszerű konvolúciót használni: f x n = i w i x n+i + b Ahol w és b is vektor, w kevesebb elemű (tipikusan néhány), mint x, és f (és b) elemszáma x w. Az ehhez tartozó deriváltakat megfelelő index eltolással kell számolni: f x n x i = w i n f x i w i = x n+i

Rétegek Pooling (subsampling): Valamilyen módon összevonja a szomszédos adatokat, például maximum, átlag, medián, stb segítségével. A szerepe az, hogy csökkenti az utána jövő rétegek méretét (paraméter számát), illetve elősegíti a méret-függetlenség kifejezését Maximum esetén a deriváltat a következő képpen számolhatjuk: f f x = max x i, = ቊ 1, x j = max(x i ) x j 0, egyébként

Rétegek

Költségfüggvények Az utolsó réteg egy hálózatban a költségfüggvény, ami valahogy skálázza az eltéréseket az elvárt adatokhoz képest. Ennek nagy szerepe van. Egyszerű esetekben általában négyzet-összeget, vagy abszolút eltérést használhatunk, esetleg logaritmikus súlyozást használhatunk. De célfeladatokra vannak jól bevált költség függvények...

Költségfüggvények Ha a feladat klasszifikáció, azaz besorolás nem átfedő csoportokba, akkor a softmax-ot célszerű használni: Softmax R n R n f x 1,, x n i = ex i σ k e x k Ez egy normalizált összeg, ahol a végén σ i f i = 1, így lehet akár valószínűségi értelmezést is adni.

Költségfüggvények Ha egymástól független, de normált értékeket kell előállítani, akkor használatos a Cross-entropy: C = 1 N x Y ln y + 1 Y ln 1 y itt Y az ismert érték, y a háló kimenete, az összegzés a kimenetek számára (N) történik.

Feed forward networks Az eddigi hálózati elemek szűrő jellegűek: (feed forward network) A belső állapotot a paraméterek (W) jellemzik Ezek csak a tanítás során változnak, amikor használjuk a hálózatot, már nem, ezért a teljes rendszer egy szokványos tiszta függvényként tekinthető Másképp fogalmazva: nincs visszacsatolás a hálózatban, nincs hurok a számítási gráfban

Feed forward networks Ezek a hálózatok tipikusan a képfeldolgozási eljárásokban használatosak, ahol az adatokban nincs időszerűség

Rekurrens neurális hálózatok (RNN) Sokszor azonban fontos az időszerűség, pl. jósolni szeretnénk korábbi eseményekből a következőt. Ezek a hálózatok már tartalmaznak visszacsatolást és belső állapotot. A visszacsatolás miatt a számítási gráf már ciklikus Az időszerűség mellett nagy előnyük, hogy változó hosszúságú kimenetet is elő tudnak állítani.

Rekurrens neurális hálózatok (RNN) A rekurrens hálózatok leginkább az írott és beszélt szöveg feldolgozásban, fordításban, idősor jóslásban, vezérléstechnikában használatosak

Long short-term memory Az egyik legegyszerűbb építőelem a Long short-term memory (LSTM): Itt x a bemenet, h az előző kimenet, c a memória, σ a nemlineáris függvény C t = σ W f h t 1, x t + b f C t 1 + σ W i h t 1, x t + b i tanh W C h t 1, x t + b C h t = σ W o h t 1, x t + b o tanh(c t ) Olvasnivaló: link

Long short-term memory Az egyik legegyszerűbb építőelem a Long short-term memory (LSTM): Ez a rész azt szabályozza, hogy a régi kimenet és az új input mennyire változtassa meg a régi állapotot (mennyire felejtődjön el a korábbi memória). C t = σ W f h t 1, x t + b f C t 1 + σ W i h t 1, x t + b i tanh W C h t 1, x t + b C h t = σ W o h t 1, x t + b o tanh(c t ) Olvasnivaló: link

Long short-term memory Az egyik legegyszerűbb építőelem a Long short-term memory (LSTM): A másik vonalon az új memóriába írandó érték és annak a súlya állítódik be C t = σ W f h t 1, x t + b f C t 1 + σ W i h t 1, x t + b i tanh W C h t 1, x t + b C h t = σ W o h t 1, x t + b o tanh(c t ) Olvasnivaló: link

Long short-term memory Az egyik legegyszerűbb építőelem a Long short-term memory (LSTM): Végül a módosított memória és a beérkezett adatok függvényében előállítjuk az új kimenetet C t = σ W f h t 1, x t + b f C t 1 + σ W i h t 1, x t + b i tanh W C h t 1, x t + b C h t = σ W o h t 1, x t + b o tanh(c t ) Olvasnivaló: link

Long short-term memory Az LSTM, és általában a rekurrens hálók tanítása nem könnyű. Nem szeretnek tanulni: nehéz rávenni őket, hogy értékeket írjanak a belső állapotba, és gyakran ragaszkodnak ahhoz, hogy identitás függvényként viselkedjenek... A rekurrens hálózatokat általában kitekerik időben N lépésig, és így számolják a gradienseket és a tanítást.

Rekurzív hálók Egy másik érdekes struktúra a rekurzív neurális hálózat: Itt valamilyen gráfon ugyan azokkal a súlyokkal, de más léptékben történik ugyan az a művelet Ez akkor hasznos, ha fontosak a hierarchikus, ismétlődő struktúrák, a kompozícionalitás Például: Mondatelemzés, parafrázis detektálás Kép értelmezése, cimkézése

Tanítási módszerek Több féle tanítási metodológia létezik, amelyek általában más feladatokra működnek jól, vagy más célokat próbálnak elérni

Tanítási módszerek Három féle tanítási paradigmát szoktak megkülönböztetni Supervised learning (felügyelt tanítás, ebből indultunk ki) Adott sok bemenet kimenet pár, és ezzel tanítunk egy hálózatot, hogy közelítse a kívánt leképezést (függvényt) Reinforcement learning (megerősítéses tanítás) Nincs adat, a háló (ágens) állapot átmenetek közül választhat, és az egyetlen visszajelzés az, hogy jutalmat/büntetést kap, ha jó átmenetet választott, vagy elért egy kívánt állapotot (hibánál büntetést nem kap, a jutalom akár nagyon ritkán is jöhet). Unsupervised learning Nincs felcimkézett adat, nem lehet mérni a hibát, az optimalizáció a statisztikai momentumok hasonlóságán alapul

Reinforcement Learning technikák Monte-Carlo Tree Search Tipikusan játékok döntési sorozatának bejárása (pl. táblajátékok: go, vagy video játékok: PacMan) Q-learning Egy Q State Action Reward függvényt tanul meg, iterációval: Q n+1 = 1 α Q n s n, a n + α r n + γ max a Q n+1 s n+1, a A Google Deep Mind ezzel játszik Atari játékokat Előző állapot Pillanatnyi jutalom Következő állapot becslése Várható jutalom ellensúlya 83

Unsupervised learning technikák Autoencoder-decoder hálózat A háló először betömöríti a bemenetét, majd vissza kell alakítania a kimenetén a bemenetet, a közbülső rétegben ekkor előáll a tömörített forma, ami kicsatolható. Backprop-al tanítható Sparse AE (jutalom a ritkaságért) Variációs AE (adott eloszlás tanulása Bayes módszerrel) Pl. ha középen csak két változó van, akkor az egy 2D-s beágyazást állít elő: 84

Unsupervised learning technikák Generative Adversarial hálózatok Két háló verseng (zero sum game), az egyiknek elő kell állítania egy adatot, a másiknak egy ilyen, és egy adott valódi adathalmazból jövő random mintáról meg kell mondania, hogy valódi, vagy generált. Ha elég okos tud lenni a felismerő fél, akkor nagyon jó generátort lehet tanítani, relatíve kicsi adathalmazzal. Példák: 3D rekonstrukció 2D képből, viselkedés jóslás Egy generált festmény: 85

Unsupervised learning technikák Generative Adversarial hálózatok További példák 86

Nehézségek Annak ellenére, hogy számos alkalmazásban nagyon jól teljesítenek a bemutatott hálózatok, vannak problémák, amikbe könnyű belefutni

Nehézségek Súlyok inicializálása: Részben az előző problémának a továbbvetülése, mert több esetben sikerült megmutatni, hogy a megfelelő inicializációval sokkal gyorsabb tud lenni a konvergencia, elkerülhető a gradiensek eltűnése. Érdemes adott probléma, vagy hálózat architektúra esetén megnézni, hogy van-e ajánlott inicializálási módszer.

Nehézségek Súlyok inicializálása: Például, a lineáris transzformációban résztvevő súlyokat célszerű a Xavier módszerrel inicializálni, azaz olyan Gauss eloszlású értékekkel, amelyek átlaga nulla, szórása pedig: vagy Var W = 1 n in Var W = 2 n in + n out Olvasnivaló: link, link ahol n in a bejövő értékek, n out a kimenő értékek száma.

Nehézségek Gradiensek eltűnése: Ha elég sok réteget rakunk egymás után, akkor a nemlinearitások halmozódása gondot jelenthet, főleg akkor, ha szigmoid alakúak: A lánc szabályban felhalmozódó deriváltak nagyon kicsik, ha több rétegben is a szigmoid széle felé kerül az aktuális érték. Ez sok réteg esetén azt eredményezheti, hogy nagyon belassul a tanítás, esetleg teljesen meg is áll. A RELU esetén ez nem probléma, de nem minden feladathoz jó a RELU, mert negatív értékekre nem terjeszt vissza hibát

Nehézségek Tanítás problémái: A rendszer nem tanul pl. véletlenül rosszul sikerült az inicializáció, beragadt az optimizer,... A rendszer túltanul (overfitting) akkor szokott lenni, ha a hálónak sokkal több szabadsági foka van, mint a tanító adathalmaz és a háló elkezd a tanítóhalmaz sajátosságaira specializálódni

Nehézségek Tanítás problémái: A rendszer látszólag jól tanul (csökken a költség fv), de mégsem jó az eredmény Tipikusan 3 halmazzal szokás dolgozni, amelyek diszjunktak: Az első a tanítóhalmaz, ami alapján optimalizáljuk a súlyokat A második a validációs halmaz, ahol ellenőrizzük, hogy tud-e a háló általánosítani a tanítóhalmazon kívülre, és nem történt-e túltanulás A harmadik halmaz a teszt halmaz, ahol valójában mérünk metrikákat, hogy mennyire jól teljesít a hálózat

Nehézségek Tanítás problémái: Túltanulás: A tanítóhalmazon (kék) csökken a költségfüggvény, de a validációs halmazon (piros) nő! A rendszer nem általánosít, csak megjegyzi a tanítóhalmazt.

Tanítás Egy jól működő tanítás, kb. így fest: A tanító és a teszt halmazon is csökken a hiba, és kb. azonos nagyságrendűek.

Tanítás után Betanítottunk sikeresen egy hálót 1 millió paraméterrel. De vajon mindre szükség van? Példák Pruning: A hálók paramétereinek nagy része nagyon kicsi, közel nulla. Szisztematikus explicit kinullázással és újratanítással akár 75-90%-a a paramétereknek kiküszöbölhető jelentős minőségi romlás nélkül.

Tanítás után Mennyire megbízható a háló? Nem tudni... Rosszindulatú támadások: A tanítóhalmaz és a háló ismeretében könnyen konstruálható olyan bemenet, ami Az ember számára teljesen megkülönböztethetetlen a tanítóhalmaz egy elemétől, de a háló nagyon magabiztosan félreklasszifikálja Vagy olyan elemeket tartalmaz, amit az ember zajnak ítél, de a háló számára kulcsfontosságú azonosító elem. Forrás

Szoftveres rendszerek Ha valaki el akar kezdeni neurális hálókkal ismerkedni, számos nagy keretrendszer érhető el, amelyek magas szintű, technikai részletektől mentesen teszik elérhetővé ezeket a módszereket. Néhány példa: Tensorflow PyTorch MxNet Theano, Caffe (elavultak, nem fejlesztik tovább)