Deep Learning: Mélyhálós Tanulás

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

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

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

A kibontakozó új hajtóerő a mesterséges intelligencia

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

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

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

Google Summer of Code Project

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

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

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

Bevezetés a mesterséges intelligencia mély tanulás eszközrendszerébe

Neurális hálózatok bemutató

I. LABOR -Mesterséges neuron

Modellkiválasztás és struktúrák tanulása

Intelligens orvosi műszerek VIMIA023

Deep learning. bevezetés

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

Gépi tanulás Gregorics Tibor Mesterséges intelligencia

NEURONHÁLÓK ÉS TANÍTÁSUK A BACKPROPAGATION ALGORITMUSSAL. A tananyag az EFOP pályázat támogatásával készült.

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

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

KONVOLÚCIÓS NEURONHÁLÓK. A tananyag az EFOP pályázat támogatásával készült.

Babeş Bolyai Tudományegyetem, Kolozsvár Matematika és Informatika Kar Magyar Matematika és Informatika Intézet

Konjugált gradiens módszer

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

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

Aradi Bernadett. 2017/18 ősz. TensorFlow konvolúciós hálózatokhoz 2017/18 ősz 1 / 11

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

Mély neuronhálók alkalmazása és optimalizálása

Deep Learning a gyakorlatban Python és LUA alapon Hogyan tovább?

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

Lineáris regressziós modellek 1

Teljesen elosztott adatbányászat alprojekt

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

Deep Learning a gyakorlatban Python és LUA alapon Bevezetés

Mély neuronhálók az akusztikus modellezésben

Informatikai Kar Eötvös Loránd Tudományegyetem Mesterséges neuronhálók

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

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

Az idegrendszeri memória modelljei

Osztályozási feladatok képdiagnosztikában. Orvosi képdiagnosztikai 2017 ősz

Tanulás az idegrendszerben

ACM Snake. Orvosi képdiagnosztika 11. előadás első fele

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Mesterséges neurális hálózatok II. - A felügyelt tanítás paraméterei, gyorsító megoldásai - Versengéses tanulás

Neurális hálózatok.... a gyakorlatban

Új eredmények a mély neuronhálós magyar nyelvű beszédfelismerésben

Kernel gépek vizsgálata

Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.

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

Hibadetektáló rendszer légtechnikai berendezések számára

Gépi tanulás a gyakorlatban. Bevezetés

Gépi tanulás. Hány tanítómintára van szükség? VKH. Pataki Béla (Bolgár Bence)

1. gyakorlat. Mesterséges Intelligencia 2.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

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

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

PIXEL SZINTŰ SZEGMENTÁLÁS CNN-EL

Bevezetés a neurális számításokba Analóg processzortömbök,

Mesterséges Intelligencia Elektronikus Almanach. MI Almanach projektismertetı rendezvény április 29., BME, I. ép., IB.017., 9h-12h.

Gépi tanulás. Féligellenőrzött tanulás. Pataki Béla (Bolgár Bence)

Statisztikai következtetések Nemlineáris regresszió Feladatok Vége

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

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

Optimalizálási eljárások GYAKORLAT, MSc hallgatók számára. Analízis R d -ben

Support Vector Machines

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

Takács Árpád K+F irányok

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

NEURÁLIS HÁLÓZATOK 1. eloadás 1

Dr. Schuster György február / 32

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

E x μ x μ K I. és 1. osztály. pontokként), valamint a bayesi döntést megvalósító szeparáló görbét (kék egyenes)

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

OpenCL - The open standard for parallel programming of heterogeneous systems

"A tízezer mérföldes utazás is egyetlen lépéssel kezdődik."

Mátrixhatvány-vektor szorzatok hatékony számítása

III.6. MAP REDUCE ELVŰ ELOSZTOTT FELDOLGOZÁSI ALGORITMUSOK ÉS TESZTKÖRNYEZET KIDOLGOZÁSA ADATBÁNYÁSZATI FELADATOK VÉGREHAJTÁSÁHOZ

BEKE ANDRÁS, FONETIKAI OSZTÁLY BESZÉDVIZSGÁLATOK GYAKORLATI ALKALMAZÁSA

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

Megerősítéses tanulás

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Stratégiák tanulása az agyban

Társadalmi és gazdasági hálózatok modellezése

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Bodó / Csató / Gaskó / Sulyok / Simon október 9. Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár

Páros összehasonlítás mátrixokból számolt súlyvektorok Pareto-optimalitása

Magas szintű optimalizálás

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Intelligens adatelemzés

Az idegrendszeri memória modelljei

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

Neurális hálók tanítása során alkalmazott optimalizáció

Szemidenit optimalizálás és az S-lemma

Számítógép és programozás 2

