Problem zanikających gradientów
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[1]. 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][2]. 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[3].
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[4], który dotyczy nie tylko wielowarstwowych sieci jednokierunkowych[5], ale także sieci rekurencyjnych[6][3].
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[7].
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 [3].
Normalizacja partiami
Normalizacja partiami (batch normalization) jest metodą rozwiązywania problemów zarówno gradientu eksplodującego, jak i zanikającego[8][9].
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[10][11].
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[12].
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 [13].
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[14].
Przypisy
- ↑ Sunitha Basodi. Gradient amplification: An efficient way to train deep neural networks. „Big Data Mining and Analytics”. 3 (3), s. 198, September 2020. DOI: 10.26599/BDMA.2020.9020004. arXiv:2006.10560. ISSN 2096-0654.
- ↑ Sztuczne Sieci Neuronowe [online].
- 1 2 3 Razvan Pascanu, Tomas Mikolov, Yoshua Bengio, On the difficulty of training Recurrent Neural Networks, arXiv, 16 lutego 2013, DOI: 10.48550/arXiv.1211.5063 [dostęp 2025-04-09].
- ↑ Untersuchungen zu dynamischen neuronalen Netzen [online], 1991.
- ↑ Garrett B. Goh. Deep learning for computational chemistry. „Journal of Computational Chemistry”. 38 (16), s. 1291–1307, 2017-06-15. DOI: 10.1002/jcc.24764. arXiv:1701.04503. PMID: 28272810. Bibcode: 2017arXiv170104503G. (ang.).
- ↑ Y. Bengio, P. Frasconi, P. Simard, The problem of learning long-term dependencies in recurrent networks, IEEE International Conference on Neural Networks, marzec 1993, 1183–1188 vol.3, DOI: 10.1109/ICNN.1993.298725 [dostęp 2025-04-09].
- ↑ (PDF) Long Short-Term Memory [online], ResearchGate [dostęp 2025-04-09] [zarchiwizowane z adresu 2025-03-07] (ang.).
- ↑ Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, arXiv, 2 marca 2015, DOI: 10.48550/arXiv.1502.03167 [dostęp 2025-04-09].
- ↑ Shibani Santurkar, Dimitris Tsipras, Andrew Ilyas, Aleksander Madry, How Does Batch Normalization Help Optimization?, t. 31, Curran Associates, Inc., 2018 [dostęp 2025-04-09].
- ↑ Juergen Schmidhuber, Deep Learning in Neural Networks: An Overview, arXiv, 8 października 2014, DOI: 10.48550/arXiv.1404.7828 [dostęp 2025-04-09].
- ↑ Geoffrey E. Hinton, Simon Osindero, Yee-Whye Teh, A fast learning algorithm for deep belief nets [online].
- ↑ Xavier Glorot, Understanding the difficulty of training deep feedforward neural networks, Journal of Machine Learning Research - Proceedings Track, styczeń 2020 [dostęp 2026-06-21] (ang.).
- ↑ Abien Fred Agarap, Deep Learning using Rectified Linear Units (ReLU), arXiv, 2018, DOI: 10.48550/ARXIV.1803.08375 [dostęp 2026-06-21].
- ↑ Ahmet Yilmaz, Riccardo Poli, Successfully and efficiently training deep multi-layer perceptrons with logistic activation function simply requires initializing the weights with an appropriate negative mean, „Neural Networks”, 153, 2022, s. 87–103, DOI: 10.1016/j.neunet.2022.05.030, ISSN 0893-6080 [dostęp 2025-04-09].