Sieci neuronowe

12
Sieci neuronowe dla dużych zbiorów danych

Transcript of Sieci neuronowe

Page 1: Sieci neuronowe

Sieci neuronowe dla dużych zbiorów danych

Page 2: Sieci neuronowe

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”.

Page 3: Sieci neuronowe

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)

Page 4: Sieci neuronowe

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)

Page 5: Sieci neuronowe

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)

Page 6: Sieci neuronowe

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

Page 7: Sieci neuronowe

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.

Page 8: Sieci neuronowe

Co jeśli nie wystarczy jeden komputer?

Trzeba rozproszyć algorytmy. Jak?

Page 9: Sieci neuronowe

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

Page 10: Sieci neuronowe

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

Page 11: Sieci neuronowe

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