Я вже деякий час використовую нейронні мережі. Однак одне, з чим я постійно борюся, - це вибір оптимізатора для тренінгу в мережі (використовуючи backprop). Що я зазвичай роблю, це просто почати з одного (наприклад, стандартний SGD), а потім спробувати інші інші, майже випадковим чином. Мені було цікаво, чи є кращий (і менш випадковий) підхід до пошуку хорошого оптимізатора, наприклад з цього списку:
- SGD (з або без імпульсу)
- AdaDelta
- АдаГрад
- RMSProp
- Адам
Зокрема, мене цікавить, чи є якесь теоретичне обгрунтування вибору одного над іншим, враховуючи, що дані тренувань мають певну властивість, наприклад, вони є рідкісними. Я б також міг уявити, що деякі оптимізатори працюють краще, ніж інші в конкретних областях, наприклад, коли тренують конволюційні мережі проти мереж подачі вперед або класифікацію проти регресії.
Якщо хтось із вас розробив якусь стратегію та / або інтуїцію щодо вибору оптимізаторів, мені було б дуже цікаво почути це. Крім того, якщо є якась робота, яка дає теоретичне обгрунтування вибору один за одним, це було б ще краще.