deep learning nie tylko dla phds
TRANSCRIPT
Deep Learning - nie tylko dla PhDs
MikroSFI #4 Machine Learning
Mateusz Opala
Motywacja
Reprezentacja
● Reprezentacja - wejście dla algorytmów uczenia maszynowego● Reprezentacja może być “ręcznie dobrana” np. SIFT lub HoG
Data Feature extraction Learning
● Chcielibyśmy się uczyć reprezentacji
Data Learning
Istotą Deep Learningu jest uczenie się hierarchicznej reprezentacji danych
Dlaczego hierarchiczność?
● Prior na regularność funkcji nie pozwala generalizować globalnie
● Teoria: istnieją pewnie rodziny funkcji, które mogą być reprezentowane przez
k-warstowe architektury kompaktowo, podczas gdy k-1-warstwowe
architektury wymagają eksponencjalnej ilości jednostek względem rozmiaru
wejścia
● Rozproszoność reprezentacji powoduje, że ilość rozróżnialnych regionów
może rosnąć nawet eksponencjalnie z ilością parametrów
Inspiracja z biologii
Inspiracja z biologii
Co widzi Convolutional DBN?
But then I realised maybe that’s what hell is: the entire rest of eternity spent in
f*cking Bruges
“Last year, the cost of a top, world-class deep learning expert was about the
same as a top NFL quarterback prospect”
Peter Lee - Head of Microsoft Research (2014)
Jak uczyć reprezentacji?
Multilayer Perceptron
Co zazwyczaj słyszymy:
● Teraz mamy wiele danych i lepszy sprzęt
Bardziej subtelne powody:
● Dostępność bibliotek wysokiej jakośći
● Otwartość researchu (arxiv)● AlexNet - pobicie klasycznych
metod● Rozwój metod
nienadzorowanego uczeniawejście
warstwy ukryte
wyjście
Dlaczego teraz?
Biblioteki
● Theano● Torch● pylearn2● Caffe● Deeplearning4j● TensorFlow● CNTK● Cuda-convnet● DeepLearnToolbox● neon● Keras● Chainer● mxnet● gensim● … i wiele innych
Theano
Cechy Theano
● Integracja z Numpy - numpy.ndarray używane w funkcjach theano
● Tworzenie grafów obliczeń, które mogą być kompilowane zarówno na CPU
jak i GPU
● Zapisywanie skompilowanych i zoptymalizowanych grafów umożliwia
ponowne ładowanie
● Wizualizacja grafów obliczeń
● Symboliczne różniczkowanie
● Optymalizacje numeryczne
● Wsparcie dla cuDNN
● Integracja z CNMeM
● Data parallelism - Platoon
Typy danych● scalar● vector● row● col● matrix● tensor3● tensor4
Każdy z powyższych typów dostępny jest w wersjach:
● int8 np. bvector, bscalar ● int16 np. wmatrix, wscalar● int32 np. itensor3, irow● int64 np. lcol, lscalar● float64 np. dscalar, dtensor4● float32 np. fscalar, fmatrix● complex64, np. cscalar, cmatrix● complex128, np. ztensor4, zrow
Działania na skalarach
Działania na macierzach
Shared Variables
Keyword givens
Logistyczna regresja
Pętle w Theano
Restricted Boltzmann Machine
● Stochastyczna sieć neuronowa z 1 warstwą ukrytą
● Model generatywny
● Połącznie nieskierowane pomiędzy neuronami
● Prawdopodobieństwo obserwacji zdefiniowane w oparciu o energię
konfiguracji
● Funkcja kosztu to negatywne logarytmiczne prawdopodobieństwo obserwacji
● Gradient jest intractable
● Algorytm aproksymacji: Contrastive Divergence
● Używany w PayPal do detekcji anomalii
● Używany do pretrenowania sieci neuronowych
● Występuje w wielu wariantach Binary RBM, Gaussian RBM, Nosiy Rectified
RBM
Restricted Boltzmann Machine
Generowanie twarzyKod: http://github.com/plazowicz/IZS
Dane
● Labeled Faces in the Wild● ~ 13k obrazków, ~ 6k unikalnych osób
Po 50 epokach...
Po 200 epokach
Neural Artistic Style Transfer
Kod: http://github.com/plazowicz/IZS
Pretrenowanie CNN
Convolution = sparse connectivity + parameters sharing
Sparse Connectivity
Parameters Sharing
Convolution
Pooling
LeNet
Jak głębokie sieci obecnie trenujemy?
AlexNet2012
8 warstw
VGG2014
19 warstw
Res-Net2015
152 warstwy
VGG
Reprezentacja contentu
Reprezentacja stylu
Funkcja kosztu
Lasagne
● https://github.com/Lasagne/Lasagne
● Lekka biblioteka do budowania i trenowania sieci neuronowych w Theano
● Moduły:○ Layers
○ Updates
○ Objectives
○ Nonlinearities
○ Regularization
○ Init
● https://github.com/Lasagne/Recipes
● ModelZoo
● Transfer modelu z Caffe do Lasagne
● Szybkie prototypowanie
● Justin Johnson
● https://github.com/jcjohnson/ne
ural-animation
● Implementacja w Torch
Contact
● @matthewopala na twitter
● www.craftinity.com
Q&A