RMSProp та Adam проти SGD


12

Я виконую експерименти над набором валідації EMNIST, використовуючи мережі з RMSProp, Adam та SGD. Я досягаю 87% точності за допомогою SGD (ступінь навчання 0,1) та випадання (0,1 випадання задачі), а також регуляризація L2 (1e-05 штраф). Перевіряючи таку саму точну конфігурацію з RMSProp та Адамом, а також початковий рівень навчання 0,001, я досягаю точності 85% та значно меншої плавної кривої тренувань. Я не знаю, як пояснити таку поведінку. Що може бути причиною недостатньої плавності кривої тренувань та досягнутої меншої точності та більш високих показників помилок?


Це залежить від мережі. Чи можете ви показати нам детальну інформацію про мережу? Ви також можете надати криві навчання?
Пам'яті

Це мережа з 5-ма шарами (Dropout, Affine, ELU у кожному шарі), створена таким чином: 150 прихованих розмірів, використовувана функція активації ELU, 0,1 ступінь навчання для SGD, 0,001 швидкість навчання для RMS та Адама, L2 регуляризація з 1e -05 пенальті, випадання з імовірністю виключення 0,1.
Алк

І коли ви говорите "точно однакова конфігурація ... початкова швидкість навчання 0,001", ви маєте на увазі, що ви використовували інший рівень навчання або ви робили два експерименти: один з однаковою швидкістю навчання і один з іншим? Це може залежати від фактичного програмного забезпечення, яке ви використовуєте, які параметри за замовчуванням для чого.
Уейн

Тому я використав 0,1 для SGD і 0,001 для Адама і RMSProp. Це тому, що коли я керував Адамом та RMSProp із рівнем навчання 0,1, вони обидва працювали погано з точністю до 60%. Також 0,001 є рекомендованим значенням у роботі про Адама.
Алк

Ви повинні розміщувати криві навчання та вимірювати помилки на даних тесту чи навчання.
Якуб Бартчук

Відповіді:


4

Після вивчення кількох статей в Інтернеті та документації Keras, пропонується оптимізатор RMSProp рекомендується використовувати для періодичних нейронних мереж. https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209

Стохастичний градієнтний спуск, схоже, використовує свою швидкість навчання та імпульс між кожною партією, щоб оптимізувати ваги моделі на основі інформації про функцію втрат, у моєму випадку - "kategoriical_crossentropy".

Я пропоную http://ruder.io/optimizing-gradient-descent/index.html для отримання додаткової інформації про алгоритми оптимізації.


Я не впевнений, що ви маєте на увазі під "оптимізатором RMSProp рекомендується для періодичних нейронних мереж". Посилання, яке ви надіслали, тепер порушено, і його ніде не згадується, що рекомендується.
Харшал Парех
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.