Gradient descent (spadek gradientowy) to fundamentalny algorytm optymalizacji w uczeniu maszynowym i sieciach neuronowych. Jego zadanie jest proste: znaleźć wartości parametrów (wag), które minimalizują funkcję straty. Innymi słowy — sprawić, żeby predykcje modelu były jak najbliższe prawdziwym wartościom.

Intuicja: schodzenie ze wzgórza we mgle

Wyobraź sobie, że stoisz na szczycie wzgórza we gęstej mgle. Chcesz zejść na dół, ale nie widzisz doliny. Co robisz? Wyczuwasz, w którym kierunku teren opada najstrumniej — i stawiasz krok w tym kierunku. Powtarzasz to wielokrotnie, aż dojdziesz do najniższego punktu.

Gradient descent działa identycznie:

  • Wzgórze = funkcja straty (loss function) w przestrzeni parametrów
  • Twoja pozycja = aktualne wartości wag
  • Nachylenie terenu = gradient (wektor pochodnych cząstkowych)
  • Krok w dół = aktualizacja wag w kierunku ujemnego gradientu

Ładowanie wizualizacji...

Matematyka gradient descent

Wzór aktualizacji

W każdej iteracji wagi są aktualizowane:

θ = θ - η · ∇L(θ)

Gdzie:

  • θ — wektor parametrów (wag) modelu
  • η (eta) — learning rate (współczynnik uczenia) — rozmiar kroku
  • ∇L(θ) — gradient funkcji straty L względem parametrów θ

Gradient ∇L(θ) to wektor pochodnych cząstkowych: [∂L/∂θ₁, ∂L/∂θ₂, ..., ∂L/∂θₙ]. Wskazuje kierunek najszybszego wzrostu funkcji straty — dlatego idziemy w przeciwnym kierunku (stąd minus).

Funkcja straty (Loss Function)

Gradient descent minimalizuje funkcję straty, która mierzy „jak źle" model przewiduje:

  • MSE (Mean Squared Error) — regresja: L = (1/n) · Σ(yᵢ - ŷᵢ)²
  • Cross-Entropy — klasyfikacja: L = -(1/n) · Σ[yᵢ·log(ŷᵢ) + (1-yᵢ)·log(1-ŷᵢ)]

Gradient tej funkcji oblicza backpropagation.

Warianty gradient descent

1. Batch Gradient Descent (pełny)

Oblicza gradient na całym zbiorze treningowym przed aktualizacją wag.

Zalety:

  • Stabilny, deterministyczny gradient
  • Gwarancja zbieżności do minimum (dla funkcji wypukłych)

Wady:

  • Ekstremalnie wolny na dużych zbiorach danych — jeden krok wymaga przejścia przez miliony przykładów
  • Wymaga załadowania całego zbioru do pamięci
  • Łatwo wpada w lokalne minima

2. Stochastic Gradient Descent (SGD)

Oblicza gradient na jednym losowym przykładzie i natychmiast aktualizuje wagi.

Zalety:

  • Bardzo szybki — aktualizacja po każdym przykładzie
  • Szum pomaga uciekać z lokalnych minimów
  • Nie wymaga dużej pamięci

Wady:

  • Gradient jest zaszumiony — wagi „skaczą" chaotycznie
  • Wolniejsza zbieżność (ale szybsza w praktyce niż batch)
  • Nie korzysta z wektoryzacji GPU

3. Mini-batch Gradient Descent

Kompromis: oblicza gradient na małej partii (mini-batch) przykładów (typowo 32–256).

Zalety:

  • Balans między stabilnością (batch) a szybkością (SGD)
  • Efektywne wykorzystanie GPU (operacje macierzowe na mini-batchach)
  • Umiarkowany szum — pomaga w eksploracji, nie destabilizuje

Wady:

  • Hiperparametr: rozmiar mini-batcha wymaga dostrojenia

Mini-batch gradient descent to de facto standard w treningu sieci neuronowych. Gdy ktoś mówi „SGD" w kontekście deep learning, zazwyczaj ma na myśli mini-batch SGD.

Learning rate — najważniejszy hiperparametr

