Sieci neuronowe: trenowanie z wykorzystaniem wstecznej propagacji

Propagacja wsteczna to najpopularniejszy algorytm trenowania sieci neuronowych. Umożliwia stosowanie metody spadku gradientu w wielowarstwowych sieciach neuronowych. Wiele bibliotek kodu uczenia maszynowego (np. Keras) automatycznie obsługuje propagację wsteczną, więc nie musisz samodzielnie wykonywać żadnych obliczeń. Obejrzyj poniższy film, aby poznać koncepcyjne omówienie działania propagacji wstecznej:

Sprawdzone metody trenowania sieci neuronowych

W tej sekcji wyjaśniamy przypadki, w których propagacja wsteczna nie działa, oraz najczęstszy sposób regularyzacji sieci neuronowej.

Znikające gradienty

Gradienty w przypadku niższych warstw sieci neuronowej (bliższych warstwie wejściowej) mogą stać się bardzo małe. W głębokich sieciach (sieciach z więcej niż jedną warstwą ukrytą) obliczanie tych gradientów może wymagać pomnożenia wielu małych wartości.

Gdy wartości gradientu w przypadku niższych warstw zbliżają się do 0, gradienty „znikają”. Warstwy z zanikającymi gradientami trenują bardzo wolno lub wcale.

Funkcja aktywacji ReLU może zapobiegać znikaniu gradientów.

Eksplodujące gradienty

Jeśli wagi w sieci są bardzo duże, gradienty dla niższych warstw obejmują iloczyny wielu dużych wartości. W takim przypadku możesz mieć eksplodujące gradienty, czyli gradienty, które stają się zbyt duże, aby zbiegać się do określonej wartości.

Normalizacja wsadowa może zapobiegać eksplozji gradientów, podobnie jak obniżenie współczynnika uczenia.

Martwe jednostki ReLU

Gdy ważona suma dla jednostki ReLU spadnie poniżej 0, jednostka ReLU może się zablokować. Zwraca wartość 0, która nie ma wpływu na wynik sieci, a podczas propagacji wstecznej nie przepływają przez nią gradienty. Gdy źródło gradientów zostanie odcięte, dane wejściowe funkcji ReLU mogą nigdy nie zmienić się na tyle, aby przywrócić ważoną sumę powyżej 0.

Obniżenie współczynnika uczenia może zapobiec „umieraniu” jednostek ReLU.

Regularyzacja przez wyłączanie

Kolejną formą regularyzacji, przydatną w przypadku sieci neuronowych, jest regularyzacja przez wyłączanie. Polega na losowym „wyłączaniu” aktywacji jednostek w sieci na potrzeby pojedynczego kroku gradientu. Im częściej rezygnujesz, tym silniejsza jest regularyzacja:

  • 0,0 = brak regularyzacji przez wyłączanie.
  • 1,0 = usuń wszystkie węzły. Model niczego się nie uczy.
  • Wartości od 0,0 do 1,0 = bardziej przydatne.