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

Hasonló dokumentumok
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

Mély konvolúciós neurális hálózatok. Hadházi Dániel BME IE 338

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

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

Deep learning. bevezetés

Intelligens orvosi műszerek VIMIA023

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

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

Deep Learning a gyakorlatban Python és LUA alapon Tanítás: alap tippek és trükkö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

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

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

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

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

Deep Learning a gyakorlatban Python és LUA alapon Felhasználói viselkedés modellezés

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

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

3. Szűrés képtérben. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Modellezés és szimuláció. Szatmári József SZTE Természeti Földrajzi és Geoinformatikai 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

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

PIXEL SZINTŰ SZEGMENTÁLÁS CNN-EL

Valósidejű objektumkövetés mély tanulás segítségével

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

Mélytanulási módszerek az orvosi képalkotó diagnosztikában

KÁRTÉKONY NÖVÉNYEK AZONOSÍTÁSA

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

Neurális hálózatok bemutató

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

Deep learning szoftverek

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

Google Summer of Code Project

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

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

Megerősítéses tanulás

I. LABOR -Mesterséges neuron

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

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

[1000 ; 0] 7 [1000 ; 3000]

1. óra Digitális képfeldolgozás

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

Kovács Ernő 1, Füvesi Viktor 2

Osztályozás képdiagnosztikánál

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

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

A RADARJELEK DETEKTÁLÁSA NEURÁLIS HÁLÓZAT ALKALMAZÁSÁVAL

Aleksziev Rita Antónia Alkalmazott matematikus MSc. Transzformációtanulás 2 dimenziós képeken

Intelligens Rendszerek Elmélete

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

TERMÉSZETTUDOMÁNYI KAR. Kalocsai Bálint. SZAKDOLGOZAT Matematika BSc, Matematikai elemző szakirány BUDAPEST, 2019.

TDK dolgozat. Fehér Árpád, járműmérnöki (MSc) Dr. Aradi Szilárd, egyetemi adjunktus november

Biológiai és mesterséges neurális hálózatok

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

Tanulás az idegrendszerben

Többsávos, zajtűrő beszédfelismerés mély neuronhálóval

Adversarial tanítás neurális hálózatokban

II. LABOR Tanulás, Perceptron, Adaline

Stratégiák tanulása az agyban

CARE. Biztonságos. otthonok idős embereknek CARE. Biztonságos otthonok idős embereknek Dr. Vajda Ferenc Egyetemi docens

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

QGIS gyakorló. --tulajdonságok--stílus fül--széthúzás a terjedelemre).

IV.7 MÓDSZER KIDOLGOZÁSA FELHASZNÁLÓI ADATOK VÉDELMÉRE MOBIL ALKALMAZÁSOK ESETÉN

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

1. Egy lineáris hálózatot mikor nevezhetünk rezisztív hálózatnak és mikor dinamikus hálózatnak?

Gépi tanulás a Rapidminer programmal. Stubendek Attila

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

Generáljunk először is mintákat a függvényből. Ezzel fogunk majd később tanítani.

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

Idősor előrejelzés. Szórádi Júlia, BSc konzulens: Dr. Horváth Gábor. Önálló laboratórium (BMEVIMIA362) II. félév

Fuzzy rendszerek és neurális hálózatok alkalmazása a diagnosztikában

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

LED DRIVER 6. 6 csatornás 12-24V-os LED meghajtó. (RDM Kompatibilis) Kezelési útmutató

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)

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

Számítógépes Hálózatok. 7. gyakorlat

Jelfeldolgozás - ANTAL Margit. impulzusválasz. tulajdonságai. Rendszerek. ANTAL Margit. Sapientia - Erdélyi Magyar Tudományegyetem

Definíciószerűen az átlagidő a kötvény hátralévő pénzáramlásainak, a pénzáramlás jelenértékével súlyozott átlagos futamideje. A duration képlete:

A neurális hálózatok alapjai

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.

Mérési útmutató. Széchenyi István Egyetem Távközlési Tanszék. SDR rendszer vizsgálata. Labor gyakorlat 1 (NGB_TA009_1) laboratóriumi gyakorlathoz

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

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

TARTALOMJEGYZÉK. TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS A lágy számításról A könyv célkitűzése és felépítése...

Szögi Viktória Rózsa. Szövegfeldolgozás gépi tanulási módszerekkel. Szakdolgozat. Témavezető: Lukács András

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

Szabó Attila Dániel. Valósidejű intrúder felismerés UAV környezetben

