Sieci dynamiczne cd.

advertisement
Głębokie uczenie
Sieci Neuronowe
Wykład 16
Włodzisław Duch
Uniwersytet Mikołaja Kopernika
Google: W. Duch
Co było
o Sieci MLP
o Algorytm wstecznej propagacji (BP)
o Ulepszenia BP
o Sieci konstruktywistyczne
2
Dzisiaj
• Maszyny Boltzmanna.
• Reservoir Computing
• Głębokie uczenie.
• Obrazy mentalne.
Problemy:
Obrazy i sygnały wymagają głębokiego przetwarzania by osiągnąć
niezmienniczość względem skalowania i obrotów.
MLP i inne modele wymagają wektora o ustalonej długości.
Modele rekurencyjne mogą przyjmować wektory reprezentujące
przesuwające się szeregi czasowe.
Maszyna Boltzmanna
Stochastyczne sieci atraktorowe, proste intro jest tu.
Zadanie: nauka rekonstrukcji
danych wejściowych.
Binarne neurony,
symetryczne połączenia,
warstwa ukrytych neuronów.
Asynchroniczna dynamika.
Neurony stochastyczne
i stopniowe chłodzenie:
p Vi  Vi     Ei / T 
Wejścia
Wyjścia
Restricted BM, jedna warstwa
ukryta bez połączeń wewnątrz.
4
Działanie MB
Idea: zbiór wag połączeń definiuje model środowiska.
Struktura wzbudzeń elementów widocznych przy braku
sygnałów wejściowych powinna być taka sama jak w ich obecności.
MB ma znaleźć zbiór wag pozwalających zrekonstruować obserwowane
częstości sygnałów wejściowych - model maksymalnego prawdop.
Założenia: wolnozmienne sygnały wejściowe, brak korelacji pomiędzy
strukturami danych wejściowych; sieć dochodzi do równowagi iterując sygnał
X+; iteracja w przód daje rozkład p(H|X;W), wstecz daje na wejściu XMB minimalizuje różnicę tych rozkładów używając miary Kullbacka-Leibnera:
KL  P   X  , P   X     P   X  ln  P   X  P   X  
X
Różnice między działaniem swobodnym i wymuszonym pozwalają obliczyć
korelacje wzbudzeń neuronów i pożądaną zmianę wag:

Wij   xi h j
dane
 xi h j
szum

