Всегда ли градиентный спуск сходится к оптимальному?


21

Мне интересно, есть ли сценарий, при котором градиентный спуск не сходится к минимуму.

Я осознаю, что градиентный спуск не всегда может привести к глобальному оптимуму. Я также знаю, что он может отличаться от оптимального, если, скажем, размер шага слишком велик. Тем не менее, мне кажется, что если он отклоняется от некоторого оптимума, то в конечном итоге он перейдет к другому оптимуму.

Следовательно, градиентный спуск будет гарантированно сходиться к локальному или глобальному оптимуму. Это правильно? Если нет, не могли бы вы предоставить примерный контрпример?


1
Надеюсь, что эта ссылка поможет в будущем .. datascience.stackexchange.com/a/28417/35644
Aditya

1
Посмотрите этот ответ для 3 конкретных и простых примеров, включая доказательства, изображения и код, который создает анимацию градиентного спуска
Орен Мильман

Ответы:


28

Градиентный спуск - это алгоритм, который предназначен для поиска оптимальных точек, но эти оптимальные точки не обязательно являются глобальными. И да, если случится так, что он отклонится от локального местоположения, он может сходиться к другой оптимальной точке, но его вероятность не слишком велика. Причина в том, что размер шага может быть слишком большим, что побуждает его отступать на одну оптимальную точку, и вероятность того, что он колеблется, намного больше, чем сходимость.

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

Для большей интуиции я предлагаю вам обратиться сюда и сюда .


3
Точно. Эти проблемы всегда возникают в теории, но редко в реальной практике. С таким количеством измерений это не проблема. У вас будут локальные минимумы в одной переменной, но не в другой. Кроме того, мини-пакетный или стохастический градиентный спуск также помогает избежать любых локальных минимумов.
Рикардо Круз,

3
@RicardoCruz да, я согласен, сэр
Media

12

Помимо упомянутых вами моментов (сходимость к неглобальным минимумам и большие размеры шагов, возможно, приводящие к не сходящимся алгоритмам), «диапазоны перегиба» также могут быть проблемой.

Рассмотрим следующий тип функции «кресло с откидной спинкой».

введите описание изображения здесь

Очевидно, это можно построить так, чтобы в середине находился диапазон, в котором градиент представляет собой вектор 0. В этом диапазоне алгоритм может застрять на неопределенное время. Точки перегиба обычно не считаются локальными экстремумами.



3

[Примечание 5 апреля 2019 года: новая версия документа была обновлена ​​на arXiv со многими новыми результатами. Мы также представляем версии Momentum и NAG с обратной связью и доказываем сходимость при тех же предположениях, что и для Backtracking Gradient Descent.

Исходные коды доступны на GitHub по ссылке: https://github.com/hank-nguyen/MBT-optimizer

Мы улучшили алгоритмы для применения к DNN и получили лучшую производительность, чем современные алгоритмы, такие как MMT, NAG, Adam, Adamax, Adagrad, ...

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

]

Основано на очень недавних результатах: в моей совместной работе в этой статье https://arxiv.org/abs/1808.05160

е

Исходя из вышеизложенного, мы предложили новый метод глубокого обучения, который соответствует современным современным методам и не требует ручной настройки скоростей обучения. (В двух словах , идея состоит в том, что вы запускаете обратный градиентный спуск определенное время, пока не увидите, что скорости обучения, которые меняются с каждой итерацией, стабилизируются. Мы ожидаем эту стабилизацию, особенно в критической точке, которая C ^ 2 и является невырожденным из-за результата сходимости, о котором я упоминал выше. В этот момент вы переключаетесь на стандартный метод градиентного спуска. Для получения более подробной информации см. Цитируемую статью. Этот метод также может быть применен к другим оптимальным алгоритмам .)

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

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