Konvoluční neuronové sítě



Podobné dokumenty
Počítačové vidění. Prezentace přednášek. Ústav počítačové grafiky a multimédií

Rozpoznávání v obraze

Vojtěch Franc Centrum strojového vnímání, Katedra kybernetiky, FEL ČVUT v Praze Eyedea Recognition s.r.o MLMU

Využití programu MATLAB v robotice. počítačové vidění a deep learning

Návrh a implementace algoritmů pro adaptivní řízení průmyslových robotů

Využití metod deep learning v počítačovém vidění. v prostředí MATLAB

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Klasifikace a rozpoznávání

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby

NG C Implementace plně rekurentní

Fakulta elektrotechnická Katedra kybernetiky

Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý

Neuronové sítě (11. přednáška)


Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Neural Networks Studio

KONVOLUČNÍ NEURONOVÉ SÍTĚ PRO BEZPEČNOSTNÍ APLIKACE CONVOLUTIONAL NEURAL NETWORKS FOR SECURITY APPLICATIONS

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY. Fakulta informačních technologií Faculty of Information Technology

Studentská tvůrčí a odborná činnost STOČ 2017

Preceptron přednáška ze dne

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Support Vector Machines (jemný úvod)

Lukáš Brodský Praha Osnova. Objektový přístup Verze 4, 5, 6 / 7 Developer7 -funkčnost, nové vlastnosti HW

Deep learning v jazyku Python

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz

Modernizace a inovace výpočetní kapacity laboratoří ITE pro účely strojového učení. Jiří Málek

Kohonenova mapa - opakování

Face Descriptor Learned by Convolutional Neural Networks

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE

Text Mining: SAS Enterprise Miner versus Teragram. Petr Berka, Tomáš Kliegr VŠE Praha

Výukový materiál zpracován v rámci projektu EU peníze školám

Czenglish 1 ( )

Vytěžování znalostí z dat

geekovo minimum počítačového Nadpis 1 Nadpis 2 Nadpis 3

Využití neuronové sítě pro identifikaci realného systému

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií

Strojové učení se zaměřením na vliv vstupních dat

Enabling Intelligent Buildings via Smart Sensor Network & Smart Lighting

ZÁPADOČESKÁ UNIVERZITA V PLZNI Fakulta aplikovaných věd Katedra kybernetiky DIPLOMOVÁ PRÁCE

Testování neuronových sítí pro prostorovou interpolaci v softwaru GRASS GIS

Název školy: Základní škola a Mateřská škola Žalany. Číslo projektu: CZ. 1.07/1.4.00/ Název DUM: VY_32_INOVACE_2A_18_OPPOSITES_-_SLOVA_OPAČNÁ

Identifikace poruchy osobnosti z psaného textu

GENEROVÁNÍ OBRAZU POMOCÍ KONVOLUČNÍCH NEURONOVÝCH SÍTÍ LEARNING TO GENERATE IMAGES WITH CONVOLUTIONAL NEURAL NETWORKS

Application sheets for the use of DIGR series controller Aplikační listy pro použití regulátorů řady DIGR

PSANÍ. M e t o d i c k é p o z n á m k y k z á k l a d o v é m u t e x t u :

SenseLab. z / from CeMaS. Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři

William Taylor. John Black. Martin Novák. Helga Weber. I am John Black. I am from the USA. I am from New York. I am

NAIL072 ROZPOZNÁVÁNÍ VZORŮ

PŘI AGILITY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ PETR PALATA BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Umělá inteligence pro zpracování obrazu a zvuku

SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Diplomová práce Knihovna pro práci s hlubokými konvolučními neuronovými sítěmi v jazyce C#

Klasifikace a rozpoznávání

METODIKA ZPRACOVÁNÍ EKONOMICKÝCH ČASOVÝCH ŘAD S VYUŽITÍM SIMULÁTORŮ NEURONOVÝCH SÍTÍ

3D sémantická segmentace RGBD dat pomocí hlubokých konvolučních neuronových sítí

Některé potíže s klasifikačními modely v praxi. Nikola Kaspříková KMAT FIS VŠE v Praze

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Vojtěch Franc. Biometrie ZS Poděkování Janu Šochmanovi za slajdy vysvětlující AdaBoost

Algoritmy a struktury neuropočítačů ASN - P11

Trénování sítě pomocí učení s učitelem

