Stochastyczny spadek gradientu
Część serii poświęconej |
uczeniu maszynowemu i eksploracji danych |
---|
Stochastyczny spadek gradientu (często w skrócie SGD ) to iteracyjna metoda optymalizacji funkcji celu z odpowiednimi właściwościami gładkości (np. różniczkowalna lub podróżniczkowalna ). Można to uznać za stochastyczne przybliżenie optymalizacji zejścia gradientu , ponieważ zastępuje rzeczywisty gradient (obliczony z całego zbioru danych ) jego oszacowaniem (obliczonym z losowo wybranego podzbioru danych). Zwłaszcza w dużych wymiarach problemów optymalizacji zmniejsza to bardzo duże obciążenie obliczeniowe , osiągając szybsze iteracje w zamian za niższy współczynnik zbieżności.
Podczas gdy podstawową ideę stochastycznego przybliżenia można prześledzić wstecz do algorytmu Robbinsa-Monro z lat pięćdziesiątych XX wieku, stochastyczny spadek gradientu stał się ważną metodą optymalizacji w uczeniu maszynowym .
Tło
Zarówno estymacja statystyczna , jak i uczenie maszynowe rozpatrują problem minimalizacji funkcji celu , która ma postać sumy:
gdzie oszacować parametr , minimalizuje { . Każda funkcja sumy powiązana z obserwacją w danych ( do szkolenia).
W statystyce klasycznej problemy z minimalizacją sumy pojawiają się przy najmniejszych kwadratach i przy estymacji największej wiarygodności (dla niezależnych obserwacji). Ogólna klasa estymatorów, które powstają jako minimalizatory sum, nazywana jest M-estymatorami . Jednak w statystyce od dawna uznaje się, że wymaganie nawet lokalnej minimalizacji jest zbyt restrykcyjne dla niektórych problemów szacowania maksymalnej wiarygodności. Dlatego współcześni teoretycy statystyki często biorą pod uwagę punkty stacjonarne funkcji wiarygodności ( lub zera jej pochodnej, funkcji punktacji). i inne równania szacujące ).
Problem minimalizacji sumy pojawia się również w przypadku minimalizacji ryzyka empirycznego . W tym przypadku jest wartością funkcji straty w przykładzie i to ryzyko empiryczne.
W przypadku użycia do zminimalizowania powyższej funkcji standardowa (lub „wsadowa”) metoda opadania gradientu wykonałaby następujące iteracje:
gdzie wielkością kroku (czasami nazywaną uczenia się w uczeniu maszynowym).
W wielu przypadkach funkcje sumy mają prostą postać, która umożliwia niedrogie oszacowanie funkcji sumy i gradientu sumy. Na przykład w statystyce rodziny wykładnicze z jednym parametrem umożliwiają ekonomiczne oceny funkcji i oceny gradientów.
Jednak w innych przypadkach ocena gradientu sumy może wymagać kosztownych ocen gradientów ze wszystkich funkcji sumy. Gdy zbiór uczący jest ogromny i nie istnieją żadne proste formuły, obliczenie sum gradientów staje się bardzo kosztowne, ponieważ obliczenie gradientu wymaga oszacowania wszystkich gradientów funkcji sumy. Aby zaoszczędzić na kosztach obliczeniowych w każdej iteracji, stochastyczne zejście gradientowe próbkuje podzbiór funkcji sumy na każdym kroku. Jest to bardzo skuteczne w przypadku problemów z uczeniem maszynowym na dużą skalę.
Metoda iteracyjna
W stochastycznym (lub „on-line”) spadku gradientu prawdziwy gradient jest przybliżony przez gradient w pojedynczej próbce:
Gdy algorytm przegląda zestaw treningowy, wykonuje powyższą aktualizację dla każdej próbki treningowej. W zbiorze uczącym można wykonać kilka przejść, aż algorytm osiągnie zbieżność. Jeśli tak się stanie, dane mogą być tasowane dla każdego przebiegu, aby zapobiec cyklom. Typowe implementacje mogą wykorzystywać adaptacyjną szybkość uczenia się, aby algorytm był zbieżny.
W pseudokodzie stochastyczny spadek gradientu można przedstawić jako:
- parametrów i szybkość uczenia się .
- Powtarzaj, aż do uzyskania przybliżonego minimum:
- Losowo przetasuj próbki w zbiorze uczącym.
- Dla , robić:
Kompromisem między obliczeniem rzeczywistego gradientu a gradientem dla pojedynczej próbki jest obliczenie gradientu dla więcej niż jednej próbki treningowej (zwanej „mini-partią”) na każdym kroku. Może to działać znacznie lepiej niż opisane „prawdziwe” stochastyczne zejście gradientowe, ponieważ kod może wykorzystywać wektoryzacji zamiast obliczać każdy krok osobno, jak po raz pierwszy pokazano, gdzie nazwano go „algorytmem propagacji wstecznej w trybie wiązki”. Może to również skutkować płynniejszą zbieżnością, ponieważ gradient obliczony na każdym kroku jest uśredniany dla większej liczby próbek treningowych.
Zbieżność stochastycznego spadku gradientu została przeanalizowana przy użyciu teorii minimalizacji wypukłej i aproksymacji stochastycznej . Krótko mówiąc, kiedy współczynniki uczenia się spadają z odpowiednim tempem i przy stosunkowo łagodnych założeniach, stochastyczny spadek gradientu prawie na pewno zbiega się do globalnego minimum, gdy funkcja celu jest wypukła lub pseudowypukła , a poza tym zbiega się prawie na pewno do lokalnego minimum. W rzeczywistości jest to konsekwencją twierdzenia Robbinsa-Siegmunda.
Przykład
Załóżmy z i odpowiadające im oszacowane odpowiedzi najmniejszych kwadratów . Minimalizowana funkcja celu to:
Ostatnia linia w powyższym pseudokodzie dla tego konkretnego problemu będzie miała postać:
że w każdej iteracji (zwanej również aktualizacją) gradient jest oceniany tylko w jednym punkcie, a zbiorze wszystkich próbek.
Kluczowa różnica w porównaniu ze standardowym (wsadowym) opadaniem gradientu polega na tym, że do obliczenia kroku używana jest tylko jedna część danych ze zbioru danych, a część danych jest wybierana losowo na każdym etapie.
Godne uwagi aplikacje
Stochastyczny spadek gradientu jest popularnym algorytmem do uczenia szerokiej gamy modeli w uczeniu maszynowym , w tym (liniowych) maszyn wektorów nośnych , regresji logistycznej (patrz np. Vowpal Wabbit ) i modeli graficznych . W połączeniu z propagacji wstecznej jest to de facto standardowy algorytm uczenia sztucznych sieci neuronowych . Jego użycie zostało również opisane w Geofizyce społeczność, w szczególności do zastosowań Full Waveform Inversion (FWI).
Stochastyczny spadek gradientu konkuruje z algorytmem L-BFGS [ potrzebne źródło ] , który jest również szeroko stosowany. Stochastyczne zejście gradientowe było używane od co najmniej 1960 r. do trenowania regresji liniowej , pierwotnie pod nazwą ADALINE .
Innym algorytmem stochastycznego spadku gradientu jest adaptacyjny filtr najmniejszych średnich kwadratów (LMS) .
Rozszerzenia i warianty
Zaproponowano i zastosowano wiele ulepszeń podstawowego algorytmu stochastycznego gradientu. W szczególności w uczeniu maszynowym za problematyczną uznano potrzebę ustalenia tempa uczenia się (wielkości kroku). Ustawienie zbyt wysokiego parametru może spowodować rozbieżność algorytmu; ustawienie go zbyt nisko spowalnia zbieżność. Konceptualnie proste rozszerzenie stochastycznego spadku gradientu sprawia, że szybkość uczenia się jest malejącą funkcją η t liczby iteracji t , dając harmonogram szybkości uczenia się , tak aby pierwsze iteracje powodowały duże zmiany parametrów, a późniejsze tylko dostrajanie. Takie rozkłady są znane od czasów pracy MacQueena nad grupowaniem k -średnich . Praktyczne wskazówki dotyczące wyboru wielkości stopnia w kilku wariantach SGD podaje Spall.
Niejawne aktualizacje (ISGD)
Jak wspomniano wcześniej, klasyczne zejście gradientu stochastycznego jest generalnie wrażliwe na szybkość uczenia się η . Szybka konwergencja wymaga dużych szybkości uczenia się, ale może to powodować niestabilność numeryczną. Problem można w dużej mierze rozwiązać, rozważając niejawne aktualizacje , w których gradient stochastyczny jest oceniany w następnej iteracji, a nie w bieżącej:
To równanie jest niejawne, ponieważ stronach równania Jest to stochastyczna postać metody gradientu proksymalnego, ponieważ aktualizację można również zapisać jako:
Jako przykład rozważmy metodę najmniejszych kwadratów z cechami i obserwacjami . Chcemy rozwiązać:
gdzie wskazuje produkt wewnętrzny. Zauważ, że może mieć „1” jako pierwszy element zawierający punkt przecięcia. Klasyczny gradient stochastyczny przebiega w następujący sposób:
gdzie jednolicie próbkowany między 1 a . Chociaż teoretyczna zbieżność tej procedury zachodzi przy stosunkowo łagodnych założeniach, w praktyce procedura ta może być dość niestabilna. W szczególności, gdy jest błędnie określony, tak że ma duże bezwzględne wartości własne z dużym prawdopodobieństwem, procedura może różnić się numerycznie w ciągu kilku iteracji. W przeciwieństwie do tego, niejawne stochastyczne zejście gradientowe (w skrócie ISGD) można rozwiązać w postaci zamkniętej jako:
Ta procedura pozostanie liczbowo stabilna praktycznie dla wszystkich, uczenia się jest teraz znormalizowane. Takie porównanie klasycznego i niejawnego stochastycznego spadku gradientu w problemie najmniejszych kwadratów jest bardzo podobne do porównania między najmniejszymi średnimi kwadratami (LMS) a znormalizowanym filtrem najmniejszych średnich kwadratów (NLMS) .
Chociaż rozwiązanie w postaci zamkniętej dla ISGD jest możliwe tylko w metodzie najmniejszych kwadratów, procedurę można skutecznie wdrożyć w szerokiej gamie modeli. W szczególności załóżmy, że od poprzez liniową kombinację z mogli napisz q może również zależeć od ale nie od z wyjątkiem . Metoda najmniejszych kwadratów jest zgodna z tą zasadą, podobnie jak regresja logistyczna i większość uogólnione modele liniowe . Na przykład w najmniejszych kwadratach } gdzie _ jest funkcją logistyczną . W regresji Poissona , } i tak dalej.
W takich ustawieniach ISGD jest po prostu implementowany w następujący sposób. Niech , gdzie jest . Wtedy ISGD jest równoważne z:
Współczynnik skalowania znaleźć metodą bisekcji jak wspomniane wyżej uogólnione modele liniowe, ) granice wyszukiwania dla to
Pęd
Dalsze propozycje obejmują metodę momentum , która pojawiła się w artykule Rumelharta , Hintona i Williamsa na temat uczenia się metodą wstecznej propagacji. Stochastyczny spadek gradientu z pędem zapamiętuje aktualizację Δ w przy każdej iteracji i określa następną aktualizację jako liniową kombinację gradientu i poprzedniej aktualizacji:
co prowadzi do:
gdzie należy oszacować parametr , który minimalizuje wielkością kroku (czasami nazywaną się w uczeniu maszynowym) i w jest współczynnikiem rozpadu między 0 a 1, który określa względny udział obecnego gradientu i wcześniejszych gradientów w zmianie masy
Nazwa pęd wywodzi się z analogii do pędu w fizyce: wektor ciężaru , uważany za cząstkę podróżującą przez przestrzeń parametrów, podlega przyspieszeniu gradientu straty („ siła ”). W przeciwieństwie do klasycznego gradientu stochastycznego, ma tendencję do poruszania się w tym samym kierunku, zapobiegając oscylacjom. Momentum jest z powodzeniem wykorzystywane przez informatyków w szkoleniu sztucznych sieci neuronowych od kilkudziesięciu lat. Metoda pędu jest ściśle związana z niedotłumiona dynamika Langevina i może być połączona z symulowanym wyżarzaniem .
Uśrednianie
Uśrednione stochastyczne zejście gradientowe , wymyślone niezależnie przez Rupperta i Polyaka pod koniec lat 80., jest zwykłym stochastycznym zejściem gradientowym, które rejestruje średnią swojego wektora parametrów w czasie. Oznacza to, że aktualizacja jest taka sama jak w przypadku zwykłego gradientu stochastycznego, ale algorytm również ją śledzi
- .
Po zakończeniu optymalizacji ten uśredniony wektor parametrów zajmuje miejsce w .
Ada Grad
AdaGrad (dla adaptacyjnego algorytmu gradientu ) to zmodyfikowany stochastyczny algorytm opadania gradientu z szybkością uczenia się na parametr , opublikowany po raz pierwszy w 2011 r. Nieformalnie zwiększa to szybkość uczenia się dla rzadszych parametrów i zmniejsza szybkość uczenia się dla tych, które są mniej rzadkie. Ta strategia często poprawia wydajność konwergencji w porównaniu ze standardowym gradientem stochastycznym w ustawieniach, w których dane są rzadkie, a rzadkie parametry dostarczają więcej informacji. Przykłady takich zastosowań obejmują przetwarzanie języka naturalnego i rozpoznawanie obrazów. Nadal ma podstawową szybkość uczenia się η , ale jest to mnożone przez elementy wektora { G j , j } , który jest przekątną zewnętrznej macierzy iloczynu
gdzie , gradient w iteracji τ . Przekątna jest dana przez
- .
Ten wektor jest aktualizowany po każdej iteracji. Formuła aktualizacji jest teraz
lub, napisane jako aktualizacje parametrów,
Każde { G ( i , i ) } powoduje wzrost współczynnika skalującego dla szybkości uczenia się, który ma zastosowanie do pojedynczego parametru wi . Ponieważ mianownik w tym czynniku jest normą ℓ 2 poprzednich pochodnych, ekstremalne aktualizacje parametrów są tłumione, podczas gdy parametry, które otrzymują niewiele lub małe aktualizacje, uzyskują wyższe wskaźniki uczenia się.
Zaprojektowany dla problemów wypukłych , AdaGrad został z powodzeniem zastosowany do optymalizacji niewypukłych.
RMSProp
RMSProp (od Root Mean Square Propagation) to także metoda, w której szybkość uczenia się jest dostosowywana do każdego z parametrów. Chodzi o to, aby podzielić szybkość uczenia się dla wagi przez średnią ruchomą wielkości ostatnich gradientów dla tej wagi. Tak więc najpierw średnia krocząca jest obliczana jako średnia kwadratowa,
gdzie czynnikiem zapominania
A parametry są aktualizowane jako,
RMSProp wykazał dobrą adaptację szybkości uczenia się w różnych aplikacjach. RMSProp można postrzegać jako uogólnienie Rprop i jest w stanie pracować z mini-partiami, a także w przeciwieństwie do tylko pełnych partii.
Adama
Adam (skrót od Adaptive Moment Estimation) to aktualizacja optymalizatora RMSProp . W tym algorytmie optymalizacji używane są średnie ruchome zarówno gradientów, jak i drugich momentów gradientów. uwagę parametry i funkcję straty gdzie bieżącą iterację szkolenia indeksowane w ), aktualizacja parametrów Adama jest dana przez:
gdzie małym skalarem (np używanym do zapobiegania dzieleniu przez 0 i np 0,9) i (np. 0,999) są współczynnikami zapominania odpowiednio dla gradientów i drugich momentów gradientów. Podnoszenie do kwadratu i pierwiastkowanie odbywa się po elementach. Głęboki wpływ tego algorytmu zainspirował wiele nowszych, mniej znanych schematów optymalizacji opartych na pędzie, wykorzystujących gradienty wzmocnione przez Nesterova (np. NAdam i FASFA ) oraz różne interpretacje informacji drugiego rzędu (np. Powerpropagation i AdaSqrt ). Jednak najczęściej używanymi wariantami są AdaMax , który uogólnia Adama za pomocą normy nieskończoności, oraz AMSGrad , który dotyczy problemów konwergencji od Adama.
Wycofanie wyszukiwania linii
Wyszukiwanie linii z wycofywaniem to kolejny wariant zejścia po gradiencie. Wszystkie poniższe pochodzą ze wspomnianego linku. Opiera się na warunku znanym jako warunek Armijo-Goldsteina. Obie metody umożliwiają zmianę szybkości uczenia się w każdej iteracji; jednak sposób zmiany jest inny. Wyszukiwanie linii wstecznej wykorzystuje oceny funkcji do sprawdzania stanu Armijo iw zasadzie pętla w algorytmie do określania szybkości uczenia się może być długa i nieznana z góry. Adaptacyjne SGD nie potrzebuje pętli w określaniu współczynników uczenia się. Z drugiej strony, adaptacyjne SGD nie gwarantuje „właściwości zejścia” – z której korzysta wyszukiwanie linii Backtracking – czyli to, że dla wszystkich n. Jeśli gradient funkcji kosztu jest globalnie ciągły Lipschitza, ze stałą Lipschitza L i szybkością uczenia się rzędu 1/L, to standardowa wersja SGD jest szczególnym przypadkiem wyszukiwania liniowego wstecznego.
Metody drugiego rzędu
Stochastyczny odpowiednik standardowego (deterministycznego) algorytmu Newtona-Raphsona (metoda „drugiego rzędu”) zapewnia asymptotycznie optymalną lub prawie optymalną formę optymalizacji iteracyjnej przy ustawieniu aproksymacji stochastycznej [ potrzebne źródło ] . Metoda wykorzystująca bezpośrednie pomiary macierzy Hessego sum w funkcji ryzyka empirycznego opracowali Byrd, Hansen, Nocedal i Singer. Jednak bezpośrednie określenie wymaganych macierzy Hessego do optymalizacji może nie być możliwe w praktyce. Spall i inni podają praktyczne i teoretycznie rozsądne metody dla wersji SGD drugiego rzędu, które nie wymagają bezpośrednich informacji z Hesji. (Mniej wydajną metodę opartą na skończonych różnicach zamiast jednoczesnych perturbacji podaje Ruppert.) Innym podejściem do aproksymacyjnej macierzy Hessego jest zastąpienie jej macierzą informacyjną Fishera, która przekształca zwykły gradient na naturalny. Te metody, które nie wymagają bezpośrednich informacji z Hesji, opierają się albo na wartościach sum w powyższej empirycznej funkcji ryzyka, albo na wartościach gradientów sum (tj. danych wejściowych SGD). W szczególności optymalność drugiego rzędu jest asymptotycznie osiągalna bez bezpośredniego obliczania macierzy Hessego sum w empirycznej funkcji ryzyka.
Notatki
Zobacz też
- Wycofanie wyszukiwania linii
- Zejście współrzędnych – zmienia jedną współrzędną na raz, a nie jeden przykład
- Klasyfikator liniowy
- Uczenie maszynowe w Internecie
- Stochastyczna wspinaczka górska
- Redukcja wariancji stochastycznej
Dalsza lektura
- Bottou, Léon (2004), „Stochastic Learning” , Zaawansowane wykłady na temat uczenia maszynowego , LNAI, tom. 3176, Springer, s. 146–168, ISBN 978-3-540-23122-6
- Buduma, Nikhil; Locascio, Nicholas (2017), „Beyond Gradient Descent” , Podstawy głębokiego uczenia się: projektowanie algorytmów inteligencji maszynowej nowej generacji , O'Reilly
- LeCun, Yann A .; Bottou, Leon; Orr, Genevieve B.; Müller, Klaus-Robert (2012), „Efficient BackProp” , Sieci neuronowe: Tricks of the Trade , Springer, s. 9–48, ISBN 978-3-642-35288-1
- Spall, James C. (2003), Wprowadzenie do wyszukiwania i optymalizacji stochastycznej , Wiley , ISBN 978-0-471-33052-3
Linki zewnętrzne
- Wykorzystanie stochastycznego spadku gradientu w C++, Boost, Ublas do regresji liniowej
- Algorytmy uczenia maszynowego
- „Zejście gradientowe, jak uczą się sieci neuronowe” . 3Niebieski1Brązowy . 16 października 2017 r. Zarchiwizowane od oryginału w dniu 22.12.2021 r. – przez YouTube .
- Goh (4 kwietnia 2017). „Dlaczego Momentum naprawdę działa” . destylować . 2 (4). doi : 10.23915/destyl.00006 . Interaktywny papier wyjaśniający pęd.