Propagacja wsteczna to najczęściej stosowany algorytm treningowy w przypadku sieci neuronowych. Dzięki temu możliwe jest stosowanie metody gradientu prostego w przypadku wielowarstwowych sieci neuronowych. Wiele bibliotek kodu systemów uczących się (np. Keras) automatycznie obsługuje propagację wsteczną, więc nie musisz samodzielnie wykonywać podstawowych obliczeń. Obejrzyj ten film, aby ogólnie zapoznać się z działaniem propagacji wstecznej:
Sprawdzone metody trenowania sieci neuronowych
W tej sekcji opisaliśmy przypadki niepowodzenia wstecznej propagacji i najczęstszy sposób regularyzacji sieci neuronowej.
Vanishing Gradients
Gradienty dolnych warstw sieci neuronowej (znajdujące się bliżej warstwy wejściowej) mogą być bardzo małe. W sieciach głębokich (sieci z więcej niż jedną ukrytą warstwą) obliczenie takich gradientów może wymagać użycia iloczynu wielu drobnych pojęć.
Gdy w przypadku niższych warstw wartość gradientu zbliża się do 0, gradienty „znikają”. Warstwy z znikającym gradientem uczą się bardzo wolno lub wcale.
Funkcja aktywacji ReLU może zapobiec znikaniu gradientów.
Eksplodujące gradienty
Jeśli wagi w sieci są bardzo duże, gradienty dolnych warstw obejmują iloczyn wielu dużych elementów. W takim przypadku możesz mieć gradienty wybuchowe: gradienty, które są zbyt duże, aby się zbiegać.
Normalizacja wsadowa może zapobiec eksplozji gradientów, a także obniżyć tempo uczenia się.
Dead ReLU Units
Gdy ważona suma dla jednostki ReLU spadnie poniżej 0, jednostka ReLU może się zablokować. Wyjściem tego węzła jest 0, który nie wnosi nic do wyjścia sieci, a gradienty nie mogą już przez niego przepływać podczas propagacji wstecznej. Gdy źródło gradientów zostanie odcięte, dane wejściowe ReLU mogą nigdy nie zmienić się na tyle, że suma ważonej sumy nie przekroczy 0.
Obniżenie szybkości uczenia może pomóc w utrzymaniu jednostek ReLU w stanie aktywnym.
Regularyzacja porzuceń
Jeszcze inna forma regularyzacji, zwana regularyzacją z wykluczaniem, jest przydatna w przypadku sieci neuronowych. Polega ono na losowym „wyłączaniu” aktywacji jednostek w sieci na potrzeby pojedynczego kroku gradientu. Im więcej elementów zostanie wyeliminowanych, tym silniejsza będzie regularyzacja:
- 0,0 = brak regularyzacji dropoutem.
- 1,0 = pominięcie wszystkich węzłów. Model nie uczy się niczego.
- Wartości od 0,0 do 1,0 = bardziej przydatne.