Какой коэффициент умножения и сложения использовать при выполнении адаптивной скорости обучения в нейронных сетях? - PullRequest
6 голосов
/ 08 сентября 2011

Я новичок в нейронных сетях и, чтобы получить контроль над этим вопросом, я реализовал базовую MLP с прямой связью, которую я в настоящее время обучаю через обратное распространение.Я знаю, что есть более сложные и лучшие способы сделать это, но в Введение в машинное обучение они предполагают, что с одним или двумя приемами базовый градиентный спуск может быть эффективен для изучения реальных данных.Одним из приемов является адаптивная скорость обучения .

Идея состоит в том, чтобы увеличить скорость обучения на постоянное значение a , когда ошибка становится меньше, и уменьшить ее на долю b скорости обучения, когдаошибка становится больше.Таким образом, в основном изменение скорости обучения определяется:

+(a)

, если мы учимся в правильном направлении, и

-(b * <learning rate>)

, если мы разрушаем наше обучение.Тем не менее, в приведенной выше книге нет никаких советов о том, как установить эти параметры.Я не ожидал бы точного предложения, так как настройка параметров - это отдельная тема, но только подсказка, по крайней мере, на порядок.Есть идеи?

Спасибо,Tunnuz

1 Ответ

6 голосов
/ 13 сентября 2011

Я не смотрел нейронные сети дольше всего (10 лет +), но после того, как я увидел ваш вопрос, я подумал, что у меня будет быстрый разведчик. Я все время видел одни и те же цифры по всему интернету в отношении увеличения ( a ) и уменьшения ( b ) (* 1009) * 1,2 & 0,5 соответственно).

Мне удалось отследить эти значения вплоть до алгоритма RPROP Мартина Ридмиллера и Генриха Брауна (1992). Ридмиллер и Браун весьма специфичны в отношении разумных параметров для выбора.

См .: RPROP: быстрый адаптивный алгоритм обучения

Надеюсь, это поможет.

...