PONTFELHŐ REGISZTRÁCIÓ

Statisztikai eljárások a mintafelismerésben és a gépi tanulásban

Deep learning szoftverek

Átírás:

Deep Learning Deep Learning: Mélyhálós Tanulás Mesterséges Neuronhálók 2015 o sz Milacski Zoltán Ádám srph25@gmail.com http://milacski.web.elte.hu ELTE Informatika Doktori Iskola 2015-09-21

Deep Learning anyagok Szoftverek: NVIDIA Digits (web, NVIDIA): http://developer.nvidia.com/digits Caffe (command line/python/matlab, UC Berkeley): http://caffe.berkeleyvision.org/ torch (Lua/Python/MATLAB, NYU): http://torch.ch/ theano (Python, Université de Montréal): http://deeplearning.net/software/theano/ Ingyenes online kurzusok: NVIDIA Deep Learning Course (Jon Barker, NVIDIA): http://developer.nvidia.com/deep-learning-courses Neural Networks for Machine Learning (Geoffrey Hinton, University of Toronto): http://www.coursera.org/course/neuralnets Convolutional Neural Networks for Visual Recognition (Andrej Karpathy, Stanford): http://cs231n.github.io/ Machine Learning (Andrew Ng, Stanford): http://www.coursera.org/learn/machine-learning Tudományos cikkek: Yann LeCun, Joshua Bengio, Geoffrey Hinton, Ilya Sutskever, Christian Szegedy, Alex Krizhevsky, Andrew Ng, Quoc Le, Vincent Vanhoucke, Diederik Kingma és még sokan mások... http://scholar.google.com

Deep Learning Deep Learning 1. Legnépszeru bb MI megközelítés napjainkban: aktív kutatási terület, legnagyobb cégek használják adatelemzésre (Google, Facebook, Microsoft, Netflix, Baidu, IBM). Sok sikeres alkalmazás: rekordokat döntöget (ImageNet: 25% 5% hiba) de még spam-szu rés, arcfelismerés, Xbox Kinect, Q-learning... Zavarba ejto en párhuzamosítható feladat: mátrix-vektor mu veletek, GPU gyorsítás (olcsó és takarékos szuperszámítógép). Egyszeri lassú betanítás, utána gyors predikció (betanított modell hatékonyan telepítheto beágyazott rendszerekre, mobiltelefonokra). Az elmúlt években alapjaiban do ltek meg Machine Learning tézisek: Klasszikus Machine Learning: feature extrakció és kernel kézzel, tanuljunk súlyozást (pl. SVM, HMM, klaszterezés, LDA). Konvex optimalizáció: rengeteg tétel, pl. garantált globális megoldás. Deep Learning: vegyünk sok mintát és sok paramétert, tanuljuk meg a feature-öket is az adatokból! Ero sen nem konvex feladat: nagyon kevés elméleti garancia, sok mintával és kello hardverrel mégis jobban általánosít...

Deep Learning Deep Learning 2. Inceptionism: felho k formája és képzelgés, valamire tanítva, máson tesztelve (becsaphatóság kiaknázása) = Festés stílus másolás: B=Turner, C=van Gogh, D=Munch, E=Picasso, F=Kandinsky

Deep Learning 3. input output nemlineáris leképezést tanulunk sok (input,output) párból: minden input vektor feature-ökből áll: x i R n, i = 1,..., N, minden output vektor címkékből áll: y i R m, i = 1,..., N, a leképezés paraméterekből áll: f θ : R n R m, θ R p, a leképezés vektoros adatokból címkét próbál jósolni: f θ (x) y. Cél: előre adott paraméteres leképezés-családból kiválasztani a legjobbat, ami megold valamilyen feladatot (úgy beállítani a θ értékeket, hogy minimalizáljunk egy l : R m R m R + hibát a jósolt és a tényleges címkék között). Osztályozás: y Z m, Regresszió: y R m, Rekonstrukció: y = x, f θ id. Matematikailag: (x i, y i ) N i=1 = min θ 1 N N i=1 l(f θ(x i ), y i ). Túltanulás kikerülendő: még nem látott (x, y) párokra is kicsi legyen az l(f θ (x), y) hiba. Aktivációs függvény: g(z) = max(0, z) ReLU függvény. Neuron: f w,b (x) = g(w T x + b) = g( n i=1 w i x i + b), Neuronréteg: f W,b (x) = g(w x + b), Neuronháló: f W 1,...,W k,b 1,...,b k (x) = g k (W k g 2 (W 2 g 1 (W 1 x + b 1 ) + b 2 ) + b k ).