Neuronové sítě v DPZ

Strojové učení Marta Vomlelová


VYUŽITÍ AUTOENKODÉRŮ PRO TVORBU HLUBO-

Středoškolská technika 2017 OPTICKÉ ROZPOZNÁVÁNÍ RUČNĚ PSANÉHO TEXTU

Rozvoj vzdělávání žáků karvinských základních škol v oblasti cizích jazyků Registrační číslo projektu: CZ.1.07/1.1.07/

Učící se klasifikátory obrazu v průmyslu

ROZ1 CVIČENÍ VI. Geometrická registrace (matching) obrazů

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta strojního inženýrství BAKALÁŘSKÁ PRÁCE

Aplikace obrazové fúze pro hledání vad

Algoritmy a struktury neuropočítačů ASN - P2. Topologie neuronových sítí, principy učení Samoorganizující se neuronové sítě Kohonenovy mapy

Úloha - rozpoznávání číslic

Brno. Datová analytika. Machine Learning a Big Data. Jan Studnička

Věty k překladu From Unit 2 part A, Project 2

VÝCHOVA K MYŠLENÍ V EVROPSKÝCH A GLOBÁLNÍCH SOUVISLOSTECH

Perception Motivated Hybrid Approach to Tone Mapping

Zobrazování vektorových polí

Kód: Vzdělávací materiál projektu Zlepšení podmínek výuky v ZŠ Sloup. Present simple "to have, to be"

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

Moderní systémy pro získávání znalostí z informací a dat

9

Data Science projekty v telekomunikační společnosti

Project Life-Cycle Data Management

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Rozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005

Věty k překladu From Unit 2 part B, Project 2

CZ.1.07/1.5.00/

Strojové učení Marta Vomlelová

Unstructured data pre-processing using Snowball language

Lokalizace dronů v obrazu z kamery. Localization of UAVs from camera image

Modelová složitost neuronových sítí - zdánlivý paradox

Číslo materiálu: VY 32 INOVACE 29/18. Číslo projektu: CZ.1.07/1.4.00/

Vizualizace v Information Retrieval

3. Vícevrstvé dopředné sítě

Kybernetika a umělá inteligence, cvičení 10/11

Czenglish 1 ( )

Transkript:

Konvoluční neuronové sítě Michal Hradiš http://www.fit.vutbr.cz/~ihradis/

Obsah Motivace highlights industry success stories Cesta k hlubokému učení x ručně navržené příznaky Co to je neuronová síť? Jak se učí neuronové sítě? Co jsou to konvoluční sítě? Co jde dělat s konvolučními sítěmi? Nástroje Základy Caffe

Vyhledávání fotek Google photo search search your photo collection https://photos.google.com/search

Automatický popis fotek "man in black shirt is playing guitar." "construction worker in orange safety vest is working on road." "girl in pink dress is jumping in air." Andrej Karpathy, Li Fei-Fei: Deep Visual-Semantic Alignments for Generating Image Descriptions. CVPR 2015 http://cs.stanford.edu/people/karpathy/deepimagesent/

Automatický popis fotek "boy is doing backflip on wakeboard." "construction "black cat worker is sitting in orange safetyon vest top isof working suitcase." on road." "a cat is sitting on a couch with a remote control." Andrej Karpathy, Li Fei-Fei: Deep Visual-Semantic Alignments for Generating Image Descriptions. CVPR 2015 http://cs.stanford.edu/people/karpathy/deepimagesent/

Automatický popis fotek "a woman holding a teddy bear in front of a mirror." "a horse is standing in the middle of a road." "a young boy is holding a baseball bat." Andrej Karpathy, Li Fei-Fei: Deep Visual-Semantic Alignments for Generating Image Descriptions. CVPR 2015 http://cs.stanford.edu/people/karpathy/deepimagesent/

Facebook - DeepFace

Deep Dreams Thorne Brandt

Style transfer Leon A. Gatys, Alexander S. Ecker, Matthias Bethge: A Neural Algorithm of Artistic Style

Style transfer

Style transfer https://vimeo.com/139123754

Co je na obrázku? Intelligent stuff Tags outdoors indoors sport person water trees politician singing dog cat dancing cars walking running swimming mountains yes no yes yes yes yes no no no no no no no no no no 13

