Problem zanikających gradientów – problem dużych różnic w wielkościach gradientów pomiędzy wcześniejszymi i późniejszymi warstwami występujący podczas trenowania sieci neuronowych z propagacją wsteczną. W takich metodach wagi sieci neuronowych są aktualizowane proporcjonalnie do ich pochodnej cząstkowej funkcji straty. W miarę jak liczba kroków propagacji w sieci wzrasta, na przykład ze względu na większą głębokość sieci, gradienty wcześniejszych wag są obliczane przy coraz większej liczbie mnożeń. Te mnożenia zmniejszają wielkość gradientu ponieważ pochodne są zawsze z zakresu [0,1]. W konsekwencji gradienty wcześniejszych wag będą wykładniczo mniejsze od gradientów późniejszych wag. Ta różnica w wielkości gradientu może powodować niestabilność procesu szkoleniowego, spowalniać go lub całkowicie zatrzymać.

Problem odwrotny, w którym gradienty ciężaru we wcześniejszych warstwach stają się wykładniczo większe, nazywany jest problemem eksplodujących gradientów.

Propagacja wsteczna pozwoliła badaczom na trenowanie od podstaw nadzorowanych głębokich sieci neuronowych, początkowo z niewielkim powodzeniem. W 1991 r. formalnie zidentyfikowano przyczynę tej awarii w problemie zanikających gradientów, który dotyczy nie tylko wielowarstwowych sieci jednokierunkowych, ale także sieci rekurencyjnych.

Rozwiązania Istnieją metody rozwiązania tego problemu.

RNN W przypadku rekurencyjnych sieci neuronowych do rozwiązania problemu zaprojektowano sieć o długiej pamięci krótkotrwałej.

W przypadku problemu eksplodującego gradientu można przycinać gradient, czyli dzielić wektor gradientu przez jeśli . Ogranicza to wektory gradientu w obrębie kuli o promieniu .

Normalizacja partiami Normalizacja partiami (batch normalization) jest metodą rozwiązywania problemów zarówno gradientu eksplodującego, jak i zanikającego.

Szybszy sprzęt Postęp w sprzęcie sprawił, że od 1991 do 2015 r. moc obliczeniowa komputerów (zwłaszcza dostarczana przez procesory graficzne) wzrosła około miliona razy, dzięki czemu standardowa propagacja wsteczna stała się możliwa w sieciach o kilka warstw głębszych niż w momencie odkrycia problemu zanikających gradientów.

Użycie odpowiednich funkcji aktywacji Tradycyjne funkcje aktywacji, takie jak funkcja sigmoidalnej czy tangens hiperboliczny (tanh) wykazują tendencję do nasycania się – dla dużych (dodatnich lub ujemnych) wartości wejściowych ich pochodne stają się ekstremalnie małe, a krzywa funkcji staje się niemal płaska. Podczas procesu wstecznej propagacji błędu, który opiera się na wielokrotnym mnożeniu pochodnych z kolejnych warstw (zgodnie z regułą łańcuchową), te mikroskopijne wartości kumulują się. W efekcie poprawki wag w warstwach położonych najbliżej wejścia dążą do zera, co sprawia, że dolne warstwy sieci przestają się uczyć, a cały proces treningowy nie zbiega do optymalnego rozwiązania.

Aby wyeliminować to ograniczenie, we współczesnych architekturach standardem stała się funkcja ReLU (Rectified Linear Unit) oraz jej warianty. Kluczową cechą ReLU jest to, że nie nasyca się ona dla dodatnich argumentów, a jej pochodna w tym zakresie wynosi zawsze 1. Pozwala to na swobodny przepływ gradientu przez wiele warstw sieci bez żadnego tłumienia, co umożliwiło budowę i efektywne trenowanie bardzo głębokich struktur .

Inicjalizacja wag Inicjalizacja wag to kolejne podejście zaproponowane w celu zredukowania problemu zanikającego gradientu w głębokich sieciach.

W 2022 roku przeprowadzono analizę teoretyczną dotyczącą wpływu średniej początkowych wag na gradienty w głębokich sieciach neuronowych przy użyciu logistycznej funkcji aktywacji i odkryto, że gradienty nie zanikają, jeżeli średnia początkowych wag jest ustawiona zgodnie ze wzorem: max(−1,-8/N) . Ta strategia pozwala na bardzo efektywne i wydajne trenowanie sieci z 10 lub 15 ukrytymi warstwami przy użyciu standardowej propagacji wstecznej.

Przypisy

Kategoria:Sieci neuronowe