Mam podstawową wiedzę na temat działania RNN (a zwłaszcza jednostek LSTM). Mam obrazowe wyobrażenie o architekturze jednostki LSTM, czyli komórki i kilku bramek, które regulują przepływ wartości.
Jednak najwyraźniej nie do końca zrozumiałem, w jaki sposób LSTM rozwiązuje problem „znikania i eksplodowania gradientów”, który pojawia się podczas treningu, z wykorzystaniem propagacji wstecznej w czasie, konwencjonalnego RNN. Nie miałem okazji czytać gazet, aby w pełni zrozumieć matematykę.
Ta odpowiedź zawiera krótkie wyjaśnienie, w jaki sposób RNN z jednostkami LSTM rozwiązują problem „zanikających gradientów”. Matematycznie przyczyną wydaje się być nieistnienie pochodnej, która nie znika, tzn. Nie dąży do zera. W związku z tym autor stwierdza: „istnieje co najmniej jedna ścieżka, na której gradient nie zanika”. IMHO, to wyjaśnienie jest trochę niejasne.
W międzyczasie czytałem artykuł „ Sekwencja do uczenia się za pomocą sekwencji z sieciami neuronowymi” (autor: Ilya Sutskever, Oriol Vinyals, Quoc V. Le) oraz, w tym artykule, rozdział „3.4 Szczegóły treningu”
Chociaż LSTM zwykle nie cierpią z powodu znikającego gradientu gradientu, mogą mieć wybuchające gradienty.
Zawsze uważałem, że RNN z jednostkami LSTM rozwiązują zarówno problemy „znikania”, jak i „eksplodujących gradientów”, ale najwyraźniej RNN z jednostkami LSTM również cierpią z powodu „eksplodujących gradientów”.
Intuicyjnie, dlaczego tak jest? Matematycznie, jakie są przyczyny?
RNN przed LSTM / GRU były niestabilne, ponieważ to, co robili, polegało zasadniczo na pomnożeniu stanu ukrytego z pewnymi wagami dla każdego pomiaru czasu, co oznacza, że jest to operacja wykładnicza. Jak wiemy, potęgowanie jest bardzo niestabilne: komórek LSTM / GRU rozwiązuje ten problem, zamieniając mnożenie w wartość dodaną. Masz stan komórki i zamiast pomnożyć albo go dodajesz, albo odejmujesz.
Jednak wciąż istnieją ścieżki, przez które gradient może stać się niestabilny, a im większa jest sieć, tym bardziej prawdopodobne jest, że napotkasz ten problem.
źródło