Sieci neuronowe
-
Upload
tesladev -
Category
Engineering
-
view
284 -
download
0
Transcript of Sieci neuronowe
Sieci neuronowe dla dużych zbiorów danych
Co to jest sztuczna sieć neuronowa?Algorytm klasyfikacji, szczególnie do problemów nieliniowo separowalnych np.:
? ??
!
Oczywiście, dwa piksele to trochę mało ”ficzerów”.
Jak wygląda?
Wektor cech (wejściowy) (np. kolor piksela 1 i 2 - 2 cechy, 2 neurony w tej warstwie)
Klasa, do której “wpadł” dany wektor cech (np. samochód, nie samochód )
Warstwy ukryte to wektory cech utworzone na podstawie poprzednich warstw (tutaj wektora wejścowego)
Gdzie tu duże zbiory danych?
● Wielkość wektora cech (np. 171,476 wyrazów w Angielskim, miliony pikseli w obrazach wysokich rozdzelczości, filmy)
● Liczebność zbioru treningowego (np. 81,941,760 filmów na YT, 5,010,071 artykułów na Wikipedii)
Jak działa?
Backprop - liczy błąd każdego neuron (konkretnie gradient funkcji blędu)
Forwardprop – ustawia wartości funkcji aktywacji neuronów (liczy “wartość cech” warstw ukrytych)
Jakie mamy problemy obliczeniowe?
W momencie kiedy backpropagation wyliczy gardienty, potrzebujemy metody optymalizacji, która wykorzysta wyliczony gradient w celu minimalizacji błędu klasyfikacji. Typowo używane metody:
● BFGS
● Gradient descent
Gradient descent
Każdy krok to:
W wersji klasycznej gradient funkcji kosztu* (błędu) wygląda tak:
*jest to gradient dla kosztu w postaci entropii krzyżowej
Tak w wersji „stochastic”:
Czyli co krok liczymy koszt względem jednego wektora treningowego, a nie całego zbioru.Czyli co krok iterujemy po
całym zbiorze treningowym.
Co jeśli nie wystarczy jeden komputer?
Trzeba rozproszyć algorytmy. Jak?
Large Scale Distributed Deep Networks
Artykuł Large Scale Distributed Deep Networks 2012 opsuje dwa rozproszone algorytmy optymalizacji będące modyfikacją wcześniej wymienionych:
● Downpour SGD
● Sandblaster L-BFGS
http://research.google.com/archive/large_deep_networks_nips2012.html
Architektura Downpour SGD• SGD działa asynchronicznie na
wszystkich parametrach przechowywanych na serwerze
• Zbiór treningowy podzielony jest na trzy części
• Każda replika modelu liczy gradient tylko dla swojego zestawu parametrów na serwerze
• SGD nadaje replikom „wspólny cel”
• Podwójne zrównoleglenie• Mocno „online’owy” charakter
uczenia
Kod klienta (repliki modelu)
Bufor na policzone gradienty
Parametr do regulacji częstości pobierania parametrów modelu z serwera
Parametr do regulacji częstości wysyłania parametrów modelu do serwera
SGD „na własną rękę” w iteracjach bez fetcha z serwera
Materiały
https://static.googleusercontent.com/media/research.google.com/en//archive/large_deep_networks_nips2012.pdf
http://alexminnaar.com/implementing-the-distbelief-deep-neural-network-training-framework-with-akka.html
http://deeplearning4j.org/
http://deepdist.com/
http://www.tensorflow.org/
https://gist.github.com/slnowak/7ba5f6603666961929f7
https://gist.github.com/slnowak/225b512b3adb6ef3669b