Gradientowe zejście jest prawdopodobnie najbardziej uznaną strategią optymalizacji wykorzystywaną w nauczaniu głębokim i maszynowym. Naukowcy często używają jej, gdy istnieje szansa połączenia każdego algorytmu z modelami szkoleniowymi. Zrozumienie algorytmu zejścia gradientowego jest stosunkowo proste, a jego wdrożenie jest jeszcze prostsze. Omówmy wewnętrzne funkcjonowanie zejścia gradientowego, jego różne rodzaje i zalety.
Czym jest zejście gradientowe?
Programiści wykorzystują zejście gradientowe jako algorytm optymalizacyjny podczas szkolenia modeli uczenia maszynowego. W oparciu o funkcje wypukłe, zniżanie gradientowe iteracyjnie poprawia niektóre z jego parametrów, aby zminimalizować daną funkcję do minimum.
Naukowcy używają zejścia gradientowego, aby znaleźć wartości parametrów funkcji, które maksymalnie obniżają koszty jej działania. Zaczynają od ustalenia początkowych wartości parametrów. Zejście gradientowe wykorzystuje rachunek do iteracyjnego dostosowywania wartości, aby zminimalizować konkretną funkcję kosztową. Musisz wiedzieć, co to jest gradient, aby w pełni zrozumieć zejście gradientowe.
Zrozumienie gradientu
Podstawową funkcją gradientu jest pomiar zmian w każdej wadze w odniesieniu do zmiany błędów. Pomyśl o gradientach jako o nachyleniu funkcji. Nachylenie będzie bardziej strome w zależności od wysokości nachylenia – jest to korzystny warunek dla modeli, ponieważ mogą się szybko nauczyć. Jednak model przestanie się uczyć, jeśli nachylenie stanie się zerowe. Matematycznie rzecz biorąc, gradient można najlepiej opisać jako ograniczoną pochodną w odniesieniu do jego wejść.
Pomyślmy o osobie z opaskami na oczach, która przy minimalnym wysiłku chce wejść na szczyt wzgórza. Najprawdopodobniej podejmie on długie kroki w kierunku możliwie najbardziej stromym. Jednakże, kroki tej osoby będą się zmniejszać, aby nie dopuścić do przeregulowania. Możesz użyć gradientu, aby opisać ten proces matematycznie.
Gradienty zaczynające się od X0 i kończące się na X1 są znacznie dłuższe niż te zaczynające się od X3 i kończące się na X4. Dlaczego? Ponieważ nachylenie/nachylenie wzgórza decyduje o długości wektora. Stanowi to idealne odwzorowanie omówionej wcześniej analogii skoczni, ponieważ staje się ona mniej stroma, gdy osoba wspina się wyżej.
Jak działa zjazd z nachyleniem?
Zamiast wspinać się na wzgórze, wyobraź sobie zejście z pochyleniem jako zejście do dna doliny. Zrozumienie tej analogii jest prostsze, ponieważ jest to algorytm minimalizacji, który zmniejsza konkretną funkcję. Zrozummy zjazd po nachyleniu za pomocą równania:
b reprezentuje następną pozycję pnącza
a oznacza jego obecne stanowisko
minus odnosi się do części minimalizacji zejścia nachylenia
Gamma znajdująca się w centrum stanowi czynnik oczekiwania
(Δf lit. a) ) oznacza najbardziej stromy kierunek opadania
Na początku możesz być zdezorientowany tą formułą, ale jest ona prostsza niż ci się wydaje. Informuje nas ona o następnej pozycji, którą musimy zająć: kierunku opadania.
Dlaczego wskaźnik nauki jest tak ważny?
Istotne jest, aby ustawić współczynnik uczenia się na odpowiednie wartości, aby pomóc w osiągnięciu lokalnego minimum nachylenia. Najlepiej byłoby więc nie ustawiać ich zbyt wysoko ani zbyt nisko. Jest to krytyczne, ponieważ osiągnięcie minimum może się skomplikować przy zbyt długich krokach. Dlatego też, jeśli ustawimy współczynniki uczenia się na mniejsze wartości, zejście z pochylni może w końcu osiągnąć lokalne minimum. Może to jednak zająć trochę czasu.
Jak zapewnić jego optymalne funkcjonowanie
Doskonałym sposobem na zapewnienie optymalnych funkcji nachylenia zjazdu jest organizacja funkcji kosztowej w czasie trwania optymalizacji. Wprowadź powtórzenia kwot na osi X, a wartość funkcji kosztowej wprowadzi się na osi y. Pomoże Ci to zobaczyć wartość funkcji kosztowej po każdej iteracji zejścia gradientowego, jednocześnie pozwalając Ci dostrzec dokładność współczynnika uczenia. Możesz również wypróbować różne wartości i wykreślić je razem.
Funkcja kosztowa zmniejszy się po każdej iteracji, jeśli zejście gradientowe będzie działać optymalnie. Zejście gradientowe jest zbieżne, gdy nie jest w stanie zredukować funkcji kosztowej i pozostaje na tym samym poziomie. Ilość iteracji zejścia gradientowego do zbieżności jest bardzo różna. Czasami potrzeba pięćdziesięciu iteracji, a innym razem może osiągnąć nawet dwa lub trzy miliony. Powoduje to trudności przy szacowaniu iteracji z wyprzedzeniem.
Niektóre algorytmy mogą automatycznie informować o zbieżności w opadaniu gradientowym. Najlepiej byłoby jednak ustalić z wyprzedzeniem próg konwergencji, który również jest dość trudny do oszacowania. Jest to istotny powód, dla którego proste wykresy są najlepsze do testowania konwergencji.
Różne rodzaje zejścia nachylenia
Znajdziesz tu trzy dobrze rozpoznane rodzaje zjazdów nachylonych. Przyjrzyjmy się im dokładnie:
Batch Gradient Descent
Znane również jako zjazd z gradientem waniliowym, zjazd z gradientem wsadowym oblicza błędy dla każdego przykładu w zbiorze danych szkoleniowych. Czyni to jednak dopiero po tym, jak każdy przykład treningu przechodzi rygorystyczną ocenę. Porównanie tego procesu do cyklu jest uczciwe. Niektóre osoby również nazywają to epoką szkoleniową.
Opadanie w gradiencie wsadowym ma kilka zalet. W szczególności jego wydajność obliczeniowa jest niezwykle przydatna, ponieważ rozwija stabilną zbieżność i stabilny gradient błędów. Niemniej jednak zejście w trybie gradientu wsadowego ma również pewne wady. Czasami jego stabilny gradient błędu może powodować niekorzystny stan zbieżności. Co więcej, potrzebuje on również obecności zbioru danych szkoleniowych w swoim algorytmie i pamięci.
Stochastyczny gradient zejścia
SGD zapewnia aktualizacje poszczególnych parametrów dla każdego przykładu szkolenia. Pomaga w zwróceniu uwagi na każdy przykład, zapewniając, że proces jest wolny od błędów. W zależności od problemu, może to pomóc SGD stać się szybsza w porównaniu do zjazdów z gradientem wsadowym. Jego regularne aktualizacje zapewniają nam szczegółowe wskaźniki poprawy.
Niemniej jednak, aktualizacje te są kosztowne obliczeniowo, zwłaszcza jeśli porówna się je z podejściem stosowanym przy zejściu metodą gradientu wsadowego. Co więcej, częstotliwość aktualizacji może powodować głośne gradienty i zapobiegać spadkowi wskaźnika błędów. Zamiast tego wskaźnik błędów przeskakuje i na dłuższą metę staje się problematyczny.
Opadanie w trybie Mini-Batch Gradient Descent
Naukowcy używają mini-segmentowego gradientu zejścia jako metody go-to-to. Dlaczego? Ponieważ jest to doskonałe połączenie koncepcji zejścia stochastycznego i zejścia wsadowego. Dzieli zbiory danych (szkolenie) na partie i przeprowadza aktualizację dla każdej partii, tworząc równowagę pomiędzy wydajnością BGD a wytrzymałością SCD.
Popularne mini-sezony wahają się od pięćdziesięciu do dwustu pięćdziesięciu sześciu, ale podobnie jak kilka innych metod uczenia maszynowego, nie ma jasnych zasad, ponieważ różnią się one w zależności od zastosowania. Ludzie używają go jako opcji wyjściowej do szkolenia sieci neuronowych. Jest to również popularny typ zejścia w głębokim środowisku uczenia się.