Strona głównaArtykułyUczenie Maszynowe

Spadek Gradientu w 3D: Interpretacja Powierzchni Strat Jak Krajobraz

Obserwuj SGD, Momentum, RMSprop i Adam poruszające się po tych samych powierzchniach Rosenbroka i Rastrigina – i zobacz dokładnie, dlaczego każdy optymalizator istnieje.

mysimulator teamZaktualizowano — czerwiec 2026≈ 9 min czytania▶ Otwórz symulację

Funkcja straty to krajobraz

Każde uruchomienie treningowe sieci neuronowej jest, geometrycznie rzecz biorąc, kulą wijącą się w dół na krajobrazie zdefiniowanym przez funkcję straty — wysokość to strata, położenie to parametry modelu, a trening to poszukiwanie najniższego punktu dostępnego z dowolnej pozycji wyjściowej. Dla sieci z milionami parametrów ten krajobraz istnieje w przestrzeni, której nie można narysować, ale jego jakościowe ułożenia - wąskie zakrzywione doliny, płaskie plateau, pola małych lokalnych wgłębień - są dokładnie takie same, jak te widoczne na klasycznych testowych funkcjach dwuparametrycznych, dlatego też badacze optymalizacyjni nadal polegają na nich, aby zbudować intuicję.

demo na żywo · powiązana symulacja● LIVE

Trzy krajobrazy, trzy tryby awarii

Funkcja Rosenbroka – f(x,y) = (a-x)² + b(y-x²)² – wyrywa długi, cienki, zakrzywiony paraboliczny wął: gradient przez ten wął jest stromy, a gradient wzdłuż niego do minimum prawie płaski, ekstremalny przypadek tego, co teoria optymalizacji nazywa źle uwarunkowaniem. Funkcja Rastrigina dodaje falowanie cosinusowe na szczycie miski, tworząc tysiące płytkich lokalnych minimów wokół jednego globalnego – test obciążenia, czy optymalizator utknął. Funkcja Himmelblau ma cztery oddzielne globalne minimum o równej wysokości, przydatna do pokazania, że gdzie zaczynasz, tak naprawdę docierasz do jakiegoś minimum – gradientowe zejście nie ma możliwości wiedzieć, że gdzieś indziej istnieje lepsze.

Proste SGD: właściwy kierunek, niewłaściwy krok

Prosta metoda gradientu (SGD) podejmuje najprostsze działanie: wykonuje krok wprost przeciwnym do gradientu, przeskalowany przez stałą wartość współczynnika uczenia się.

θ = θ - lr * grad(θ) Na dolinie Rosenbroka to wyraźnie zawodzi: ponieważ gradient wskazuje głównie wzdłuż wąskiego kierunku, a nie płaskiego, SGD porusza się zygzakiem, tracąc prawie całą energię na kierunek, który nie ma znaczenia, i robi bardzo powolne postępy w stronę prawdziwego minimum. Jeśli współczynnik uczenia się jest ustawiony zbyt wysoko w jakimkolwiek punkcie tej powierzchni, kroki przeskakują i rozbiegają się; jeśli jest ustawiony zbyt nisko, postęp wzdłuż płytkiego dnie doliny jest lodowaty. Pojedynczy globalny współczynnik uczenia się nie może być prawidłowy dla obu kierunków jednocześnie.

theta = theta - lr * grad(theta)

Momentum: pamiętanie, gdzie kierowałeś się w zębie

Momentum utrzymuje bieżącą, wyeksponowaną w czasie wartość średnią z poprzednich gradientów i kroków w tym kierunku, zamiast suwowego natychmiastowego gradientu:

v = beta * v + grad(theta) // beta ~ 0.9, bieżąca prędkość θ = θ - lr * v

Dzięki skręcającym elementom przechodzącym przez dolinę Rosenbroka, które kierują się w alternatywnych kierunkach, częściowo znoszą się w średniej wartości, podczas gdy mały, spójny komponent na dnie doliny kumuluje się i wzmacnia – kula zachowuje się bardziej jak fizyczny obiekt o sile tarcia niż bezwzględny punkt reagujący tylko na lokalny nachylenie. W rezultacie obserwujemy znacznie szybszy postęp wzdłuż płytkich, spójnych kierunków oraz tłumione oscylacje wzdłuż stromych, zmiennych.

