Institute of Computing Science Poznan University of Technology Optymalizacja Ci gªa Rozszerzenia SGD Mateusz Lango Michaª Kempka June 13, 2018
Gradient Descent - przypomnienie 1 x t+1 = x t η f (x t ) f - funkcja, która chcemy optymalizować x t - wektor, argument w iteracji t f (x t ) - gradient z minimalizowanej funkcji η - learning rate / step size
SGD 2 W UM zwykle minimalizujemy funkcję straty majac a postać sumy. min θ L(θ) = N (y i f (x i ; θ)) 2 i=1
SGD 2 W UM zwykle minimalizujemy funkcję straty majac a postać sumy. min θ L(θ) = N (y i f (x i ; θ)) 2 Teoretycznie chcielibyśmy nawet zminimalizować ja na całej populacji! [ min L(θ) = E x,y pdane (y f (x; θ)) 2 ] θ Co się wtedy dzieje z gradientem? Użyj estymacji gradientu! i=1 θ L(θ) = E x,y pdane [ θ (y f (x; θ)) 2] (1)
Stochastic Gradient Descent 3 θ INICJALIZUJ while warunek stopu nie jest spełniony do Wylosuj obserwację ze zbioru danych x i, y i Oblicz bład dla wylosowanej obserwacji l i (x i, y i ; θ) oraz jego gradient θ l i (x i, y i ; θ) θ θ η θ l i (x i, y i ; θ) Przesuń θ w kierunku minimum end while
SGD a GD 4
SGD a GD 5
Lekarstwo na miotanie? 6 Problem Jak sprawić żeby algorytmem mniej miotało?
Lekarstwo na miotanie? 6 Problem Jak sprawić żeby algorytmem mniej miotało?
Inny pomysł - dodać bezwładność! 7 Momentum (pęd): v t+1 = µv t η L t (Θ t ) µ [0, 1) Θ t+1 = Θ t + v t+1
Momentum - efekt? 8 Problem Jaki jest efekt zastosowania momentum (poetycko mówiac)?
Momentum - efekt? 8 Problem Jaki jest efekt zastosowania momentum (poetycko mówiac)? Algorytm nie jest już piechurem idacym w kierunku spadajacego gradientu, lecz kula, która nabiera prędkokości (pędu) i stacza się w dół. Problem Jaki jest efekt z bardziej technicznej perspektywy?
Momentum - efekt? 8 Problem Jaki jest efekt zastosowania momentum (poetycko mówiac)? Algorytm nie jest już piechurem idacym w kierunku spadajacego gradientu, lecz kula, która nabiera prędkokości (pędu) i stacza się w dół. Problem Jaki jest efekt z bardziej technicznej perspektywy? gradient w kierunku gdzie występuja oscylacje jest tłumiony gradient w kierunki gdzie zmiany sa konsystentne (chociażby małe) jest wzmacniany (akumulowany) - nabieramy pędu!
Momentum! 9 UWAGA! Momentum to nie moment tylko PED. Moment tłumaczymy jako...
Momentum! 9 UWAGA! Momentum to nie moment tylko PED. Moment tłumaczymy jako... moment! (lub torque).
Nesterov momentum - kula znajaca przyszłość! 10
Nesterov Accelerated Gradient (NAG) 11 Zwykłe momentum: v t+1 = µv t η L t (Θ t ) Nesterov: v t+1 = µv t η L t (Θ t + µv t ) µ [0, 1) Θ t+1 = Θ t + v t+1
Nesterov graficznie 12 Slajd zapożyczony z prezentacji o RMSprop G. Hintona
13 Więcej techcznicznych informacji o momentum: https://distill.pub/2017/momentum/
Miotanie to nie jedyny problem! 14 rzadkie i zaszumione dane (powiazane z miotaniem) trzeba wybrać learning rate (η)! duża wrażliwość na skalę różnych współrzędnych także duża wrażliwość na skalę gradientów różnych współrzędnych
RMSProp i Adagrad 15 Często chcielibyśmy by η była różna dla różnych współrzędnych i najlepiej by dobierała się automatycznie (albo chociaż semi-automatycznie). Z pomoca przychodza nam dwa podobne algorytmy: RMSProp (Root Mean Square ) i Adagrad (Adaptive Gradient)
RMSProp i Adagrad 16 Adagrad RMSprop: G t = t L t (Θ t ) 2 i=1 G t = 0.9 G t 1 + 0.1 L t (Θ t ) 2 = 0.1 Θ t+1 = Θ t t 0.9 T i L t (Θ t ) 2 i=1 η Gt + ɛ g t
RMSProp i Adagrad 17 Problem Jaki efekt uzyskujemy? (intuicyjnie) 1 stoi też za tym teoria i 20 stron dowodu
RMSProp i Adagrad 17 Problem Jaki efekt uzyskujemy? (intuicyjnie) Współrzędne gdzie gradienty sa rzadkie i małe sa wzmacniane - dzięki temu algorytm jest bardziej wrażliwy na rzadkie reprezentacje (taka była zreszta motywacja). Jednocześnie współrzędne oscylujace nie sa wcale wzmacniane gdyż interesuja nas kwadraty gradientów. 1. Dodatkowo, należy zauważyć, że mianownik rośnie nam z czasem - rozwiazuje to do pewnego stopnia problem obniżania eta w czasie optymalizajci. 1 stoi też za tym teoria i 20 stron dowodu
RMSProp i Adagrad 18 Problem Jaka różnicę wprowadza RMSProp względem Adagrad?
RMSProp i Adagrad 18 Problem Jaka różnicę wprowadza RMSProp względem Adagrad? RMSProp ma ograniczona pamięć co do gradientów co pozwala mu na większa adaptację w przypadku mneiej stacjonarnych danych. Dodatkowo nie zmniejsza η tak agresywnie jak Adagrad, który często przez to za szybko spowalnia optymalizację.
Automagia - Adam 19 Niestety zarówno RMSprop jak i Adagrad wymagaja dobrania globalnej η. Najpopularniejszym rozwiazaniem, które do pewnego stopnia rozwiazuje ten problem jest algorytm Adam - jest on rozwinięciem omówionych algorytmów. Sa też algorytmy, które zupełnie rezygnuja z tradycyjnego dobierania η, lecz ich działanie jest bardziej egzotyczne, np. CoCoB (działa znakomicie chociaż jest zdecydowanie mniej znany).
Fuzja! 20 UWAGA! Większość wymienionych metod można łaczyć gdyż sa niezależne od siebie (i najczęściej się to faktycznie robi!) np. minibatch + momentum + RMSProp.
Klepać czy nie klepać? 21 Większość z popularnych algorytmów jest już zaimplementowana we frameworkach. Niestety często dochodzi (tak, naprawdę to się dzieje) do sytuacji gdzie jedyne co mamy to vanilla sgd, którego już się nie używa więc warto jak zaimplementować np. RMSProp co nie wymaga specjalnej finezji i zaawansowania.
Zatem klepać! 22