RMSProp i Adam vs SGD


12

Przeprowadzam eksperymenty na zestawie walidacyjnym EMNIST przy użyciu sieci z RMSProp, Adamem i SGD. Osiągam 87% dokładności dzięki SGD (współczynnik uczenia się 0,1) i porzucaniu (0,1 porzuceniu prob), a także regularyzacji L2 (kara 1e-05). Podczas testowania tej samej dokładnej konfiguracji z RMSProp i Adamem, a także początkowej szybkości uczenia się wynoszącej 0,001, osiągam dokładność 85% i znacznie mniej płynną krzywą treningu. Nie wiem jak wytłumaczyć to zachowanie. Co może być przyczyną braku gładkości krzywej treningowej oraz osiągniętej niższej dokładności i wyższych poziomów błędów?


To zależy od sieci. Czy możesz pokazać nam szczegóły dotyczące sieci? Czy możesz również podać krzywe uczenia się?
Memming

Jest to sieć z 5 warstwami (Dropout, Affine, ELU w każdej warstwie), skonfigurowana w następujący sposób: 150 ukrytych wymiarów, użyta funkcja aktywacji ELU, 0,1 uczenia się dla SGD, 0,001 uczenia się dla RMS i Adama, regularyzacji L2 z 1e -05 kara za rezygnację z prawdopodobieństwem wykluczenia 0,1.
Alk

A kiedy mówisz „dokładnie ta sama konfiguracja ... początkowa szybkość uczenia się 0,001”, masz na myśli, że użyłeś innej prędkości uczenia się lub przeprowadziłeś dwa eksperymenty: jeden z tą samą szybkością uczenia się i jeden z innym? Może to zależeć od faktycznego oprogramowania, którego używasz, od tego, jakie parametry są domyślne.
Wayne

Użyłem więc 0,1 dla SGD i 0,001 dla Adama i RMSProp. Wynika to z faktu, że kiedy prowadziłem Adama i RMSProp z szybkością uczenia 0,1, oba działały źle z dokładnością 60%. Również 0,001 jest zalecaną wartością w artykule na temat Adama.
Alk

Powinieneś opublikować krzywe uczenia się oraz to, czy mierzysz błąd na danych testowych lub szkoleniowych.
Jakub Bartczuk

Odpowiedzi:


4

Po przestudiowaniu kilku artykułów online i dokumentacji Keras sugeruje się, że optymalizator RMSProp jest zalecany w przypadku nawracających sieci neuronowych. https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209

Stochastyczne zejście gradientu wydaje się wykorzystywać szybkość uczenia się i pęd między poszczególnymi partiami, aby zoptymalizować wagi modelu na podstawie informacji o funkcji straty w moim przypadku to „categorical_crossentropy”.

Sugeruję http://ruder.io/optimizing-gradient-descent/index.html w celu uzyskania dodatkowych informacji na temat algorytmów optymalizacji.


Nie jestem pewien, co rozumiesz przez „optymalizator RMSProp jest zalecany dla nawracających sieci neuronowych”. Link, który umieściłeś, jest teraz zepsuty i nigdzie nie wspomniano, że jest zalecany.
Harshal Parekh,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.