Rendszámfelismerő rendszerek

Operációs rendszerek 1.

AKTUÁTOR MODELLEK KIVÁLASZTÁSA ÉS OBJEKTÍV ÖSSZEHASONLÍTÁSA

Digitális hangszintmérő

A médiatechnológia alapjai

EÖTVÖS LORÁND TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR. Objektum felismerés gépi tanulási módszereinek vizsgálata

Elektronika 2. TFBE1302

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

Hatékony konvolúciós neurális hálózat tervezése osztályozási problémákra

Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel. dr. Siki Zoltán

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

A MESTERSÉGES NEURONHÁLÓZATOK BEVEZETÉSE AZ OKTATÁSBA A GAMF-ON

2. Gyakorlat Khoros Cantata

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

Átírás:

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

Konvolúció Jelfeldolgozásban: Diszkrét jelek esetén diszkrét konvolúció: Képfeldolgozásban 2D konvolúció (szűrők):

Konvolúciós neurális hálózat Konvolúciós réteg Kép, pl.: 32*32*3 (sorok, oszlopok, csatornák (RGB)) Konvolúciós ablak (szűrő), pl.: 5*5*3 32 32 5 3 5 Konvolváljuk a képet a szűrővel: húzzuk végig a kép minden részén, és számoljuk ki az adott résszel a konvolúciót (skalárszorzatot). 3 A szűrő mindig a bemenet összes csatornájára értelmezett, azonos a mélységük

Konvolúciós neurális hálózat Konvolúciós réteg 5 5*5*3-as szűrő, w 32 5 3 A konvolúció ererdménye egy skalár: a skaláris szorzata a kép adott részének, és a szűrőnek. 32 3

Konvolúciós neurális hálózat Konvolúciós réteg Eredmény: aktivációs térkép 5*5*3-as szűrő, w 5 5 32 3 3 Az összes lehetséges helyen kiszámolva 32 28 1 28

Konvolúciós neurális hálózat Konvolúciós réteg Legyen több 5*5*3-as szűrő is: w1, w2 aktivációs térképek 32 28 3 32 2 28

Konvolúciós neurális hálózat Konvolúciós réteg Legyen több 5*5*3-as szűrő is: w1, w2 aktivációs térképek 32 28 3 32 2 28

Konvolúciós neurális hálózat Konvolúciós réteg Az aktivációs térképeket egymásra rakjuk, mint az RGB csatornákat. aktivációs térképek Pl. 32*32*3-as kép, 6 db 5x5-ös szűrő kimenete 28x28x6 32 28 3 32 6 28 A konvolúció egy lineáris művelet: az aktivációs térképre alkalmazunk valamilyen nemlinearitást is.

Konvolúciós neurális hálózat Konvolúciós rétegekből álló hálózat: előző kimeneti térfogat a következő bemenete 28 26... 32 32 6 5x5x3 konvolúció, ReLU 28 10 3x3x6 konvolúció, ReLU 10 26 K NxNx10 konvolúció, ReLU 3 6

A szűrők, mint tulajdonság-érzékelők

A konvolúció közelebbről 7x7-es kép 3x3-as szűrő Aktivációs térkép 5x5 lesz.

Lépésköz (stride) 7x7-es kép 3x3-as szűrő Ne egyesével, hanem pl.: kettesével léptessük a szűrőt! Aktivációs térkép 3x3 lesz. Kérdés: hármasával léptetve mekkora lesz az aktivációs térkép?

Lépésköz (stride) N F Kérdés: hármasával léptetve mekkora lesz az aktivációs térkép? F? Semekkora! Nem illenek össze! Kimenet mérete: (N - F) / stride + 1 N

Padding Probléma: a kimenetek térbeli mérete egyre csak csökken! Megoldás: párnázzuk ki 0-val a bemenetet. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7x7-es kép 3x3-as szűrő 1-es lépésköz 1 padding Aktivációs térkép 7x7 lesz. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Konvolúciós réteg összefoglalás Bemenet: W 1 * H 1 * D 1 Szűrők száma: K Szűrők mérete: F Lépésköz: S Padding: P Szűrő paramétereinek száma: F*F*D 1 +1 (bias) A réteg összes paraméterének száma: K*F*F*D 1 + K Kimenete W 2 * H 2 * D 2, ahol: W 2 = (W 1 - F + 2P) / S + 1 H 2 = (H 1 - F + 2P) / S + 1 D 2 = K

