OpenAlt Konvoluční neuronové sítě

Transkript

OpenAlt Konvoluční neuronové sítě
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 "a cat is sitting on a couch
safetyon
vest
topisofworking
suitcase."
on road." 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?
Tags
Intelligent
stuff
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
Learning algorithm
Simple Classifier
(lin./kernel SVM)
Feature Extractor
SUM
9
x 0.7 = 6.3
2
x 0.4 = 0.8
0
x -0.3 = 0
1
x -0.2 = -0.2
> 0 GODDES
= 7.1
< 0 Something
else
Hluboké učení – deep learning
Navrženo člověkem
(pracovití Ph.D. stud.)
Učící algoritmus
Extrakce příznaků
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
Numerical
output vector
0.1
0.2
0.5
0.6
0.7
0.8
0.4
0.2
0.6
0
1
0.5
1.2
3
2
1
2
0
Neural Network
function with
trainable parameters
Příklad neuronové sítě
𝑓 𝑥 = 𝑎𝑥 + 𝑏
Strojové učení
Flag
AK-47
Intelligent
stuff
Flag
AK-47
Flag
Příklad neuronové sítě
𝑓 𝑥 = 𝑎𝑥 + 𝑏
argmin
𝑎,𝑏
𝑦𝑖 − 𝑓 𝑥𝑖
(𝑥𝑖 ,𝑦𝑖 )
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
𝑥1 𝑤1
𝑥2
𝑤2
𝑓𝑤 (𝑥)
𝑥3 𝑤3
𝑓𝑤 𝑥 = 𝑤1 𝑥1 + 𝑤2 𝑥2 +𝑤3 𝑥3
Neuron s ReLU aktivační funkcí
𝑥1 𝑤1
𝑥2
𝑤2
𝑓𝑤 (𝑥)
𝑥3 𝑤3
𝑓𝑤 𝑥 = max(𝑤1 𝑥1 + 𝑤2 𝑥2 +𝑤3 𝑥3 , 0)
Hlubší neuronové sítě
Source: UFLDL tutorial, http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
Výpočet
𝑥2 = 𝑚𝑎𝑥 𝑊1 𝑥1 , 0
𝑥3 = 𝑚𝑎𝑥 𝑊2 𝑥2 , 0
𝑥4 = 𝑚𝑎𝑥 𝑊3 𝑥3 , 0
𝑥1
𝑥2
𝑥3
𝑥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)
𝐽 𝑥 = ℎ(𝑔 𝑥 )
𝜕𝐽(𝑥) 𝜕ℎ(𝑥) 𝜕𝑔(𝑥)
=
𝜕𝑥
𝜕𝑔(𝑥) 𝜕𝑥
• 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 …
LogReg ↑
layers { name: "loss" …}
● 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

Podobné dokumenty

Dálkový průzkum Země Co je DPZ? DPZ je …

Dálkový průzkum Země Co je DPZ? DPZ je … Aplikace a využití Využití a pokryvnost země (Landuse a

Více

sexuální násilí - Intervenční centrum Praha

sexuální násilí - Intervenční centrum Praha publikace, podpořily, jsou drobné změny ve vlastní praxi sociálních pracovnic i pracovníků a dalších pomáhajících profesí a zlepšení práce v již existujících organizacích. Jedním z  témat, které mě...

Více

ZIMA/LÉTO 2015 - Čechoaustralan

ZIMA/LÉTO 2015 - Čechoaustralan v oblasti společenské víc, než je možné v reálném světě. Samozřejmě, že mezi své facebookové přátele přijmete přátele skutečné. A po čase najednou zjistíte, že vám začne vadit, když někteří přátelé...

Více

Trendy 2009 - S

Trendy 2009 - S Výstaviště 1 647 00 Brno Tel.: +420 541 152 818 Fax: +420 541 153 063 E-mail: [email protected] www.opta.cz

Více