содержание:
- предисловие
- Стохастический градиентный спуск
- Классификация деревьев решений
- пакетный градиентный спуск
- Импульсный градиентный спуск
- Нестеров Импульсный градиентный спуск
- АдаГрад градиентный спуск
- Градиентный спуск Адама
- Сравнение с другими алгоритмами неограниченной оптимизации
1. Введение
Градиентный спуск — широко используемый алгоритм в машинном обучении, но это не сам алгоритм машинного обучения, а алгоритм оптимизации решения. Это в основном решает проблему поиска минимального значения.Основная идея состоит в том, чтобы непрерывно приближаться к оптимальной точке.Направление оптимизации каждого шага - это направление градиента.
Суть машинного обучения состоит в том, чтобы «накормить» данные модели и позволить модели продолжать обучение, и этот процесс обучения представляет собой процесс непрерывной оптимизации с использованием метода градиентного спуска, Наиболее распространенной глубокой нейронной сетью является использование обратного распространения градиента. , и неоднократно обновлять параметры модели до сходимости, чтобы достичь цели оптимизации модели.
Для простейших линейных моделей, таких как
в, так что найти не сложно
который
2 Стохастический градиентный спуск
Так называемый метод стохастического градиентного спуска относится к случайному извлечению пары выборок из набора выборок каждый раз.Для обновления формула обновления:
Но с другой точки зрения, такой маршрут оптимизации «возвратно-поступательных колебаний» может эффективно предотвратить попадание модели в локальное оптимальное решение, когда имеется много локальных минимумов функции потерь.
3 Стандартный градиентный спуск
Стандартное правило градиентного спуска заключается в обновлении параметров после вычисления суммы функций потерь в выборке:
Следовательно, скорость обучения этого алгоритма
4 партии градиентного спуска
Рисовать случайным образом из набора образцов каждый разПеребрать образцы (batch_size):
5 Импульсный градиентный спуск
Этот алгоритм также известен как метод градиентного спуска по импульсу.Основная идея заключается в следующем: процесс нахождения оптимального решения функции потерь можно рассматривать как маленький шарик, движущийся от поверхности решения (поверхности, на которой представлено значение функции потерь в системе координат) где-то вдоль поверхности.В процессе падения в низшую точку поверхности градиент функции потерь можно рассматривать как силу, приложенную к шарику, через действие силы возникает скорость, и положение мяча может быть изменено скоростью. Из закона механики F=ma можно узнать, что градиент пропорционален ускорению, а ускорение изменяет скорость, и можно получить следующий процесс обновления:
в,- коэффициент импульса,
Размер значения можно определить методом проб и ошибок, который на практике часто устанавливается равным 0,9.
Этот метод оптимизации не меняет сразу направление оптимизации градиента, а направление после каждого расчета представляет собой взвешенную сумму направления предыдущей оптимизации и значения, полученного на этот раз, то есть направление оптимизации градиента изменяется на накапливается понемногу, и тем больше накапливается. Преимущество этого метода оптимизации заключается в том, что при получении градиента из разных обучающих выборок значение градиента в оптимальном направлении всегда увеличивается, поэтому можно уменьшить количество колебаний.
6 Нестеров Импульсный градиентный спуск
Метод градиентного спуска Нестерова по импульсу является усовершенствованием метода градиентного спуска по импульсу Процесс обновления выглядит следующим образом:
В методе градиентного спуска Momentum было обнаружено, что, то вы можете «заглянуть вперед» не для решения градиента текущей позиции, а для решения
градиент в . Хотя эта позиция неверна, она лучше, чем текущая позиция θ.
7 АдаГрад градиентный спуск
В методе градиентного спуска выбор скорости обучения очень важен, поскольку он связан с «размером шага» каждого шага в процессе оптимизации.Если шаг слишком велик, это вызовет колебания вокруг оптимального решения. Если шаг слишком мал, легко попасть в локальное оптимальное решение, а размер скорости обучения, применимый к разным параметрам, разный, некоторые параметры могут быть близки к оптимальным, нужно только их тонко настроить, требуется относительно небольшая скорость обучения, а некоторые параметры нуждаются в серьезной корректировке. В этом сценарии AdaGrad может адаптироваться к различным скоростям обучения. Процесс обновления выглядит следующим образом:
Итак, основная идея RMSprop заключается в использовании экспоненциально затухающей скользящей средней, чтобы отбросить историю далекого прошлого.
8. Градиентный спуск Адама
Адам рассматривает градиент и квадрат градиента, используя преимущества AdaGrad и RMSprop. Адам динамически регулирует скорость обучения на основе оценок градиента первого и второго порядка.
в,- среднее значение первого момента градиента,
- значение нецентральной дисперсии градиента во второй момент, где
Обычно устанавливается на 0,9,
Обычно устанавливается на 0,9999,
Обычно устанавливается на
.
Этот метод не только сохраняет экспоненциально убывающее среднее значение предыдущих квадратов градиентов AdaDelta, но также поддерживает экспоненциально убывающее среднее значение предыдущих градиентов M(t), подобно импульсу.
9 Сравнение с другими алгоритмами неограниченной оптимизации
Алгоритмы безусловной оптимизации в машинном обучении, помимо градиентного спуска, есть еще метод наименьших квадратов, упомянутый выше, в дополнение к методу Ньютона и методу квазиньютона.
По сравнению с методом градиентного спуска и наименьших квадратов,Градиентный спуск требует выбора размера шага, а метод наименьших квадратов — нет. Метод градиентного спуска представляет собой итеративное решение, а метод наименьших квадратов заключается в вычислении аналитического решения..
Если размер выборки невелик и есть аналитическое решение, метод наименьших квадратов имеет преимущество перед методом градиентного спуска, и скорость вычислений очень высока.
Однако, если размер выборки велик, трудно или медленно решать аналитическое решение с использованием метода наименьших квадратов из-за необходимости получения сверхбольшой обратной матрицы.Более выгодно использовать метод итеративного градиентного спуска.
По сравнению с методом Ньютона/квазиньютоновским методом метод градиентного спуска представляет собой итеративное решение,Однако метод градиентного спуска представляет собой градиентное решение, а метод Ньютона/квазиньютоновский метод решается с помощью обратной матрицы или псевдообратной матрицы матрицы Гессе второго порядка..
Условно говоря, использование метода Ньютона/квазиньютоновского метода сходится быстрее. Но каждая итерация занимает больше времени, чем градиентный спуск.
Прочитайте исходный текст:https://mp.weixin.qq.com/s/qtnACz8Oqq5ziNy61zbovw