Deep Learning 4. Neuronháló: f W 1,...,W k,b 1,...,b k (x) = g k (W k g 2 (W 2 g 1 (W 1 x + b 1 ) + b 2 ) + b k ). A feature-ök hierarchiába rendeződnek: a mélyebb rétegek egyre magasabb szintű feature-öket tartalmaznak, és mindig az előző réteg feature-eit kombinálják össze. Előnyök: Nem kell előzetesen manuálisan feature-öket létrehozni. Általános architektúra: sokféle feladatra és adattípusra jó. Sok mintával (N 100000), GPU-val (NVIDIA CUDA/cuBLAS), új módszerekkel (pl. ReLU, Adam, pretraining, dropout) jól működik. Transfer Learning: más által nagy adatbázison betanított háló letölthető és adaptálható saját kicsi adatbázishoz. Geoffrey Hinton: "nagyjából így működik az emberi agy, tökéletlen modell is lehet hasznos és tanulságos".

Optimalizáció Hogyan találhatunk jó θ = {W 1,..., W k, b 1,..., b k } paramétereket? Gradiens-módszerrel (iteratívan)! Hiba: l(f θ (x), y) kettes norma közelítés: 1 2 y f θ(x) 2 2, egyes norma közelítés: y f θ (x) 1. Összhiba: [ ] 1 N L(θ) = l(f θ (x i ), y N i ). i=1 Gradiens-módszer: a negatív gradiens ( L(θ) ) mindig a lokális minimum felé θ mutat, lépjünk egy kicsit ebbe az irányba! L(θ) θ t+1 = θ t α t. θ θ=θt 2 kérdés: x i inputok skálázása? L(θ) θ gradiens kiszámítása? (véges differenciával való numerikus közelítés pontatlan) α t lépésköz beállítása? (ne lépjünk se nem túl kicsit, se nem túl nagyot)

Gradiens-módszer 1. Gradiens-módszer: θ t+1 = θ t α t L(θ) θ, θ = {W 1,..., W k, b 1,..., b k }. θ=θt x i inputok skálázása: ha a feature-ök különböző skálákon mozognak, de azonos súllyal szeretnénk figyelembe venni őket (szinte mindig igaz), feature-önként standard normalizáljuk az inputokat: µ = 1 N x i, σ = 1 N (x i µ) 2, N N 1 i=1 i=1 x i x i µ σ.

Gradiens-módszer 2. Gradiens-módszer: θ t+1 = θ t α t L(θ) θ L(θ) θ Legyen X = [x 1,..., x N ], Y = [y 1,..., y N ], g j, θ = {W 1,..., W k, b 1,..., b k }. θ=θt gradiens kiszámítása: láncszabállyal, dinamikus programozással. g(h) (h) = h, l (z, y) = l(z,y). z function PROP(X, Y, W 1,..., W k, b 1,..., b k, g 1,..., g k, g 1,..., g k, l, l ) // ForwardPropagation Z 0 = X for j = 1,..., k do H j = W j Z j 1 + [b j,..., b j ] Z j = g j (H j ) end for L = 1 N N i=1 l(z k,,i, Y,i ) // BackPropagation Z k = 1 N [l (Z k,,1, Y,1 ),..., l (Z k,,n, Y,N )] for j = k,..., 1 do H j = g j (H j ) Z j // itt az elemenkénti szorzás Z j 1 = W T j H j b j = N i=1 H j,,i W j = H j Z T j 1 end for return Z k, L, W 1,..., W k, b 1,..., b k end function

Gradiens-módszer 3. Gradiens-módszer: θ t+1 = θ t α t L(θ) θ, θ = {W 1,..., W k, b 1,..., b k }. θ=θt α t lépésköz beállítása: Adam algoritmus. function ADAM(α, β 1, β 2, ε, X, Y, θ 0, g 1,..., g k, g 1,..., g k, l, l ) M 0 = 0, V 0 = 0 for t = 0, 1,..., T 1 do [Z k, L, θ]=prop(x, Y, θ t, g 1,..., g k, g 1,..., g k, l, l ) M t+1 = β 1 M t + (1 β 1 ) θ // Gradiens mozgóátlaga V t+1 = β 2 V t + (1 β 2 ) θ 2 // Gradiens négyzet mozgóátlaga θ t+1 = θ t α M t+1 1 β t+1 1 V t+1 1 β t+1 +ε 2 // Paraméterek frissítése end for return θ T end function Tipikus beállítás: α = 0.001, β 1 = 0.9, β 2 = 0.999, ε = 10 8. θ 0 kezdőpont: ReLU függvény esetén W j N (0, 0.001 2 ), b j = 0.01. Leállási feltétel: θ 2 < 10 4 (közelítőleg lokális szélsőérték). Minibatch: minden lépésben a minták egy részhalmazával számolunk (csökkentett memóriaigény, több kicsi iteráció, gyorsabb konvergencia, mintákban párhuzamosítható GPU-val). Ekkor célszerű a negatív gradiens iránya helyett a negatív gradiensek mozgóátlagának irányába lépni (momentum).

