Скорость обучения

Параметр настройки (гиперпараметр) при оптимизации

В машинном обучении и статистике скорость обучения — это параметр настройки в алгоритме оптимизации , который определяет размер шага на каждой итерации при движении к минимуму функции потерь . [1] Поскольку он влияет на то, в какой степени вновь полученная информация перекрывает старую информацию, он метафорически представляет скорость, с которой модель машинного обучения «обучается». В литературе по адаптивному управлению скорость обучения обычно называют усилением . [2]

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

Для достижения более быстрой сходимости, предотвращения колебаний и застревания в нежелательных локальных минимумах скорость обучения часто варьируется во время обучения либо в соответствии с графиком скорости обучения, либо с использованием адаптивной скорости обучения. [4] Скорость обучения и ее корректировки также могут различаться в зависимости от параметра, в этом случае это диагональная матрица , которую можно интерпретировать как приближение к обратной матрице Гессе в методе Ньютона . [5] Скорость обучения связана с длиной шага, определяемой неточным линейным поиском в квазиньютоновских методах и связанных с ними алгоритмах оптимизации. [6] [7]

График скорости обучения

Начальную скорость можно оставить как системную по умолчанию или выбрать с помощью ряда методов. [8] График скорости обучения изменяет скорость обучения во время обучения и чаще всего изменяется между эпохами/итерациями. Это в основном делается с двумя параметрами: затуханием и импульсом . Существует много различных графиков скорости обучения, но наиболее распространенными являются основанные на времени, основанные на шагах и экспоненциальные . [4]

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

Импульс аналогичен мячу, катящемуся с холма; мы хотим, чтобы мяч остановился в самой низкой точке холма (соответствующей наименьшей ошибке). Импульс ускоряет обучение (увеличивая скорость обучения), когда градиент стоимости ошибки движется в одном направлении в течение длительного времени, а также избегает локальных минимумов, «перекатываясь» через небольшие неровности. Импульс контролируется гиперпараметром, аналогичным массе мяча, которую необходимо выбирать вручную: слишком большой — и мяч перекатится через минимумы, которые мы хотим найти, слишком маленький — и он не выполнит своего назначения. Формула для факторизации импульса сложнее, чем для затухания, но чаще всего встраивается в библиотеки глубокого обучения, такие как Keras .

Временные графики обучения изменяют скорость обучения в зависимости от скорости обучения предыдущей итерации времени. С учетом распада математическая формула для скорости обучения выглядит следующим образом:

η n + 1 = η n 1 + d n {\displaystyle \eta _{n+1}={\frac {\eta _{n}}{1+dn}}}

где — скорость обучения, — параметр затухания, — шаг итерации. η {\displaystyle \eta } d {\displaystyle d} n {\displaystyle n}

Пошаговые графики обучения изменяют скорость обучения в соответствии с некоторыми предопределенными шагами. Формула применения распада здесь определяется как:

η n = η 0 d 1 + n r {\displaystyle \eta _{n}=\eta _{0}d^{\left\lfloor {\frac {1+n}{r}}\right\rfloor }}

где — скорость обучения на итерации , — начальная скорость обучения, — насколько должна меняться скорость обучения при каждом падении (0,5 соответствует уменьшению вдвое) и — скорость падения , или как часто скорость должна падать (10 соответствует падению каждые 10 итераций). Функция пола ( ) здесь снижает значение своего входа до 0 для всех значений, меньших 1. η n {\displaystyle \eta _{n}} n {\displaystyle n} η 0 {\displaystyle \eta _{0}} d {\displaystyle d} r {\displaystyle r} {\displaystyle \lfloor \dots \rfloor }

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

η n = η 0 e d n {\displaystyle \eta _{n}=\eta _{0}e^{-dn}}

где — параметр распада. d {\displaystyle d}

Адаптивная скорость обучения

Проблема с графиками скорости обучения заключается в том, что все они зависят от гиперпараметров, которые должны быть выбраны вручную для каждой сессии обучения и могут сильно различаться в зависимости от решаемой задачи или используемой модели. Для борьбы с этим существует множество различных типов алгоритмов адаптивного градиентного спуска, таких как Adagrad , Adadelta, RMSprop и Adam [9], которые обычно встроены в библиотеки глубокого обучения, такие как Keras . [10]

Смотрите также

Ссылки

  1. ^ Мерфи, Кевин П. (2012). Машинное обучение: вероятностная перспектива. Кембридж: MIT Press. стр. 247. ISBN 978-0-262-01802-9.
  2. ^ Delyon, Bernard (2000). "Стохастическое приближение с уменьшающимся коэффициентом усиления: сходимость и асимптотическая теория". Неопубликованные заметки лекций . Университет Ренна. CiteSeerX 10.1.1.29.4428 . 
  3. ^ Будума, Нихил; Локасио, Николас (2017). Основы глубокого обучения: разработка алгоритмов машинного интеллекта следующего поколения . O'Reilly. стр. 21. ISBN 978-1-4919-2558-4.
  4. ^ ab Паттерсон, Джош; Гибсон, Адам (2017). «Понимание скорости обучения». Глубокое обучение: подход практикующего специалиста . O'Reilly. стр.  258–263 . ISBN 978-1-4919-1425-0.
  5. ^ Рудер, Себастьян (2017). «Обзор алгоритмов оптимизации градиентного спуска». arXiv : 1609.04747 [cs.LG].
  6. ^ Нестеров, Ю. (2004). Вводные лекции по выпуклой оптимизации: базовый курс. Бостон: Kluwer. С. 25. ISBN 1-4020-7553-7.
  7. ^ Диксон, LCW (1972). «Выбор длины шага, решающий фактор в производительности алгоритмов с переменной метрикой». Численные методы нелинейной оптимизации . Лондон: Academic Press. С.  149–170 . ISBN 0-12-455650-7.
  8. ^ Смит, Лесли Н. (4 апреля 2017 г.). «Циклические скорости обучения для обучения нейронных сетей». arXiv : 1506.01186 [cs.CV].
  9. ^ Мерфи, Кевин (2021). Вероятностное машинное обучение: введение. MIT Press . Получено 10 апреля 2021 г.
  10. ^ Браунли, Джейсон (22 января 2019 г.). «Как настроить скорость обучения при обучении нейронных сетей глубокого обучения». Machine Learning Mastery . Получено 4 января 2021 г.

Дальнейшее чтение

  • Géron, Aurélien (2017). «Градиентный спуск». Практическое машинное обучение с Scikit-Learn и TensorFlow . O'Reilly. стр.  113–124 . ISBN 978-1-4919-6229-9.
  • Plagianakos, VP; Magoulas, GD; Vrahatis, MN (2001). "Адаптация скорости обучения в стохастическом градиентном спуске". Достижения в области выпуклого анализа и глобальной оптимизации . Kluwer. стр.  433–444 . ISBN 0-7923-6942-4.
  • де Фрейтас, Нандо (12 февраля 2015 г.). «Оптимизация». Лекция по глубокому обучению 6. Оксфордский университет – через YouTube .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Learning_rate&oldid=1221506624"