🎯 Definicja

Gradient to wektor pochodnych cząstkowych funkcji w odniesieniu do jej zmiennych wejściowych. W kontekście uczenia maszynowego i sieci neuronowych, gradient wskazuje kierunek i szybkość największego wzrostu (lub spadku) funkcji — najczęściej funkcji straty (loss function). Jest fundamentem algorytmów optymalizacji takich jak spadek gradientowy (gradient descent).

🔑 Kluczowe punkty

  • Gradient mówi, jak zmienić parametry modelu, aby zmniejszyć funkcję straty.
  • Używany w algorytmach optymalizacji: np. SGD, Adam, RMSprop.
  • Obliczany za pomocą reguły łańcuchowej (chain rule) w procesie zwanym backpropagation.
  • Im bliżej minimum, tym gradienty mają mniejszą wartość — konwergencja.
  • Zbyt duże gradienty → eksplodujące gradienty, zbyt małe → zanikające gradienty.

📚 Szczegółowe wyjaśnienie

Gradient dla funkcji to wektor składający się z pochodnych cząstkowych względem każdego parametru:

W deep learningu typowa funkcja to strata , gdzie to parametry modelu (np. wagi sieci neuronowej).

Przykład użycia:

W każdej iteracji uczącej (epoce) liczymy:

  1. Forward pass – model przewiduje wynik (predykcja)
  2. Obliczenie loss – porównanie predykcji z oczekiwaną wartością
  3. Backward pass – obliczanie gradientu funkcji straty względem wag (backpropagation)
  4. Aktualizacja wag – przesunięcie w kierunku przeciwnym do gradientu (Gradient Descent)

Gradient Descent

Gdzie:

  • – parametry modelu
  • – stopień uczenia (learning rate)
  • – gradient funkcji straty względem parametrów modelu

Gradienty w sieciach neuronowych

  • Każda warstwa oblicza własne gradienty względem swojego wejścia i wag.
  • Backpropagation propaguje gradienty od końca modelu ku początkom (output → input).
  • Optymalizatory aktualizują parametry korzystając z gradientów warstw.

💡 Przykład zastosowania

W sieci neuronowej uczącej się rozpoznawania cyfr MNIST, parametrami są wagi warstw ukrytych. Podczas treningu gradient obliczony względem funkcji strat (np. cross-entropy) mówi, jak zmodyfikować wagi, by zmniejszyć błędy predykcji.

📌 Źródła

👽 Brudnopis

  • gradient = wektor kierunku zmiany
  • najprostsza forma — pochodna
  • sieci neuronowe: gradienty propagowane przez warstwy → aktualizacja wag
  • możliwe problemy: vanishing gradients (sigmoid, RNN), exploding gradients
  • różne optymalizatory = różne sposoby wykorzystania gradientu: SGD, Adam, Adagrad
  • autograd = automatyczne liczenie gradientów (np. w PyTorch, TensorFlow)
  • ważne: gradient nie oznacza błędu – to kierunek do jego zmniejszenia