Сегодня я расскажу о другом алгоритме оптимизации, который называется 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. Строит второй график функции с увеличенным контуром Адама в важной области.

Все значения выбираются случайным образом.

Вывод:

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