Я выполняю эксперименты на валидации EMNIST, используя сети с RMSProp, Adam и SGD. Я достиг 87% точности с SGD (скорость обучения 0,1) и отсева (0,1 отсева), а также регуляризация L2 (1e-05 штраф). При тестировании точно такой же конфигурации с RMSProp и Adam, а также с начальной скоростью обучения 0,001 я достигаю точности 85% и значительно менее плавной кривой обучения. Я не знаю, как объяснить это поведение. Что может быть причиной отсутствия плавности в кривой обучения, а также низкой точности и более высокой частоты ошибок?
12
Ответы:
После изучения нескольких статей в Интернете и документации Keras было предложено рекомендовать оптимизатор RMSProp для рекуррентных нейронных сетей. https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209
Stochastic Gradient Descent, кажется, использует свою скорость обучения и импульс между каждой партией для оптимизации весов модели на основе информации о функции потерь, в моем случае это «categoryor_crossentropy».
Я предлагаю http://ruder.io/optimizing-gradient-descent/index.html дополнительную информацию об алгоритмах оптимизации.
источник