Konvolúciós réteg összefoglalás Bemenet: W 1 * H 1 * D 1 Szűrők száma: K Szűrők mérete: F Lépésköz: S Padding: P Kimenete W 2 * H 2 * D 2, ahol: W 2 = (W 1 - F + 2P) / S + 1 H 2 = (H 1 - F + 2P) / S + 1 D 2 = K Attól függ, hogy az asszimetrikus paddinget hogyan jelöljük (0.5) Szűrő paramétereinek száma: F*F*D 1 +1 (bias) A réteg összes paraméterének száma: K*F*F*D 1 + K Gyakran kettő hatvány (32,64, 512, ) Általában 3*3, néha 5*5, esetleg 1*1 Általában 1 vagy 2. Általában szokott lenni, hogy ne változzon a kimenet mérete

Összevonó réteg (pooling layer) Csökkenti a reprezentáció méretét, így kezelhetőbbé téve azt Minden aktivációs térképen a többitől függetlenül működik MAX pooling, average pooling

MAX pooling, average pooling 1 2 2 4 6 3 0 2 2 * 2 max pooling, 2-es lépésközzel 6 4 4 5 Értelmezés: van -e valahol az ablakon belül az adott jellemző? Pontos helye nem számít. 1 4 5 4 2 1 2 3 2 * 2 average pooling, 2-es lépésközzel 3 2 2 3.5 Értelmezés: az ablakon belül mennyire van jelen átlagosan az adott jellemző?

Összevonó réteg Bemenet: W 1 * H 1 * D 1 Mérete: F Lépésköz: S Kimenete W 2 * H 2 * D 2, ahol: W 2 = (W 1 - F) / S + 1 H 2 = (H 1 - F) / S + 1 D 2 = D 1 Nem visz új paramétert a hálózatba, mert egy rögzített függvényt számol Tipikusan 2 vagy 3 Gyakorlatilag mindig 2

Teljesen összekötött réteg (fully connected, FC) A bemeneti térfogat minden eleme össze van kötve a FC réteg minden neuronjával, mint egy klasszikus MLP-ben. Tipikusan utolsó réteg(ek)ként szokás használni CNN-ben: a konvolúciós rétegek a jellemzők kiemelését végzik, a FC rétegek pedig pl. az osztályozást.

Upconvolution Probléma: A konvolúciós réteg tipikusan változatlanul hagyja, vagy csökkenti a reprezentáció térbeli méretét. Bizonyos alkalmazásokban szükséges a reprezentáció térbeli növelése (upsampling) A módszer azonos azzal, ahogy a visszaterjesztés fázisban a gradienssel számolunk Elnevezése még nem egységes convolution transpose backward strided convolution 1/2 strided convolution deconvolution

Upconvolution A paddingre eső részt eldobjuk 3 * 3 upconvolution, 2-es lépésköz, 0.5 padding Bemenet: 2 * 2 A bemenettel súlyozzuk a szűrőt Kimenet: 4 * 4 Ahol átlapolódik, ott összeadjuk

Az előző óráról, emlékeztető - ILSVRC 2012 - Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton Imagenet classification with deep convolutional neural networks Ez az első tisztán neurális hálózatos megoldás, ami az azévi legjobb eredményt éri el (addig SVM) Innentől kezdve lesz mainstream a deep learning AlexNet: 8 réteg, 35k paraméter 15.4% top-5 hiba 2014 - Simonyan and Zisserman, VGGNet 19 réteg, 138M paraméter 7.3% top-5 hiba 2014 - Szegedy et al., GoogLeNet 6.9% top-5 hiba 22 réteg, 5M paraméter 2015 - He et al., ResNet 3.6% top-5 hiba 152 réteg

Néhány példa AlexNet [Krizhevsky et al. 2012] [227x227x3] INPUT [55x55x96] CONV1: 96 11x11 filters at stride 4, pad 0 [27x27x96] MAX POOL1: 3x3 filters at stride 2 [27x27x96] NORM1: Normalization layer [27x27x256] CONV2: 256 5x5 filters at stride 1, pad 2 [13x13x256] MAX POOL2: 3x3 filters at stride 2 [13x13x256] NORM2: Normalization layer [13x13x384] CONV3: 384 3x3 filters at stride 1, pad 1 [13x13x384] CONV4: 384 3x3 filters at stride 1, pad 1 [13x13x256] CONV5: 256 3x3 filters at stride 1, pad 1 [6x6x256] MAX POOL3: 3x3 filters at stride 2 [4096] FC6: 4096 neurons [4096] FC7: 4096 neurons [1000] FC8: 1000 neurons (class scores) - ReLU - Norm rétegek (már nem használják) - tanító adat kiegészítés - dropout 0.5 (csak FC-ben) - batch méret 128 - SGD Momentum 0.9 - Learning rate 1e-2, kézzel tizedelve, amikor a validációs pontosság már nem csökken - L2 súlyfelejtés 5e-4-7 CNN együttes: 18.2% -> 15.4%