Learning rate (η) kontroluje rozmiar kroków:

  • Za duży η → wagi „przeskakują" minimum, trening oscyluje lub dywerguje
  • Za mały η → trening trwa wieczność, łatwo utknąć w lokalnym minimum
  • Optymalny η → szybka, stabilna zbieżność

Harmonogramy learning rate (schedules)

Zamiast stałego η, popularne jest zmniejszanie go w trakcie treningu:

  • Step decay — zmniejsz η o połowę co N epok
  • Cosine annealing — η maleje gładko według krzywej kosinusowej
  • Warmup — zacznij od małego η, zwiększ do pełnej wartości, potem zmniejszaj. Standardowa praktyka w treningu transformerów
  • Cyclical learning rate — η oscyluje między wartością minimalną a maksymalną

Zaawansowane optymalizatory

Prosty SGD ma ograniczenia: ten sam learning rate dla wszystkich parametrów, brak „pamięci" z poprzednich kroków. Zaawansowane optymalizatory rozwiązują te problemy:

SGD z momentum

Dodaje „bezwładność" — aktualizacja uwzględnia kierunek poprzednich kroków:

v = β · v + η · ∇L(θ) θ = θ - v

Gdzie β (typowo 0,9) kontroluje siłę momentum. Efekt: szybsze schodzenie w jednym kierunku, wytłumienie oscylacji.

RMSProp

Adaptuje learning rate osobno dla każdego parametru, dzieląc przez średnią kwadratów ostatnich gradientów:

s = β · s + (1-β) · (∇L)² θ = θ - η · ∇L / (√s + ε)

Parametry z dużymi gradientami mają mniejszy efektywny learning rate (i odwrotnie). Stabilizuje trening.

Adam (Adaptive Moment Estimation)

Łączy momentum i RMSProp — najpopularniejszy optymalizator w deep learning:

m = β₁ · m + (1-β₁) · ∇L (pierwszy moment — średnia gradientów) v = β₂ · v + (1-β₂) · (∇L)² (drugi moment — wariancja gradientów) θ = θ - η · m̂ / (√v̂ + ε)

Gdzie m̂ i v̂ to wartości skorygowane o bias (ważne w pierwszych iteracjach, gdy m i v są bliskie 0).

Domyślne hiperparametry: η = 0,001, β₁ = 0,9, β₂ = 0,999, ε = 10⁻⁸

AdamW

Wariant Adama z poprawnym weight decay (regularyzacja L2). Decoupled weight decay zamiast L2 regularyzacji w gradiencie. Standard w treningu transformerów — używany do treningu GPT, BERT, Claude.

Problemy optymalizacji w głębokich sieciach

Lokalne minima i siodła

Funkcja straty głębokiej sieci ma miliardy wymiarów. W tak wysokowymiarowej przestrzeni prawdziwe lokalne minima są rzadkie — większość „pułapek" to punkty siodłowe (saddle points), w których gradient jest zerowy, ale punkt nie jest minimum we wszystkich kierunkach. SGD z szumem i momentum zazwyczaj potrafi uciec z punktów siodłowych.

Plateau

Płaskie regiony funkcji straty, gdzie gradient jest bliski zeru. Trening „staje w miejscu". Rozwiązania: momentum (przeskakuje plateau dzięki bezwładności), zwiększenie learning rate, zmiana optymalizatora.

Overfitting

Gradient descent minimalizuje stratę treningową — ale nie gwarantuje dobrej generalizacji. Techniki regularyzacji (dropout, weight decay, early stopping) zapobiegają nadmiernemu dopasowaniu.

Gradient descent w praktyce — podsumowanie

Aspekt Rekomendacja
Wariant Mini-batch SGD lub Adam
Rozmiar mini-batcha 32–256 (zależy od GPU i danych)
Learning rate Adam: 3e-4 (domyślnie), SGD: 0,1 z decay
Schedule Cosine annealing z warmupem (transformery)
Optymalizator do transformerów AdamW
Optymalizator do CNN SGD z momentum (0,9) lub Adam

Gradient descent to silnik uczenia maszynowego. Backpropagation oblicza kierunek aktualizacji (gradienty), gradient descent decyduje o wielkości kroku i wykonuje aktualizację. Razem tworzą mechanizm, dzięki któremu miliardy parametrów sieci neuronowej „dojrzewają" do rozwiązywania złożonych problemów.