Przykład - obwód elektryczny
2 bity na zaznaczenie: rośnie, stałe, maleje.
Prawo Ohma V=I×R neurony wiedzy typu
(I-,V-,R0), (I+,V+,R0) ale nie (I+,V-,R0).
5 praw: 3 Ohma + Kirhoffa + dodawanie R.
65 neuronów zawierających elementarne fakty
Pytanie: Jeśli R2 wzrośnie, R1 i Vt stałe,
co z prądem i spadkami napięcia V1, V2 ?
Ok. 500 iteracji (w naturze 10 ms/iterację),
iteracja to 100 aktualizacji.
Po uśrednieniu wynik prawidłowy.
Przykład za D.E. Rumelhart, J. McClelland,
Parallel Distributed Processing (MIT Press 87)
Intuicyjne myślenie
Fizyka jakościowa wymaga intuicji:
jeśli R2 wzrośnie a R1 i Vt będzie stałe,
co stanie się z prądem I oraz V1, V2 ?
Uczenie się z częściowych obserwacji
Prawo Ohma V=I×R; Kirhoffa V=V1+V2.
Geometryczna reprezentacja faktów:
+ rośnie, 0 stała, - maleje.
True (I-,V-,R0), (I+,V+,R0), false (I+,V-,R0).
5 praw: 3 Ohma, 2 Kirhoffa.
Wszystkie A=B+C, A=B×C , A-1=B-1+C-1, mają
taką samą interpretację geometryczną!
13 prawdziwych, 14 nieprawdziwych relacji;
prosta przestrzeń, intuicyjne reakcje.
Intuicja upraszcza szukanie
5 relacji musi być jednocześnie prawdziwych, ta sama reprezentacja:
5
F (Vt , R, I ,V1 ,V2 , R1 , R2 )   Fi ( Ai , Bi , Ci )
i 1
Pytanie: Jeśli R2=+, R1=0 i V =0, jak może się zmienić I, V1, V2 ?
Ocen jakie mogą być te wartości by F(V=0, R, I,V1, V2, R1=0, R2=+) >0
Szukanie: załóżmy, że któraś zmienna X = +, czy nie zrobi się F=0?
Dla 7 zmiennych jest 111 możliwych kombinacji z 2187 (5%) dających F>0.
Heurystyka: wybierz zmienną dla której
jak najmniej wartości daje F>0.
Nie ma manipulacji symbolami, łatwo
odpowiedzieć jakościowo na dowolne
pytanie, intuicyjne rozumowanie.
Miękkie ograniczenia => min |F(X)|.
Echo State Networks (ESN)
Idea jak w Liquid State Machines (LSM): rzutowanie sygnałów zmiennych w
czasie na sieć zawierającą mikroobwody o różnych stałych czasowych,
a więc stworzenie obrazu sygnału zmieniającego się wolniej, pozwalającego
na klasyfikację.
ESN to architektura i uczenie nadzorowane sieci z rekurencją (RNN).
1. Duża, przypadkowo połączona sieć rekurencyjna pobudzana jest przez
zewnętrzne sygnały, każdy neuron „rezonuje” przez jakiś czas dzięki
oddziaływaniom w sieci.
2. Liniowy klasyfikator
(perceptron) uczy się
dyskryminacji stanów sieci.
Ogólna teoria:
reservoir computing, czyli
„obliczenia na rezerwuarach”.
Uczenie: tylko wag
wyjściowych.
Analiza Obrazu
Jak można wykryć jakiś obiekt na obrazie?
Trzeba odkryć niskompoziomowe cechy obrazów pozwalające na
niezmienniczą klasyfikację obiektów.
Obraz => wektor cech => Klasyfikator, np. MLP.
Cechy nie są odkrywane tylko wyodrębniane za pomocą specyficznych
algorytmów: wykrywania krawędzi, Speeded Up Robust Features (SURF);
Gradient Location and Orientation Histogram (GLOH);
Scale-Invariant Feature Transform (SIFT) i wiele innych.
Głębokie uczenie: wiele poziomów reprezentacji o rosnącej złożoności.
Cechy obrazów
Automatyczna generacja cech jest kluczowa dla głębokich sieci
neuronowych w zastosowaniach do analizy obrazów, sygnałów czy NLP.
Proste cechy są łatwe do generacji, poziom V1 w mózgu.
Części obiektów są dużo bardziej złożone, nie można ręcznie utworzyć
odpowiednich filtrów do ich wykrywania.
Hierarchia cech
Trzeba się uczyć coraz bardziej złożonych cech, od V1 => V2, V3, V4, V5, IT.
Kolejne warstwy powinny wykrywać nowe cechy z poprzednich.
Piksele
Klasyfikator
Od krawędzi do fragmentów do
rozpoznawania całych obiektów,
np. twarzy.
Wideo lub analiza danych z kinecta
dodaje dodatkowe wymiary
związane z ruchem, ale zasada
budowy cech jest taka sama.
Trzeba się uczyć
coraz bardziej
złożonych cech, od
V1 => V2, V3, V4,
V5, IT.
Kolejne warstwy
powinny wykrywać
nowe cechy
korzystając z
poprzednich.
Lee i inn. CACM 2011
Jak się uczyć cech
Uczenie nadzorowane: dane z etykietami.
Płytkie: perceptrony, liniowa dyskryminacja, SVM
Głębokie: kolejne warstwy głębokich sieci neuronowych;
sieci z konwolucją (coraz większe pola recepcyjne); sieci z rekurencją.

Konwolucja (splot):
f  g t   

