Jaka jest różnica między spadkiem gradientu a spadkiem gradientu stochastycznego?


Odpowiedzi:


28

Aby uzyskać szybkie proste wyjaśnienie:

Zarówno w przypadku opadania gradientu (GD), jak i stochastycznego spadku gradientu (SGD), aktualizujesz zestaw parametrów w sposób iteracyjny, aby zminimalizować funkcję błędu.

Będąc w GD, musisz przeprowadzić WSZYSTKIE próbki w zestawie treningowym, aby wykonać pojedynczą aktualizację parametru w określonej iteracji, w SGD, z drugiej strony, używasz TYLKO JEDNEJ lub SUBSETU próbki treningowej z zestawu treningowego wykonać aktualizację parametru w określonej iteracji. Jeśli używasz SUBSET, nazywa się to Minibatch Stochastic Gradient Descent.

Tak więc, jeśli liczba próbek treningowych jest duża, w rzeczywistości bardzo duża, wówczas użycie opadania gradientu może potrwać zbyt długo, ponieważ w każdej iteracji, gdy aktualizujesz wartości parametrów, przechodzisz przez kompletny zestaw treningowy. Z drugiej strony korzystanie z SGD będzie szybsze, ponieważ użyjesz tylko jednej próbki treningowej i zacznie ona poprawiać się od pierwszej próbki.

SGD często zbiega się znacznie szybciej niż GD, ale funkcja błędu nie jest tak zminimalizowana jak w przypadku GD. Często w większości przypadków wystarczające przybliżenie SGD dla wartości parametrów jest wystarczające, ponieważ osiągają wartości optymalne i tam oscylują.

Jeśli potrzebujesz tego przykładu z praktycznym przypadkiem, sprawdź tutaj notatki Andrew NG, w których wyraźnie pokazuje on kroki w obu przypadkach. cs229-notes

Źródło: Quora Thread


dzięki, krótko tak? Istnieją trzy warianty zejścia gradientu: Partia, Stochastic i Minibatch: Partia aktualizuje wagi po ocenie wszystkich próbek treningowych. Stochastyczne, wagi są aktualizowane po każdej próbce treningowej. Minibatch łączy to, co najlepsze z obu światów. Nie korzystamy z pełnego zestawu danych, ale nie korzystamy z pojedynczego punktu danych. Używamy losowo wybranego zestawu danych z naszego zestawu danych. W ten sposób obniżamy koszt obliczeń i osiągamy mniejszą wariancję niż wersja stochastyczna.
Deweloper

5

Włączenie słowa stochastic oznacza po prostu, że losowe próbki z danych treningowych są wybierane w każdym przebiegu, aby zaktualizować parametr podczas optymalizacji, w ramach spadku gradientu .

Robiąc to, nie tylko obliczone błędy i aktualizacje wag w szybszych iteracjach (ponieważ przetwarzamy tylko niewielki wybór próbek za jednym razem), często pomaga również szybciej przejść w kierunku wartości optymalnej. Mają zapoznać się z odpowiedziami tutaj , aby uzyskać więcej informacji, dlaczego za pomocą stochastycznych minibatches za szkolenie oferuje zalety.

Jednym z być może minusów jest to, że ścieżka do optymalnego (zakładając, że zawsze będzie to ten sam optymalny) może być znacznie głośniejsza. Więc zamiast ładnej gładkiej krzywej strat pokazującej, jak błąd maleje przy każdej iteracji opadania gradientu, możesz zobaczyć coś takiego:

hałaśliwa krzywa strat

Widać wyraźnie, że strata zmniejsza się z czasem, jednak istnieją duże różnice między epokami (epoka treningowa do partii treningowej), więc krzywa jest głośna.

Jest tak po prostu dlatego, że obliczamy średni błąd naszego stochastycznie / losowo wybranego podzbioru, z całego zestawu danych, w każdej iteracji. Niektóre próbki powodują wysoki błąd, niektóre niski. Tak więc średnia może się różnić w zależności od tego, które próbki losowo wykorzystaliśmy do jednej iteracji spadku gradientu.


dzięki, krótko tak? Istnieją trzy warianty zejścia gradientu: Partia, Stochastic i Minibatch: Partia aktualizuje wagi po ocenie wszystkich próbek treningowych. Stochastyczne, wagi są aktualizowane po każdej próbce treningowej. Minibatch łączy to, co najlepsze z obu światów. Nie korzystamy z pełnego zestawu danych, ale nie korzystamy z pojedynczego punktu danych. Używamy losowo wybranego zestawu danych z naszego zestawu danych. W ten sposób zmniejszamy koszt obliczeń i osiągamy mniejszą wariancję niż wersja stochastyczna.
Deweloper

N.n=1

tks, to jasne!
datdinhquoc

5

W Gradient Descent lub Batch Gradient Descent wykorzystujemy całe dane treningowe dla każdej epoki, podczas gdy w Stochastic Gradient Descent używamy tylko jednego przykładu treningowego na epokę, a Mini-batch Gradient Descent leży pomiędzy tymi dwoma skrajnościami, w których możemy użyć mini-partia (mała porcja) danych treningowych na epokę, reguła kciuka do wybierania wielkości mini-partii ma moc 2 takich jak 32, 64, 128 itd.
Więcej informacji: cs231n notatki z wykładu


dzięki, krótko tak? Istnieją trzy warianty zejścia gradientu: Partia, Stochastic i Minibatch: Partia aktualizuje wagi po ocenie wszystkich próbek treningowych. Stochastyczne, wagi są aktualizowane po każdej próbce treningowej. Minibatch łączy to, co najlepsze z obu światów. Nie korzystamy z pełnego zestawu danych, ale nie korzystamy z pojedynczego punktu danych. Używamy losowo wybranego zestawu danych z naszego zestawu danych. W ten sposób zmniejszamy koszt obliczeń i osiągamy mniejszą wariancję niż wersja stochastyczna.
Deweloper
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.