Néhány példa GoogLeNet [Szegedy et al., 2014] - 6.7% top-5 hiba Inception module - Kevesebb paraméter, ennek ellenére jobb eredmények

Szűrő méret választási megfontolások - Kérdés: mekkora területet lát egy 3*3-as szűrő kimeneti neuronja? - Kérdés 2: mekkora területet lát két egymás utáni 3*3-as szűrő második rétegében egy kimeneti neuron? - Kérdés 2: mekkora területet lát három egymás utáni 3*3-as szűrő harmadik rétegében egy kimeneti neuron?

Szűrő méret választási megfontolások x - 3*3-as területet - 5*5-ös területet - 7*7-es területet x x H*W*C bemeneti térfogat, (a számítás során a térfogat állandó marad végig) - Hány paramétere és nemlinearitása van 3 db egymás utáni 3*3-as szűrőnek? - Hány paramétere és nemlinearitása van egy ugyanekkora területet látó 7*7- es szűrőnek?

Szűrő méret választási megfontolások - 3 db 3*3: - 3*C*(3*3*C) = 27C 2 paraméter (biasokat nem számolva) - ReLU: H*W*C*3 - Szorzás+összeadás művelet: 3*H*W*C*(3*3*C)=27*HWC 2-1 db 7*7: - C*(7*7*C) = 49C 2 paraméter (biast nem számolva) - ReLU: H*W*C*1 - Szorzás+összeadás művelet: H*W*C*(7*7*C)=49*HWC 2 3 db 3*3 szűrő esetén kevesebb paraméterünk van (gyorsabb konvergencia), kevesebbet kell számolni (gyorsabb működés), és több nemlinearitást használunk (vagyis bonyolultabb függvényt is képesek vagyunk reprezentálni)

Szűrő méret választási megfontolások - 1*1-es szűrő? - Skalárszorzat egy pixel mentén a csatornákon a szűrővel - Csatornaszám-csökkentésre alkalmas Bottleneck sandwitch

Szűrő méret választási megfontolások

Szűrő méret választási megfontolások GoogLeNet legújabb verziójában már megjelennek ezek az ötletek [Szegedy et al, Rethinking the Inception Architecture for Computer Vision 11 Dec 2015 ]

Transfer learning - Hogyan tanítsunk konvolúciós neurális hálókat? - Sok adat kell hozzá? - Nem, ha... - Sokáig kell futtatni a tanítást, nagy GPU-n? - Nem, ha... - Használjunk egy már megtanított nagy hálót (pl.: ImageNet adatokon) - Az utolsó pár rétegét cseréljük le a saját rendszerünkre - Tanítsuk a saját adatainkkal az utolsó pár réteget. - Finomíthatjuk a háló elejét is. - Ez a tipikus tanítási forma, nem a kivétel!

Transfer learning 1. Tanítsunk pl. az ImageNet adatkészleten 2. Kis adatkészlet esetén használjuk jellemzővektor kinyerésre 3. Közepes adatkészlet esetén finomhangoljuk Rögzítsük a súlyokat Rögzítsük a súlyokat Itt tanítsunk Itt tanítsunk

Transfer learning - Kevés tanítóminta esetén (< 1M kép) - Keressünk egy hasonló képeket tartalmazó, nagy mintaszámú tanítóhalmazt, tanítsuk meg vele a CNN-ünket - Transfer learning az eredeti tanítóhalmazra - Nincs lehetőségünk/erőforrásunk nagy adathalmazzal tanítani - Töltsünk le egy előre megtanított CNN-t - Caffe ConvNet könyvtárban van egy ún. Model Zoo, amiben előre tanított modellek találhatóak - https://github.com/bvlc/caffe/wiki/model-zoo

Hivatkozások A prezentáció a következő helyekről vett tartalmakkal készült: CS231n: Convolutional Neural Networks for Visual Recognition, Stanford University http://cs231n.stanford.edu/syllabus.html