f  t    g   d
Uczenie nienadzorowane: dane nie mają etykiet.
Wykrywanie regularności lub struktur w danych.
Płytkie: odszumiające autoenkodery, ograniczone maszyny Boltzmana.
Głębokie: stosy autoenkoderów odszumiających;
hierarchiczne rzadkie kodowanie cech; deep belief networks.
Sieci konwolucyjne (CNN) dla obrazów: splot filtrów i obrazów.
Support Feature Machines: próbuj różnych transformacji wejściowych
danych by wykryć użyteczne cechy.
Uczenie hierarchii cech
Obrazy mają zwykle podobne własności w różnych fragmentach, np. przydatne
jest wykrywanie krawędzi. Połączenia powinny odwzorować strukturę obrazu.
Filtry cech obrazu
Tworzymy mapy obrazów rzutując je na różne filtry, modelujące rozkłady
danych wejściowych. Zadaniem filtrów jest wykrywanie różnych struktur.
Analiza obrazu siecią CNN
Konwolucja => mapy
Filtr Gabora splątany z obrazem.
Filtry Gabora są wzorowane na reakcjach neuronów układzie wzrokowym.
Są to funkcje gaussowskie modulowane przez sinusoidalne fale.
Sieci konwolucyjne (CNN) dla obrazów.
Sharing i Pooling
Podział obrazu na rozłączne prostokąty.
Każdy neuron łączy się tylko z niewielkim
fragmentem obrazu, pola recepcyjne
częściowo się nakrywają.
Hiperparametry:
depth – ile neuronów do danego pola;
stride – jak silne jest nakrywanie;
Zero-padding wypełnia brzegi zerami.
Większość obrazów wykazuje na tyle duże podobieństwo podobszarów, że
cechy wykryte w jednym są przydatne w drugim, stąd pomysł by stosować
wspólne wagi (sharing) dla różnych obszarów–zmniejsza to liczbę parametrów
i daje niezmienniczość translacyjną architektury sieci CNN.
Pooling (non-linear downsampling): średnia lub maksimum z pewnego
podobszaru (patch) przekazywana jest do warstwy redukującej rozdzielczość.
Końcowa warstwa jest w pełni połączona z wyjściową.
Architektura CNN
Warstwy bliskie wejściowej są duże (~15x15) ale nieliczne, im bliżej wyjścia
tym mniejsze i bardziej liczne.
Pooling (subsmapling) to zwykle uśrednianie fragmentów 2x2,
zmniejszających mapę.
Dekompozycja na części
Pozwala to na rozpoznawanie obiektów, biometrię,
końcowe filtry są proste.
Przykład zastosowania
Rozpoznawanie obrazów:
8 warstw, 1 milion obrazów, 650.000 neuronów, 60 mln parametrów,
implementacja na 2xGPU, sieć trenowana przez tydzień.
ImageNet Classification 2012; błąd 16.4%, drugi najlepszy 26.2%.
Rok później zrobiono jeszcze większe sieci, rezultaty poprawiono o kolejne 5%,
powstały firmy takie jak ClarifAI opisująca obrazy.
Deep face
Weryfikacja twarzy.
Google: TensorFlow
TensorFlow: Open Source Software Library for Machine Intelligence.
Narzędzie Google do głębokiego uczenia. Google chciałby uczynić z tego
standard w dziedzinie uczenia maszynowego.
TensorFlow jest systemem, w którym obliczenia reprezentowane są przez
grafy (wizualny język programowania). Węzły grafów nazywane są ops
(od operations). Takie op działa na tensorach, wykonuje operacje i odsyła
tensory, czyli wielowymiarowe tablice. Np. grupa obrazów satelitarnych
otrzymanych z różnych kanałów spektralnych może być reprezentowana
przez 4-D tablicę o wymiarach
Sat = [obraz#, szerokość, wysokość, kanał].
TensorFlow jest używany przez Google do tworzenia usług i produktów,
ale tworzone implementacje w TensorFlow są opisane w publikacjach i
szeroko udostępniane.
Obliczenia tensorowe na grafach
Graf TensorFlow jest opisem sposobu wykonywania obliczeń.
Żeby cokolwiek obliczyć trzeba utworzyć sesję i zdefiniować graf.
Sesja umieszcza operacje definiowane przez graf na urządzeniach
(Devices), takich jak CPUs czy GPUs, i dostarcza metod by je wykonać.
Te metody zwracają tensory używając takich operacji jak numpy czy
objekty ndarray w Pythonie, lub jako tensorflow::Tensor w C/C++.
GAN = Generative Adversarial Networks, generują przykłady danych z
warunkowych rozkładów probabilistycznych, a następnie uczą sieci
odróżniać sztucznie generowane i prawdziwe przypadki.
Zarówno generatory jak i dyskryminatory uczą się w ten sposób
reprezentacji struktury danych określonego typu.
Obliczenia tensorowe na grafach
Przykład grafu dla danych MNIST:
https://www.tensorflow.org/versions/r0.8/tutorials/mnist/tf/index.html
Ręcznie pisane cyfry (np. kodów pocztowych), 28x28 px;
Training 55.000, walidacja 5000, test 10.000.
Obrazy w mózgu
Czy można podejrzeć
jak mózg
przekształca obrazy z
siatkówki przez przez
kolejne warstwy
analizujące
informacje z układu
wzrokowego?
Wzrok
•
Od siatkówki przez LGN (ciało kolankowate boczne) informacja dochodzi
do pierwotnej kory wzrokowej V1 i szlaku grzbietowego i brzusznego.
Wiele obszarów, stopniowo coraz
bardziej złożone obiekty.
fMRI  CNN
Aktywność różnych obszarów mierzona za pomocą fMRI została
skorelowana z aktywnością warstw sieci CNN (Horikawa, Kamitani, 2017).
fMRI  CNN kroki
Jak nauczyć się analizować aktywność mózgu by odkryć, jakie obraz sobie
wyobrażamy lub jaki widzimy? Chcemy to zrobić również dla obrazów,
które nie były w zbiorze treningowym.
1.
Analizujemy wiele obrazów Oi - dla każdego mamy 13 rodzajów cech
(CNN1–8, HMAX1–3, GIST and SIFT + BoF) zakodowanych jako rozkład
V(Oi) ok. 1,000 elementów w warstwach sieci CNN.
2.
Analizujemy dane fMRI w czasie oglądania obrazów F(Oi), używamy je
do dekodowania rozkładu aktywności elementów kodujących cechy
tych obrazów w sieci CNN, czyli D[F(Oi)] = V(Oi).
3.
Do nowego obrazu On, którego nie było w treningowym zbiorze,
używamy dekoderów D[F(On)] = V(On).
4.
Na koniec dla wektora V(On) szukamy w dużej bazie obrazów takiego,
dla którego wektory uśrednione dla danej kategorii obrazów są
najbardziej podobne.
Efekt: stany mózgu, widziane bądź wyobrażone => obrazy.
fMRI  CNN
CNN ma 8 warstw,
6-8 w pełni
połączone,
~1000 elementów w
każdej warstwie.
Przykładowe 4
jednostki z każdej
warstwy.
Wzrasta złożoność
i niezmienniczość ze
względu na
skalowanie i obroty.
fMRI  CNN
CNN 8 warstw,
6-8 w pełni połączone,
~1000 elementów w
każdej warstwie.
Przykładowe 4
jednostki z każdej
warstwy.
Wzrasta złożoność
i niezmienniczość ze
względu na skalowanie
i obroty.
Wyjście z CNN8 ma
przypisane kategorie
(jest ich 1000).
CNN preferowane obrazy
Więcej materiałów
Tutoriale:
Lista KDDnuggets | UFLDL | Lisa Lab (pdf)
Deep Learning for NLP (Richard Socher)
Krótkie wprowadzenie (Ivan Vasilev)
Tutorial Facebook AI Research (Marc’Aurelio Ranzato) – część obrazków w
tym wykładzie pochodzi z tego tutorialu.
Deep Learning Wiki
Porównanie programów do Deep Learning
Programy: MatConvNet (CNN w Matlabie) | ConvNetJS Javascript lib |
Deeplearning4j (Java)|
Intelligence becomes utility, czyli inteligentny asystent do wszystkiego:
viv.ai (wykupiony przez Samsung)
Co dalej?
Sieci dynamiczne:
• Maszyny Boltzmanna.
• Model Hopfielda
Koniec wykładu 16
Download