Темп обучения (Mybh kQrcyunx)

Перейти к навигации Перейти к поиску

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

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

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

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

[править | править код]

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

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

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

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

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

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

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

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

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

Адаптируемый темп обучения

[править | править код]

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

Примечания

[править | править код]
  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

К дальнейшему прочтению

[править | править код]
  • 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).