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?

Alk
źródło
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.

Alejandro Trujillo
źródło
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,