v = beta * v + grad(theta)      // beta ~ 0.9, a running velocity
theta = theta - lr * v

RMSprop: adaptacyjny współczynnik uczenia się w kierunku

RMSprop atakuje problem złego uwarunkowania z perspektywy przeciwnej: zamiast wygładzać kierunek, śledzi bieżącą średnią kwadratów gradientu dla każdego parametru i dzieli krok przez pierwiastek jego kwadratu.

s = decay * s + (1 - decay) * grad(theta)^2 theta = theta - lr * grad(theta) / (sqrt(s) + eps) Kierunki, w których gradient jest konsekwentnie duży (ostre ściany doliny Rosenbroka), otrzymują automatycznie skurczony współczynnik kroku; kierunki, w których gradient pozostaje mały (płytkie dno), otrzymują powiększony współczynnik kroku. Każdy parametr skutecznie zdobywa swój własny adaptacyjny współczynnik uczenia się, co dokładnie jest tym, czego potrzebuje złowarte dolina i czego nie może zapewnić pojedynczy globalny współczynnik.

s = decay * s + (1 - decay) * grad(theta)^2
theta = theta - lr * grad(theta) / (sqrt(s) + eps)

Adam: momentum i średnia kwadratowa RMSprop połączone

Adam (Kingma i Ba, 2014) śledzi zarówno pierwszą chwilę (średnia ruchoma gradientu z Momentum) jak i drugą chwilę (średnia kwadratowa gradientu z RMSprop), stosuje korekcję błędu uwzględniającą początek od zera dla obu, oraz łączy je w aktualizację. Szybko konwerguje na większości praktycznych powierzchni strat z minimalną kalibracją współczynnika uczenia się, co sprawiło, że stał się domyślnym optymalizatorem do trenowania sieci neuronowych – choć dobrze dostrojony SGD z momentum wciąż jest konkurencyjny i czasem lepiej generalizuje na niektórych benchmarkach wizyjnych. Na demonstracji Rosenbroka obserwuj, jak Adam niemal natychmiast osiada na dnie doliny, podczas gdy prosty SGD nadal przecina ściany.

Frequently asked questions

Dlaczego prosty SGD ząbkuje na funkcji Rosenbroka?

Funkcja Rosenbroka charakteryzuje się długim, wąskim i zakrzywym wyprofilowaniem, co oznacza, że gradient wskazuje prawie prostopadle do doliny (kierunek stromego spadku) zamiast wzdłuż niej (kierunek płytkiego spadku, w stronę minimum). Prosty gradient Descent zawsze wykonuje krok dokładnie przeciwny do gradientu, powodując tułaczność między stromymi ściankami i bardzo powolny postęp w kierunku rzeczywistego optimum.

Jakie jest różnica między Momentum a RMSprop?

Momentum gromadzi uśrednioną wartość surowego gradientu (pierwszego momentu) i utrzymuje się w konsekwentnym kierunku, tłumiąc tułaczność i przyspieszając przez płaskie, stałe nachylenia. RMSprop natomiast gromadzi uśredloną wartość kwadratowego gradientu (drugiego momentu) i dzieli krok przez pierwiastek z jego kwadratu, co zmniejsza kroki w kierunkach dużych, szumów gradientów i powiększa je w płaskich obszarach. Rozwiązują one różne problemy, a Adam łączy obie metody.

Czy Adam zawsze jest lepszy od prostego SGD podczas trenowania sieci neuronowych?

Nie zawsze. Adam zazwyczaj konwerguje szybciej i wymaga mniej strojenia współczynnika uczenia, dlatego jest to domyślny punkt wyjściowy. Jednak dobrze dostrojony SGD z momentum często lepiej generalizuje na pewnych zadaniach wizyjnych, a kilka opublikowanych wyników pokazuje, że Adam ustala się w rozwiązaniu z wyższą błędnością testową, chyba że jest on starannie regularizowany, dlatego praktycy nadal porównują oba algorytmy zamiast zakładać, że Adam zawsze wygrywa.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Gradient Descent 3D i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Gradient Descent 3D

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)