Является ли Gradient Descent центральным для каждого оптимизатора?


13

Я хочу знать, является ли градиентный спуск основным алгоритмом, используемым в оптимизаторах, таких как Adam, Adagrad, RMSProp и некоторых других оптимизаторах.


1
Я удивлен, что никто не упомянул «спуск по координатам» или «подъем по координатам». en.wikipedia.org/wiki/Coordinate_descent .
Натан

Ответы:


28

Нет. Градиентный спуск используется в алгоритмах оптимизации, которые используют градиент в качестве основы для его шагового движения. Adam, AdagradИ RMSPropвсе используют некоторые формы градиентного спуска, однако они не составляют каждый оптимизатор. Эволюционные алгоритмы, такие как Оптимизация роя частиц и Генетические алгоритмы, основаны на природных явлениях и не используют градиенты. Другие алгоритмы, такие как байесовская оптимизация , черпают вдохновение в статистике.

Проверьте эту визуализацию байесовской оптимизации в действии: Байесовская оптимизация в действии

Есть также несколько алгоритмов, которые объединяют концепции эволюционной и градиентной оптимизации.

Алгоритмы оптимизации на основе непроизводных могут быть особенно полезны в нерегулярных невыпуклых функциях затрат, недифференцируемых функциях затрат или функциях затрат, которые имеют различную левую или правую производную .

Чтобы понять, почему можно выбрать непроизводный алгоритм оптимизации. Взгляните на функцию эталонного теста Растригина . Градиентная оптимизация не подходит для оптимизации функций с таким количеством локальных минимумов.

Растригин эталонная функция


большое Вам спасибо.
Мне понравился

8

Согласно названию:
Нет. Только определенные типы оптимизаторов основаны на градиентном спуске. Простой контрпример - это когда оптимизация находится в дискретном пространстве, где градиент не определен.

По телу:
да. Адам, Адаград, RMSProp и другие подобные оптимизаторы (Нестеров, Надам и т. Д.) Все пытаются предложить адаптивный размер шага (скорость обучения) для градиентного спуска, чтобы улучшить скорость сходимости, не жертвуя производительностью (то есть приводя к худшему локальному минимуму / максимум).

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

Некоторые дополнительные заметки

  1. Форма функции потерь зависит как от параметров модели, так и от данных, поэтому выбор лучшего метода всегда зависит от задачи и требует проб и ошибок.

  2. Стохастическая часть градиентного спуска достигается за счет использования партии данных , а не полных данных. Эта методика параллельна всем упомянутым методам, то есть все они могут быть стохастическими (с использованием пакета данных) или детерминированными (с использованием всех данных).

  3. | |вес| |21(0,1,1)(0,1)(0,43,0.9)прогнозируемый стохастик Адам .


3

Ответ на вопрос может быть нет. Причина заключается просто в многочисленных доступных алгоритмах оптимизации, но выбор одного сильно зависит от контекста и времени, которое у вас есть на оптимизацию. Например, Генетический алгоритм является хорошо известным подходом к оптимизации, в котором нет градиентного спуска. Есть также другие подходы, такие как возврат в некоторых контекстах. Все они могут быть использованы, которые не используют шаг за шагом градиентного спуска.

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

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

О(N3)весзнак равно(ИксTИкс)-1(ИксTY)

В-третьих, существуют проблемы оптимизации, которые не обязательно имеют близкое решение. Логистическая регрессия является одним из них.


3

Ну, вы выбрали оптимизаторы, которые используются в нейронных сетях, эти оптимизаторы используют алгоритмы на основе градиента. В большинстве случаев алгоритмы на основе градиента используются в нейронных сетях. Это почему? Ну, а вы бы предпочли попытаться найти минимум, зная наклон кривой или не зная этого? Если вы не можете вычислить градиент, вы вернетесь к оптимизации без производных . При этом бывают случаи, когда, хотя у вас есть информация о градиенте, лучше использовать метод без градиента. Это обычно имеет место с функциями, которые имеют много локальных минимумов. Население основано на алгоритмах, таких как эволюционные стратегии и генетические алгоритмы. И есть также ветвь комбинаторной оптимизации, где используется совершенно другой набор инструментов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.