Regularizáció Regularizáció: R(θ), plusz költség tag túltanulás ellen (nem engedi, hogy θ elemei nagyok legyenek, egyszerűsíti a modellt, jobban általánosít). Összhiba regularizációval (λ > 0: két költség trade-off-ja): [ ] 1 N L(θ) = l(f θ (x i ), y N i ) + λr(θ) i=1 Kettes norma regularizáció: R(θ) = 1 2 θ 2 2, Egyes norma regularizáció: R(θ) = θ 1. Dropout: exponenciálisan sok háló összekombinálása, tanításkor p = 0.5 valószínűséggel aktív minden neuron (input rétegre p = 0.8), teszteléskor p-vel szorzandó minden aktivitás. Jó implementáció: inverted dropout.

Greedy Layer-wise Pretraining Előtanítás: címkék nélküli (felügyeletlen) rekonstrukció, mohó módon, rétegenként. Utána szokásos felügyelt (finom)hangolás címkékkel. Lassú, de gyakran jobb θ 0 kezdőpontot ad. Kis adatbázisoknál segít a legtöbbet! Esetleg ha sok címke nélküli tanítópéldánk van... Manapság csökken a jelentősége, de a jövőben még nagyobb hálók esetén újra szükség lehet rá...

Hiperparaméterek Egy mély hálónak sok hiperparamétere van: rétegek száma k, rétegek méretei, regularizáció λ, Adam α, β 1, β 2, ε, dropout p, de akár még aktivációs és költségfüggvények is... Hogyan állítsuk be ezeket? Kereszt-validáció: bontsuk az adatbázist 80% tanító + 10% validáció + 10% teszt részekre. Tanítón sok kombinációt próbáljunk ki, validáción mérjük ki a legjobbat. A legjobb kombinációval tanítsunk újra tanító+validáción és teszten használjuk ezt! Majd válasszuk újra a halmazokat, és átlagoljuk az eredményt. Bayesian optimization: Megerősítéses Tanulás (RL) szerű iteratív eljárás, próba-szerencse alapon oldja fel az exploráció-exploitációs dilemmát. Gauss-folyamatokat használ. Megtanulja a helyes skálázást a változókban. Sokkal jobb, mint a manuális próbálgatás (pontosan emlészik és értékel ki sok kombinációt). Spearmint (Python/MATLAB): http://github.com/hips/spearmint Hyperopt (Python): http://github.com/hyperopt/hyperopt BayesOpt (C/C++/Python/MATLAB): http://rmcantin.bitbucket.org/html/

Speciális neuronhálók Az alapvető neuronhálós tudást lefedik az előző diák, speciális hálók azonban mind igényelnek további trükköket. Feedforward háló (FNN): ezt láttuk részletesen az előző diákon. Konvolúciós háló (CNN): mátrixszorzások helyett konvolúciók (kevesebb változó, kisebb feladatméret). Rekurrens háló (RNN): idősorok (dinamika). Autoencoder: rekonstrukció, feature tanulás, előtanítás, klaszterezés. Hopfield háló: tartalom-címzett memória, robusztus, bináris aktivitások, irányítatlan élek a gráfban. Ma már nem használják, történelmi okokból fontos. Boltzmann háló (RBM): ma már nem használják, történelmi okokból fontos.

A terület jövője 2016: NVIDIA Pascal architektúra Újabb nagy ugrást jelenthet... Most még nem késő belekezdeni. 32 GB RAM: nagyobb minibatch-ek, kevesebb másolási művelet. NVLink interfész: PCI Express-hez képest sokkal nagyobb sávszélesség. Vegyes-pontosságú számítások: számolás double-ben, tárolás float-ban. CUDA Toolkit: folyamatos szoftveres fejlődés (7.5: ritka mátrixok) Nehéz megmondani, hogy mi lesz a neuronhálók jövője, de: a meglévő módszereket tovább fogják tökéletesíteni, adat és hardverkapacitás is csak egyre több lesz, egyre több helyen fognak megjelenni a hétköznapokban, sok szép meglepő eredményt fognak produkálni az elkövetkezendő években...

Köszönöm a figyelmet! Köszönöm a figyelmet! Ez a diasor Jon Barker, Geoffrey Hinton, Andrej Karpathy anyagai; Diederik Kingma, Leon Gatys, Nitish Srivastava cikkei, Ilya Sutskever disszertációja és Yifei Teng, Alexander Mordvintsev (Google Research) blogjai alapján készült. Az algoritmusok és az ábrák a fenti cégek és szerzők szellemi tulajdonát képezik.