Сегодня я расскажу о другом алгоритме оптимизации, который называется ADAM. Практики глубокого обучения всегда стремились оптимизировать производительность модели и значение функции потерь через эпохи обучения модели. Таким образом, алгоритм Адама - один из самых распространенных методов, который хорошо работает в области глубокого обучения. Есть несколько основных причин, по которым это работает. Ниже я постараюсь объяснить некоторые из них.
Известный как Адаптивный алгоритм оценки моментов, но сокращенно Адам, этот алгоритм оптимизации был представлен в 2015 году двумя исследователями - Дидериком П. Кингма. и Джимми Лей Ба. Этот алгоритм просто оценивает моменты и использует их для оптимизации функции. По сути, это комбинация градиентного спуска с алгоритмом импульса и алгоритмом RMS (среднеквадратическое значение) Prop.
Алгоритм Адама вычисляет экспоненциально взвешенное скользящее среднее градиента, а затем возводит вычисленный градиент в квадрат. Этот алгоритм имеет два параметра спада, которые контролируют скорость спада этих вычисленных скользящих средних.
Ниже я покажу реализацию алгоритма оптимизации Адама на Python, я буду объяснять каждый момент сценария, чтобы вы лучше понимали эту технику.
Описание: эта функция принимает начальное или предыдущее значение x, обновляет его на основе алгоритма оптимизации Адама и выводит минимальное значение x, которое обеспечивает точность.
Аргументы:
x_new - начальное значение x, которое будет обновляться в зависимости от скорости обучения.
x_prev - предыдущее значение x, которое обновляется до нового
precision - точность, определяющая остановку ступенчатого спуска
l_r - скорость обучения (размер каждой ступени спуска)
beta1 - параметр первого момента для первой части оптимизатора Adam - градиентный спуск с моментной частью
beta2 - параметр второго момента для второй части оптимизатора Adam - RMS prop
epsilon - значение, выбранное для обеспечения отсутствия деления на ноль, если выход RMS prop очень мал.
Выход:
1. Распечатывает последнее новое значение x, которое соответствует минимальному значению, которое мы ищем.
2. Выводит количество значений x, которое равно количеству шагов оптимизатора Adam.
3. Строит первый график функции с путем Адама.
4. Строит второй график функции с увеличенным контуром Адама в важной области.
Все значения выбираются случайным образом.
Вывод:
Этот алгоритм помог практикам машинного обучения значительно оптимизировать свои модели лучше, чем обычный градиентный спуск или стохастический градиентный спуск. Многие преимущества этого алгоритма, перечисленные в этом руководстве, помогут вам узнать, когда применять его к вашим проблемам. С Адамом вы можете сократить свою функцию затрат и создать полезные модели, которые могут изменить мир.