Часть серии статей о |
Машинное обучение и интеллектуальный анализ данных |
---|
В машинном обучении и статистике скорость обучения — это параметр настройки в алгоритме оптимизации , который определяет размер шага на каждой итерации при движении к минимуму функции потерь . [1] Поскольку он влияет на то, в какой степени вновь полученная информация перекрывает старую информацию, он метафорически представляет скорость, с которой модель машинного обучения «обучается». В литературе по адаптивному управлению скорость обучения обычно называют усилением . [2]
При установке скорости обучения существует компромисс между скоростью сходимости и превышением . В то время как направление спуска обычно определяется градиентом функции потерь, скорость обучения определяет, насколько большой шаг делается в этом направлении. Слишком высокая скорость обучения заставит обучение перепрыгнуть через минимумы, но слишком низкая скорость обучения либо потребует слишком много времени для сходимости, либо застрянет в нежелательном локальном минимуме. [3]
Для достижения более быстрой сходимости, предотвращения колебаний и застревания в нежелательных локальных минимумах скорость обучения часто варьируется во время обучения либо в соответствии с графиком скорости обучения, либо с использованием адаптивной скорости обучения. [4] Скорость обучения и ее корректировки также могут различаться в зависимости от параметра, в этом случае это диагональная матрица , которую можно интерпретировать как приближение к обратной матрице Гессе в методе Ньютона . [5] Скорость обучения связана с длиной шага, определяемой неточным линейным поиском в квазиньютоновских методах и связанных с ними алгоритмах оптимизации. [6] [7]
Начальную скорость можно оставить как системную по умолчанию или выбрать с помощью ряда методов. [8] График скорости обучения изменяет скорость обучения во время обучения и чаще всего изменяется между эпохами/итерациями. Это в основном делается с двумя параметрами: затуханием и импульсом . Существует много различных графиков скорости обучения, но наиболее распространенными являются основанные на времени, основанные на шагах и экспоненциальные . [4]
Спад служит для стабилизации обучения в удобном месте и избегания колебаний — ситуации, которая может возникнуть, когда слишком высокая постоянная скорость обучения заставляет обучение скакать вперед и назад относительно минимума, и контролируется гиперпараметром.
Импульс аналогичен мячу, катящемуся с холма; мы хотим, чтобы мяч остановился в самой низкой точке холма (соответствующей наименьшей ошибке). Импульс ускоряет обучение (увеличивая скорость обучения), когда градиент стоимости ошибки движется в одном направлении в течение длительного времени, а также избегает локальных минимумов, «перекатываясь» через небольшие неровности. Импульс контролируется гиперпараметром, аналогичным массе мяча, которую необходимо выбирать вручную: слишком большой — и мяч перекатится через минимумы, которые мы хотим найти, слишком маленький — и он не выполнит своего назначения. Формула для факторизации импульса сложнее, чем для затухания, но чаще всего встраивается в библиотеки глубокого обучения, такие как Keras .
Временные графики обучения изменяют скорость обучения в зависимости от скорости обучения предыдущей итерации времени. С учетом распада математическая формула для скорости обучения выглядит следующим образом:
где — скорость обучения, — параметр затухания, — шаг итерации.
Пошаговые графики обучения изменяют скорость обучения в соответствии с некоторыми предопределенными шагами. Формула применения распада здесь определяется как:
где — скорость обучения на итерации , — начальная скорость обучения, — насколько должна меняться скорость обучения при каждом падении (0,5 соответствует уменьшению вдвое) и — скорость падения , или как часто скорость должна падать (10 соответствует падению каждые 10 итераций). Функция пола ( ) здесь снижает значение своего входа до 0 для всех значений, меньших 1.
Экспоненциальные графики обучения похожи на пошаговые, но вместо шагов используется убывающая экспоненциальная функция. Математическая формула для факторизации распада:
где — параметр распада.
Проблема с графиками скорости обучения заключается в том, что все они зависят от гиперпараметров, которые должны быть выбраны вручную для каждой сессии обучения и могут сильно различаться в зависимости от решаемой задачи или используемой модели. Для борьбы с этим существует множество различных типов алгоритмов адаптивного градиентного спуска, таких как Adagrad , Adadelta, RMSprop и Adam [9], которые обычно встроены в библиотеки глубокого обучения, такие как Keras . [10]