Kategorie slovní zásoba aktivní 3k 10k pasivní 50k Obecné kategorie Objekty, činnosti, prostředí, podmínky, nálada, pocity, druh fotografie/záběru, žánr Specifické (pojmenované) místa, konkrétní osoby, značky aut,

Strojové učení Flag AK-47 Intelligent stuff Flag AK-47 Flag

Základ - podobnost obrazů 16

Bag of Words

Bag of Words

Bag of Words 19

Image representations

Traditional approach Fixed engineered features followed by simple trainable classifier Human-driven academic evolution Feature Extractor Learning algorithm Simple Classifier (lin./kernel SVM) SUM 9 2 0 1 x 0.7 = 6.3 x 0.4 = 0.8 x -0.3 = 0 x -0.2 = -0.2 = 7.1 > 0 GODDES < 0 Something else

Hluboké učení deep learning Navrženo člověkem (pracovití Ph.D. stud.) Extrakce příznaků Učící algoritmus Jednoduchý klasifikátor (lin./kernel SVM) Hluboké učení Učící algoritmus Extrakce příznaků klasifikátor

Hierarchy of features Low-level features Mid-level features High-level features

Co je to neuronová síť? Numerical input vector 0.1 0.2 0.5 0.6 0.7 0.8 0.4 0.2 0.6 Neural Network function with trainable parameters Numerical output vector 0 1 0.5 1.2 3 2 1 2 0

Příklad neuronové sítě f x = ax + b

Strojové učení Flag AK-47 Intelligent stuff Flag AK-47 Flag

Příklad neuronové sítě f x = ax + b argmin a,b (x i,y i ) y i f x i 2

Generalizace učení

Generalizace učení

Neuronové sítě Klasické dopředné neuronové sítě Sítě můžou řešit velkou škálu úloh podle vlastností neuronů ve výstupní vrstvě a objektivní funkce Multi-class, multi-label, regrese,

Hlubší neuronové sítě Source: UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial

Hlubší neuronové sítě Source: UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial

Hlubší neuronové sítě x Source: UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial

Základ neuronu x 1 x 2 w 1 w 2 f w (x) x 3 w 3 f w x = w 1 x 1 + w 2 x 2 +w 3 x 3

Neuron s ReLU aktivační funkcí x 1 x 2 w 1 w 2 f w (x) x 3 w 3 f w x = max(w 1 x 1 + w 2 x 2 +w 3 x 3, 0)

Hlubší neuronové sítě Source: UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial

Výpočet x 2 = max W 1 x 1, 0 x 3 = max W 2 x 2, 0 x 4 = max W 3 x 3, 0 x 1 x 2 x 3 x 4

Učení neuronových sítí Zpětné šíření chyby derivace objektivní vzhledem ke všem parametrům sítě využití pravidla pro efektivní derivace složené funkce (chain rule) J x = h(g x ) J(x) x = h(x) g(x) g(x) x Příklad chybové fce. half squared error Source: UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial

Zpětné šíření chyby 1. Dopředný průchod sítí, spočítat a uložit aktivace všech neuronů 2. Spočítat parciální derivace všech výstupních neuronů 3. Zpětný průchod rekurzivně spočítat parciální derivace všech neuronů v síti vždy z parciálních derivací neuronů v následující vrstvě 4. Spočítat derivace vah a biasů z aktivací předešlé vstvy a derivací následující vrstvy

Stochastic Gradient Descent Jak minimalizovat hodnotu objektivní funkce na datasetu? Gradient Parciální derivace dohromady tvoří gradient Pohyb ve směru gradientu zvyšuje hodnotu funkce (zhoršuje výsledky sítě) a pohyb proti směru gradientu snižuje hodnotu funkce (zlepšuje síť) Stochastic gradient se počítá na podmnožinách trénovací sady Pravidlo pro učení v Stochastic Gradient Descent

Stochastic Gradient Descent

Historie Konvolučních sítí 1980 Kunihiko Fukushima Neocognitron: A Selforganizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position 1998 LeCun et al.: Gradient-Based Learning Applied to Document Recognition 2012 Krizhevsky et al.: ImageNet Classification with Deep Convolutional Neural Networks 2013-dnes exploze aplikací

Konvoluční neuronové sítě Jsou to úplně normální dopředné neuronové sítě Bývají hluboké Vrstvy mají pevnou strukturu propojení KONVOLUCE váhy neuronových sítí = konvoluční jádra konvolučních sítí 43

