Темп обучения

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

График темпа обучения[править | править код]

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

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

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

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

где — это темп обучения, — параметр затухания и — шаг итерации.

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

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

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

где — параматр затухания.

Адаптируемый темп обучения[править | править код]

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

См. также[править | править код]

Примечания[править | править код]

  1. Murphy, Kevin P. Machine Learning: A Probabilistic Perspective. — Cambridge : MIT Press, 2012. — P. 247. — ISBN 978-0-262-01802-9.
  2. Delyon, Bernard (2000). "Stochastic Approximation with Decreasing Gain: Convergence and Asymptotic Theory". Unpublished Lecture Notes. Université de Rennes. CiteSeerX 10.1.1.29.4428.
  3. Buduma, Nikhil. Fundamentals of Deep Learning : Designing Next-Generation Machine Intelligence Algorithms / Nikhil Buduma, Nicholas Locascio. — O'Reilly, 2017. — P. 21. — ISBN 978-1-4919-2558-4.
  4. 1 2 Patterson, Josh. Understanding Learning Rates // Deep Learning : A Practitioner's Approach / Josh Patterson, Adam Gibson. — O'Reilly, 2017. — P. 258–263. — ISBN 978-1-4919-1425-0.
  5. Ruder, Sebastian (2017). "An Overview of Gradient Descent Optimization Algorithms". arXiv:1609.04747 [cs.LG].
  6. Nesterov, Y. Introductory Lectures on Convex Optimization: A Basic Course. — Boston : Kluwer, 2004. — P. 25. — ISBN 1-4020-7553-7.
  7. Dixon, L. C. W. The Choice of Step Length, a Crucial Factor in the Performance of Variable Metric Algorithms // Numerical Methods for Non-linear Optimization. — London : Academic Press, 1972. — P. 149–170. — ISBN 0-12-455650-7.
  8. Smith, Leslie N. (4 April 2017). "Cyclical Learning Rates for Training Neural Networks". arXiv:1506.01186 [cs.CV].
  9. Murphy, Kevin. Probabilistic Machine Learning: An Introduction. — MIT Press, 2021. Архивная копия от 11 апреля 2021 на Wayback Machine
  10. Brownlee, Jason How to Configure the Learning Rate When Training Deep Learning Neural Networks. Machine Learning Mastery (22 января 2019). Дата обращения: 4 января 2021. Архивировано 20 июня 2019 года.

К дальнейшему прочтению[править | править код]

  • Géron, Aurélien. Gradient Descent // Hands-On Machine Learning with Scikit-Learn and TensorFlow. — O'Reilly, 2017. — P. 113–124. — ISBN 978-1-4919-6229-9.
  • Plagianakos, V. P. Learning Rate Adaptation in Stochastic Gradient Descent // Advances in Convex Analysis and Global Optimization / V. P. Plagianakos, G. D. Magoulas, M. N. Vrahatis. — Kluwer, 2001. — P. 433–444. — ISBN 0-7923-6942-4.

Ссылки[править | править код]

  • de Freitas, Nando Optimization. Deep Learning Lecture 6 (12 февраля 2015).