W ogólnym ustawieniu algorytmu spadku gradientu mamy gdzie jest bieżącym punktem, jest rozmiarem kroku, a jest gradientem oceniono na .
Widziałem w niektórych algorytmach, ludzie używają znormalizowanego gradientu zamiast gradientu . Chciałem wiedzieć, jaka jest różnica w stosowaniu znormalizowanego gradientu i po prostu gradientu .
algorithms
optimization
Uczeń
źródło
źródło
Odpowiedzi:
W algorytmie opadania gradientu algorytm kontynuuje wyszukiwanie kierunku, w którym można znaleźć optymalne rozwiązanie. Optymalnym kierunkiem okazuje się gradient. Ponieważ jednak interesuje nas tylko kierunek, a niekoniecznie to, jak daleko posuwamy się w tym kierunku, zwykle nie jesteśmy zainteresowani wielkością gradientu. W ten sposób znormalizowany gradient jest wystarczający do naszych celów i pozwalamyη dyktuj, jak daleko chcemy się poruszać w obliczonym kierunku. Jeśli jednak użyjesz nienormalizowanego zejścia gradientu, to w dowolnym punkcie odległość, którą poruszasz się w optymalnym kierunku, jest podyktowana wielkością gradientu (w istocie podyktowana powierzchnią funkcji celu, tj. Punkt na stromej powierzchni będzie miał duża jasność, podczas gdy punkt na dość płaskiej powierzchni będzie miał małą jasność).
Z powyższego mógłbyś zdać sobie sprawę, że normalizacja gradientu to dodatkowa moc kontrolna, którą otrzymujesz (czy jest to przydatne, czy nie, zależy od twojej konkretnej aplikacji). Mam na myśli powyższe:η
η
1] Jeśli chcesz się upewnić, że algorytm porusza się w ustalonych rozmiarach kroków w każdej iteracji, możesz użyć znormalizowanego spadku gradientu ze stałym . 2] Jeśli chcesz mieć pewność, że Twój algorytm porusza się w krokach podyktowanych przez ciebie dokładnie, to znowu możesz użyć znormalizowanego zejścia gradientu z określoną funkcją dla rozmiaru kroku zakodowanego w η .
3] Jeśli chcesz, aby wielkość gradientu decydowała o wielkości kroku, użyjesz nietypowego spadku gradientu. Istnieje kilka innych wariantów, na przykład wielkość gradientu decyduje o wielkości kroku, ale nakładasz na niego limit i tak dalej.
Teraz wielkość kroku wyraźnie wpływa na szybkość konwergencji i stabilności. To, który z powyższych rozmiarów kroków najlepiej działa, zależy wyłącznie od zastosowania (tj. Funkcji celu). W niektórych przypadkach można przeanalizować związek między prędkością konwergencji, stabilnością a rozmiarem kroku. Ta relacja może następnie dać wskazówkę, czy chcesz przejść ze znormalizowanym czy nienormalizowanym spadkiem gradientu.
Podsumowując, nie ma różnicy między znormalizowanym a nienormalizowanym spadkiem gradientu (o ile idzie teoria algorytmu). Ma to jednak praktyczny wpływ na szybkość konwergencji i stabilności. Wybór jednej z drugiej zależy wyłącznie od danego zastosowania / celu.
źródło
źródło
źródło