Konvoluce

Konvoluční vrstva

Konvoluční vrstva - kanály

Pooling vrstva Podvzorkování pixely z okolí se agregují do jedné hodnoty zmenšení rozměru vrstvy používají se operace MAX/MEAN MAX přímo zvyšuje invarianci vůči posunutí

Architektura sítě

Vlastnosti konvolučních sítí Výhody Klasifikace obrázků je velmi rychlá. >100 fps na rychlé GPU Problémy Pro trénování je potřeba rozumět, co se děje uvnitř. Často sítě nedělají, co mají, a je potřeba zjistit proč. Trénování je výpočetně náročné. Velké sítě se na nejnovějších GPU trénují klidně měsíc.

Jak trénovat sítě? Koupit rychlou herní grafiku GTX 970/980 a podobné Vybrat nástroj a nainstalovat Caffe, Lasagne, Keras, OpenDeep Definovat problém Jaké vstupy, jaké výstupy Sehnat data Stáhnout existující předtrénovanou síť Model Zoo https://github.com/bvlc/caffe/wiki/model-zoo Podle potřeby vyměnit výstupní vrstvu sítě Dotrénovat síť na vlastním datasetu

CNN features Take pre-trained network and use activation of a late layer as features https://github.com/bvlc/caffe/wiki/model-zoo E.g. learned on ImageNet Use any classifier for your problem Fine-tuning on your problem gives better results. Donahue et al.:decaf: A Deep Convolutional Activation Feature for Generic Visual Recognition

CNN features Donahue et al.: DeCAF: A Deep Convolutional Activation Feature for Generic Visual Recognition. ICML 2014

Cross-domain image search Crowley and Zissrman: In Search of Art, Workshop on Computer Vision for Art Analysis, ECCV, 2014

Feature visualization Layer 2 Zeiler, Fergus: Visualizing and Understanding Convolutional Networks, ECCV 2014.

Feature visualization Layer 5 Zeiler, Fergus: Visualizing and Understanding Convolutional Networks, ECCV 2014.

Layers and network size Start small low resolution, ~4 hidden layers, not too many channels run fast experiments Scale-up until overfitting takes over Fix overfitting and scale-up again Krizhevsky, A., Sutskever, I. and Hinton, G. E.: ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012.

Very Deep Convolutional Networks Karen Simonyan, Andrew Zisserman: Very Deep Convolutional Networks for Large-Scale Image Recognition,

GoogLeNet Szegedy et al.: Going deeper with convolutions

GoogLeNet - Inception Layer Winner of ILSVRC 2014 Szegedy et al.: Going deeper with convolutions

Detekce objektů R-CNN Girshick, R., Donahue, J., Darrell, T., & Malik, J., "Rich feature hierarchies for accurate object detection and semantic segmentation"

Fully Convolutional Network: FCN Model family for pixel prediction by conv. net applied to semantic segmentation - end-to-end learning - efficiency in inference and learning 175 ms per-image prediction - multi-modal, multi-task Further applications - depth estimation - denoising arxiv and pre-release Jon Long & Evan Shelhamer From: Shelhamer et al.: DIY Deep Learning for Vision:a Hands-On Tutorial with Caffe

Pose estimation Toshev et al.: DeepPose: Human Pose Estimation via Deep Neural Networks. CVPR 2014

Zarovnání obličejů Stejný přístup jako předchozí Sun et al.: Deep Convolutional Network Cascade for Facial Point Detection, CVPR 2013

Photo Deblurring Hradiš et al.: Convolutional Neural Networks for Direct Text Deblurring. BMVC 2015. http://www.fit.vutbr.cz/~ihradis/cnn-deblur/

Rozpoznání obličejů Facebook DeepFace detekce obličejových bodů a napasování 3D modelu frontalizace obličeje do 2D natrénování CNN klasifikátoru na obrovském datasetu 4.4M obrázků, 4k lidí uříznutí poslední vrstvy předposlední se používá jako příznaky pro porovnávání obrázků Taigman et al.: DeepFace: Closing the Gap to Human-Level Performance in Face Verification, ECCV 2014

Similarity Siamese net Chopra, Sumit, Raia Hadsell and Yann LeCun: Learning a similarity metric discriminatively, with application to face verification, CVPR 2005

