Trenowanie sieci neuronowych: sprawdzone metody

W tej sekcji opisujemy przypadki niepowodzenia propagacji wstecznej i najczęstszy sposób regularyzacji sieci neuronowej.

Przypadki niepowodzenia

Istnieje kilka typowych przyczyn niepowodzenia rozpowszechnienia wstecznej.

Znikające gradienty

Gradienty dolnych warstw (bliższych danych wejściowych) mogą stać się bardzo małe. W głębokich sieciach obliczenie gradientów może wymagać wykorzystania iloczynu wielu drobnych haseł.

Gdy w przypadku dolnych warstw gradienty znikają w kierunku 0, trenują one 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ą produkty wielu dużych haseł. W tym przypadku można użyć eksplodujących gradientów, czyli gradientów, które stają się zbyt duże, by się zbielić.

Normalizacja grupowa może zapobiec pojawianiu się gradientów, a także zmniejszyć tempo uczenia się.

Jednostki Dead ReLU

Gdy suma ważona jednostki ReLU spadnie poniżej 0, jednostka ReLU może się utknąć. Generuje 0 aktywacji, nie mając wpływu na dane wyjściowe sieci, a gradienty nie mogą już przez nią przepływać podczas cofania się propagacji. Po odcięciu źródła gradientów dane wejściowe ReLU mogą nigdy nie zmienić się na tyle, by suma ważona ponownie przekroczyła 0.

Obniżenie tempa uczenia się może zapobiec zużyciu jednostek ReLU.

Regularyzacja pomijania

W przypadku sieci neuronowych przydaje się jeszcze inna forma regularyzacji, tzw. porzucenie. Polega to na losowym „opuszczaniu” aktywacji jednostek w sieci dla pojedynczego kroku z gradientem. Im więcej porzucisz, tym silniejsza jest regularność:

  • 0,0 = brak regularyzacji porzuceń.
  • 1,0 = Porzuć wszystko. Model niczego się nie uczy.
  • Wartości od 0,0 do 1,0 = bardziej przydatne.