Propagacja wsteczna (ang. backpropagation) to algorytm, który uczy sieć neuronową, jak poprawiać swoje wagi, żeby popełniać mniej błędów. W skrócie: liczy gradient funkcji straty względem każdej wagi w sieci, czyli mówi ci, „w którą stronę i jak mocno” przesunąć każdy parametr, żeby predykcja była bliższa prawdy. To matematyczny silnik, dzięki któremu uczenie głębokich sieci w ogóle jest wykonalne.
Jak to działa
Trening idzie w dwóch fazach. Najpierw forward pass: dane wejściowe przechodzą przez kolejne warstwy aż do wyjścia, a sieć oblicza, jak bardzo się pomyliła (to właśnie strata, np. cross-entropy albo MSE). Potem backward pass: błąd „cofa się” przez sieć, warstwa po warstwie, od wyjścia do wejścia. Tu wkracza reguła łańcuchowa z analizy matematycznej — backpropagation to po prostu sprytne, wielokrotne jej zastosowanie, które pozwala policzyć pochodne dla milionów parametrów bez liczenia każdej z osobna od zera.
Sam backprop tylko liczy gradienty. Faktyczną korektę wag robi optimizer (np. SGD albo Adam), który przesuwa wagi w kierunku przeciwnym do gradientu o krok zależny od learning rate. Powtarzasz to przez tysiące iteracji i sieć stopniowo się uczy.
Przykład z praktyki
W PyTorch nie implementujesz tego ręcznie — robi to silnik autograd. Wygląda to mniej więcej tak:
loss = criterion(output, target)— liczysz stratę,loss.backward()— to jest właśnie propagacja wsteczna; PyTorch wypełnia.graddla każdego parametru,optimizer.step()— optimizer aktualizuje wagi,optimizer.zero_grad()— zerujesz gradienty przed kolejną iteracją.
W TensorFlow analogicznie używasz tf.GradientTape. W obu przypadkach framework buduje graf obliczeń i sam wie, jak go przejść wstecz.
Częste błędy i pułapki
- Brak
zero_grad()— w PyTorch gradienty domyślnie się akumulują. Zapomnisz wyzerować i twój model uczy się na zsumowanych gradientach z kilku batchy. Klasyk u początkujących. - Vanishing/exploding gradients — w bardzo głębokich sieciach gradient po drodze potrafi zaniknąć do zera albo wystrzelić w kosmos. Stąd ReLU zamiast sigmoidy, normalizacja i gradient clipping.
- Mit „backprop to to samo co sieć neuronowa” — nie. To algorytm liczenia gradientów, a nie sama architektura ani sposób działania mózgu (z biologią ma wspólne tyle, co nic).
Pojęcia powiązane: gradient descent, funkcja straty, reguła łańcuchowa, learning rate, optimizer (SGD, Adam), autograd, sieci neuronowe, deep learning, vanishing gradient.