W jaki sposób CNN unikają problemu znikającego gradientu

15

Dużo czytałem o splotowych sieciach neuronowych i zastanawiałem się, w jaki sposób unikają problemu znikającego gradientu. Wiem, że sieci głębokiego przekonania stosują auto-kodery jednopoziomowe lub inne wstępnie wyszkolone płytkie sieci, dzięki czemu mogę uniknąć tego problemu, ale nie wiem, jak można go uniknąć w sieciach CNN.

Według Wikipedii :

„pomimo wyżej wspomnianego„ znikającego problemu z gradientem ”,„ doskonała moc obliczeniowa procesorów graficznych sprawia, że ​​możliwa jest zwykła propagacja wsteczna dla głębokich sieci neuronowych z wieloma warstwami ”.

Nie rozumiem, dlaczego przetwarzanie GPU usunęło ten problem?

Aly
źródło
2
Czy artykuł w Wikipedii nie uzasadniał, dlaczego GPU pomogło rozwiązać problem znikającego gradientu? Czy to dlatego, że chociaż gradienty są małe, ponieważ procesory graficzne są tak szybkie, nadal udaje nam się poprawić parametry, wykonując wiele kroków dzięki procesorom graficznym?
Charlie Parker,
2
Dokładnie. Problem znikającego gradientu jest przyczyną, dla której niższe masy warstw są aktualizowane z bardzo małą szybkością, a zatem szkolenie sieci trwa wieczność. Jednak, podobnie jak w przypadku układów GPU, można wykonać więcej obliczeń (tj. Więcej aktualizacji wag) w krótszym czasie, przy coraz większej liczbie procesorów GPU problem znikania gradientu jest w pewnym stopniu zniknięty .
Sangram
@CharlieParker, czy mógłbyś to rozwinąć GPU's are fast correlated with vanishing gradients, rozumiem szybką logikę z dużą przepustowością pamięci do przetwarzania wielu multiplikacji macierzy! ale czy mógłbyś wyjaśnić, co to ma wspólnego z pochodnymi? Problem znikającego gradientu wydaje się robić więcej przy inicjalizacji wagi , prawda?
Anu

Odpowiedzi:

13

Znikający problem z gradientem wymaga od nas stosowania małych szybkości uczenia się przy spadku gradientu, który następnie wymaga wielu małych kroków, aby się zbiegać. Jest to problem, jeśli masz powolny komputer, który zajmuje dużo czasu na każdym kroku. Jeśli masz szybki procesor graficzny, który może wykonać o wiele więcej kroków dziennie, nie stanowi to problemu.

Ewijyj

yj=f(iwijxi),

jego gradient wynosi

wijE=Eyjyjwij=Eyjf(iwijxi)xi.

fff

f(u)=max(0,u),

http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf

Lucas
źródło
2
Jestem trochę zdziwiony rektyfikowanymi jednostkami liniowymi. Tak, dla sigmoidów itp. Gradient jest często bardzo mały - ale dla rektyfikowanych jednostek liniowych jest często dokładnie zerowy. Czy to nie gorsze? Jeśli więc ciężary jednostki są niefortunne, nigdy się nie zmienią.
Hans-Peter Störr,
2
Myśląc o tym, z tego powodu mogą być używane nieszczelne i / lub głośne jednostki ReLU.
sunside
5
Dlaczego twoje pierwsze zdanie jest prawdziwe? Tj. „Znikający problem z gradientem wymaga od nas stosowania małych szybkości uczenia się przy spadku gradientu, który następnie wymaga wielu małych kroków do zbiegnięcia się”. Dlaczego potrzebujemy małych wskaźników uczenia się, aby rozwiązać problem znikającego gradientu? Jeśli gradienty są już małe z powodu znikających gradientów, spodziewałbym się, że zmniejszenie ich tylko pogorszy sytuację.
Charlie Parker
2
Dobre pytanie, powinienem był lepiej wyjaśnić to stwierdzenie. Problem znikającego gradientu nie polega na tym, że wszystkie gradienty są małe (co można łatwo naprawić za pomocą dużych szybkości uczenia się), ale że gradienty znikają, gdy propagujesz się przez sieć. Tzn. Gradienty są małe w niektórych warstwach, ale duże w innych warstwach. Jeśli używasz dużych wskaźników uczenia się, cała sprawa wybucha (ponieważ niektóre gradienty są duże), więc musisz użyć małego wskaźnika uczenia się. Stosowanie wielu wskaźników uczenia się jest kolejnym podejściem do rozwiązania problemu, kosztem wprowadzenia większej liczby hiperparametrów.
Lucas
3
Twierdziłbym, że współczynnik uczenia się jest głównie związany z eksplodującym problemem gradientu. Skalowanie gradientu z przesadnie niską szybkością uczenia się wcale nie zapobiega zanikaniu gradientów, po prostu opóźnia efekt, ponieważ uczenie się znacznie spowalnia. Sam efekt jest spowodowany powtarzającym się stosowaniem nieliniowości i mnożeniem małych wartości. Oczywiście istnieje tendencja do przechodzenia na mniejsze wskaźniki uczenia się (ze względu na moc obliczeniową), ale nie ma to nic wspólnego z zanikaniem gradientów, ponieważ kontroluje tylko, jak dobrze eksplorowana jest przestrzeń stanu (przy stabilnych warunkach).
runDOSrun