Нужен хороший способ выбрать и настроить скорость обучения

На рисунке ниже вы можете увидеть алгоритм обучения, пытающийся научиться производить желаемый результат (красная линия). Алгоритм обучения аналогичен нейронной сети с обратным распространением ошибок.

«Скорость обучения» — это значение, которое контролирует размер корректировок, вносимых в процессе обучения. Если скорость обучения слишком высока, то алгоритм обучается быстро, но его прогнозы сильно прыгают в процессе обучения (зеленая линия — скорость обучения 0,001), если она ниже, то прогнозы прыгают меньше, но алгоритм занимает меньше времени. намного дольше учиться (синяя линия - скорость обучения 0,0001).

Черные линии — скользящие средние.

Как я могу настроить скорость обучения, чтобы она сначала приближалась к желаемому результату, но затем замедлялась, чтобы можно было отточить правильное значение?

http://img.skitch.com/20090605-pqpkse1yr1e5r869y6eehmpsym.png


person sanity    schedule 05.06.2009    source источник
comment
У вас случайно нет копии этого изображения? Изображение исчезло, а без него вопрос не очень ясен.   -  person Makoto    schedule 21.01.2016


Ответы (3)


Иногда процесс снижения скорости обучения с течением времени называют «отжигом» скорости обучения.

Существует множество возможных «графиков отжига», например, если скорость обучения является линейной функцией времени:

u(t) = c / t

...где c - некоторая константа. Или есть график «искать, затем сходиться»:

u(t) = A * (1 + (c/A)*(t/T)) / 
           (1 + (c/A)*(t/T) + T*(t^2)/(T^2))

... который поддерживает скорость обучения около A, когда t мало по сравнению с T (фаза «поиска»), а затем снижает скорость обучения, когда t велик по сравнению с T (фаза «схождения»). Конечно, для обоих этих подходов вам придется настраивать параметры (например, c, A или T), но, надеюсь, их введение поможет больше, чем навредит. :)

Некоторые ссылки:

  • График скорости обучения для более быстрого поиска стохастических градиентов, Кристиан Даркен, Джозеф Чанг и Джон Муди, Нейронные сети для обработки сигналов 2 --- Материалы семинара IEEE 1992 года, IEEE Press, Пискатауэй, Нью-Джерси, 1992.
  • Метод стохастической аппроксимации, Герберт Роббинс и Саттон Монро, Анналы математической статистики 22, № 3 (сентябрь 1951 г.), стр. 400–407.
  • Нейронные сети и обучающие машины (в частности, раздел 3.13), Саймон С. Хайкин, 3-е издание (2008 г.), ISBN 0131471392, 9780131471399
  • Вот страница, на которой кратко обсуждается адаптация скорости обучения.
person Nate Kohl    schedule 05.06.2009
comment
Поиск-то-схождение на самом деле имеет более сложное определение, чем то, что вы здесь написали. Ваша формула никогда не бывает почти постоянной. См. эту статью (PDF) . Отредактировано для добавления: похоже, ошибка изначально была в исходном материале. Так что это была не ваша вина, но это все же стоит отметить. - person David J. Harris; 27.10.2013
comment
@DavidJ.Harris хороший улов. Я обновил график поиска и схождения. - person Nate Kohl; 28.10.2013

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

Самый простой способ — уменьшить скорость обучения линейно с количеством итераций. Каждые 25 (или любое другое произвольное число) вычитайте часть из ставки, пока она не достигнет хорошего минимума.

Вы также можете сделать это нелинейно с количеством итераций. Например, умножайте скорость обучения на 0,99 на каждой итерации, пока она не достигнет хорошего минимума.

Или вы можете стать более хитрым. Используйте результаты сети, чтобы определить следующую скорость обучения сети. Чем лучше он работает по своей метрике пригодности, тем меньше вы делаете его скорость обучения. Таким образом, он будет сходиться быстро, пока это необходимо, а затем медленно. Это, вероятно, лучший способ, но он дороже, чем простые подходы с количеством итераций.

person Welbog    schedule 05.06.2009

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

Вектор состояния в конечном итоге установится в равновесии, которое устанавливает баланс между «слишком много» и «слишком мало». Вот сколько систем в биологии работают

person Josh E    schedule 05.06.2009