Deep dreams and others Image captioning http://cs.stanford.edu/people/karpathy/deepimagesent/ https://www.youtube.com/watch?v=urms8s-m5ru Generating images numbers https://www.youtube.com/watch?v=zt-7mi9ekeo chairs https://www.youtube.com/watch?v=qcsw4isbdl0 Painting style transfer https://www.youtube.com/watch?v=-r9bjgnhltq https://vimeo.com/139123754 Deep dreams https://www.youtube.com/watch?v=a1on8diw_og https://www.youtube.com/watch?v=w5u7el72ngi

Dataset: ImageNet Fotografie z webu obrázky vyhledány podle klíčových slov a ručně zkontrolovány jeden obrázek patří do jedné třídy 21k tříd (podstatná jména, většinou objekty, živočichové, rostliny) 14M obrázků Lokalizace objektů pro část datasetu ~200 tříd objektů - vhodné pro detekci Large Scale Visual Recognition Challenge 1000 tříd, 1.2M trénovačích obrázků Deng et al.: ImageNet: A Large-Scale Hierarchical Image Database, CVPR 2009 68

Dataset: MS COCO >70 kategorií, segmentace objektů, více tříd a objektů na obrázku, >300k obrázků, >2M instancí objektů, http://mscoco.org/ Lin et al.: Microsoft COCO: Common Objects in Context, ECCV 2014

MS COCO a woman posing for a pic in front of a mountain, near the water. a woman poses for a photo while sitting on a bench by the seaside. lady in the jacket is sitting on the concrete bench smiling. woman sitting at a picnic table next to the ocean. a woman sitting on a stone bench in front of the beach.

Dataset: SUN397 from Abbey to Zoo 397 typů scén > 100 obrázků na kategorii Xiao et al.: SUN database: Large-scale scene recognition from abbey to zoo, CVPR 2010

Další datové sady PASCAL VOC 2007/2012, CALTECH 101/256

Data augmentation

Caffe základy

Caffe základy Vytvořit dataset Textový soubor s obrázky a jejich třídami Trénovací a testovací sada Definovat síť Protobuf soubor definující vrstvy a jejich propojení Nastavit trénování Konfigurační soubor Spustit trénování > caffe train -solver lenet_solver.prototxt -gpu 0 Python Matlab

Net A network is a set of layers connected as a DAG: name: "dummy-net" layers { name: "data" } layers { name: "conv" } layers { name: "pool" } more layers layers { name: "loss" } LogReg Caffe creates and checks the net from the definition. Data and derivatives flow through the net as blobs a an array interface LeNet ImageNet, Krizhevsky 2012 Shelhamer et al.: DIY Deep Learning for Vision:a Hands-On Tutorial with Caffe

Layer name: "conv1" type: CONVOLUTION bottom: "data" top: "conv1" convolution_param { num_output: 20 kernel_size: 5 stride: 1 weight_filler { type: "xavier" } } name, type, and the connection structure (input blobs and output blobs) layer-specific parameters Shelhamer et al.: DIY Deep Learning for Vision:a Hands-On Tutorial with Caffe

Konfigurace trénování solver train_net: "train_net.prototxt" base_lr: 0.01 momentum: 0.9 weight_decay: 0.0005 max_iter: 10000 snapshot_prefix: "lenet_snapshot" Shelhamer et al.: DIY Deep Learning for Vision:a Hands-On Tutorial with Caffe

Caffe - python import caffe caffe.set_mode_gpu() net = caffe.net(args.model_def, pretrained_model, 'test') out = classifier.forward_all(data=data) out = out[extract_layer]

Zdroje https://sites.google.com/site/deeplearningcvpr2014/ http://tutorial.caffe.berkeleyvision.org/ Krizhevsky, A., Sutskever, I. and Hinton, G. E.: ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012. LeCun et al.: Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE, 1998 Hinton: Neural Networks for Machine Learning, on-line kurz COURSERA, https://www.coursera.org/course/neuralnets http://www.deeplearning.net/tutorial/ UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/ufldl_tutorial http://tutorial.caffe.berkeleyvision.org/ Toshev et al.: DeepPose: Human Pose Estimation via Deep Neural Networks Girshick, R., Donahue, J., Darrell, T., & Malik, J., "Rich feature hierarchies for accurate object detection and semantic segmentation Taigman et al.: DeepFace: Closing the Gap to Human-Level Performance in Face Verification, ECCV 2014