Введение

Метод математической оптимизации

В (неограниченной) математической оптимизации, поиск с возвратом (backtracking line search) — это метод поиска вдоль прямой, предназначенный для определения величины шага в заданном направлении поиска. Для его применения необходимо, чтобы целевая функция была дифференцируема и известен её градиент. Метод заключается в начале с относительно большой оценки размера шага для движения вдоль направления поиска, и последующем итеративном уменьшении этого размера шага (то есть, "возврате") до тех пор, пока не будет наблюдаться снижение значения целевой функции, которое в достаточной мере соответствует ожидаемому снижению, исходя из размера шага и локального градиента целевой функции. Распространённым критерием остановки является условие Армихо — Гольдштейна. Поиск с возвратом обычно используется в методе градиентного спуска (GD), но может применяться и в других случаях. Например, его можно использовать с методом Ньютона, если матрица Гессе положительно определена.

Нижняя граница для показателей обучения

Это отвечает на вопрос, существует ли систематический способ найти положительное число, зависящее от функции f, точки и направления спуска, так, чтобы все шаги обучения (или скорости обучения) удовлетворяли условию Армихо. Когда , мы можем выбрать в порядке , где является локальной константой Липшица для градиента в окрестности точки (см. непрерывность по Липшицу). Если функция , то она приближается к гессиану функции в этой точке. Подробнее см. в [указание на источник].

Верхняя граница для показателей обучения

В той же ситуации, где , возникает интересный вопрос о том, насколько большими могут быть выбраны скорости обучения в условиях Армихо (то есть, когда нет ограничения на , как определено в разделе "Минимизация функции с использованием обратного поиска линии на практике"), поскольку большие скорости обучения, когда ближе к предельной точке (если она существует), могут ускорить сходимость. Например, в условиях Вольфа не упоминается , но вводится другое условие, называемое условием выпуклости. Показано, что существует верхняя граница для скоростей обучения, если требуется, чтобы построенная последовательность сходилась к невырожденной критической точке, см.: Скорости обучения должны быть ограничены сверху приблизительно следующим образом: Здесь H — гессиан функции в предельной точке, — ее обратная, а — норма линейного оператора. Таким образом, этот результат применим, например, при использовании обратного поиска линии для функций Морзе. Следует отметить, что в одномерном случае является числом, и, следовательно, эта верхняя граница сопоставима по порядку величины с нижней границей, указанной в разделе "Нижняя граница для скоростей обучения". С другой стороны, если предельная точка вырождена, то скорости обучения могут быть неограниченными. Например, модификация обратного поиска линии, известная как неограниченный градиентный спуск с возвратом (см.), позволяет скорости обучения быть вдвое меньше , где — константа. Эксперименты с простыми функциями, такими как , показывают, что неограниченный градиентный спуск с возвратом сходится значительно быстрее, чем базовая версия, описанная в разделе "Минимизация функции с использованием обратного поиска линии на практике".

Эффективность времени

Аргумент против использования поиска с возвратом (Backtracking line search), особенно в крупномасштабной оптимизации, заключается в том, что проверка условия Армихо вычислительно затратна. Существует способ (так называемый двусторонний поиск с возвратом) обойти это ограничение, обладающий хорошими теоретическими гарантиями и успешно протестированный на глубоких нейронных сетях, см. (Там же можно найти хорошие/стабильные реализации условия Армихо и его комбинации с популярными алгоритмами, такими как Momentum и NAG, на наборах данных Cifar10 и Cifar100). Можно заметить, что если последовательность сходится (что желательно при использовании итеративного метода оптимизации), то последовательность шагов обучения должна мало изменяться при достаточно большом n. Следовательно, при поиске оптимального шага обучения, если всегда начинать с текущего значения, можно потерять много времени, если последовательность остается далеко от нуля. Вместо этого, поиск следует начинать с текущего значения. Второе наблюдение состоит в том, что оптимальный шаг обучения может быть больше текущего, и, следовательно, следует допускать увеличение шага обучения (а не только уменьшение, как описано в разделе «Алгоритм»). Вот подробное описание алгоритма двустороннего поиска с возвратом: на шаге n

Установить набор и счетчик итераций . (Увеличить шаг обучения, если условие Армихо выполнено). Если , то, пока это условие и условие выполняются, многократно устанавливать и увеличивать j. (В противном случае, уменьшить шаг обучения, если условие Армихо не выполнено). Если же , то, пока условие не будет выполнено, многократно увеличивать и устанавливать .
Вернуть для шага обучения.
(В можно найти описание алгоритма, включающего пункты 1), 3) и 4), который до появления упомянутой статьи не был протестирован на глубоких нейронных сетях). Можно дополнительно сэкономить время, используя гибридный подход, сочетающий двусторонний поиск с возвратом и базовый алгоритм градиентного спуска. Эта процедура также имеет хорошие теоретические гарантии и демонстрирует хорошие результаты на практике. Грубо говоря, мы выполняем двусторонний поиск с возвратом несколько раз, а затем используем полученный шаг обучения без изменений, за исключением случаев, когда значение функции увеличивается. Вот как это делается. Заранее выбираем число и число , устанавливаем счетчик итераций j=0. На шагах используем двусторонний поиск с возвратом. На каждом шаге k в наборе : Установить . Если , то выбираем и (в этом случае используем шаг обучения без изменений). В противном случае, если , используем двусторонний поиск с возвратом. Увеличиваем k на 1 и повторяем. Увеличиваем j на 1.

Теоретическая гарантия (для спуска по наклонной полосе)

По сравнению с условиями Вулфа, которые более сложны, условие Армихо имеет более строгую теоретическую гарантию. Действительно, на сегодняшний день обратный поиск по линии и его модификации являются наиболее теоретически обоснованными методами среди всех алгоритмов численной оптимизации в отношении сходимости к критическим точкам и избежания седловых точек, см. ниже. Критические точки – это точки, в которых градиент целевой функции равен 0. Локальные минимумы являются критическими точками, но существуют критические точки, которые не являются локальными минимумами. Примером служат седловые точки. Седловые точки – это критические точки, в которых существует по крайней мере одно направление, вдоль которого функция достигает (локального) максимума. Следовательно, эти точки далеки от локальных минимумов. Например, если функция имеет хотя бы одну седловую точку, то она не может быть выпуклой. Важность седловых точек для алгоритмов оптимизации заключается в том, что при оптимизации в больших масштабах (то есть в пространствах высокой размерности) вероятность встретить больше седловых точек, чем минимумов, выше, см. Таким образом, хороший алгоритм оптимизации должен уметь избегать седловых точек. В контексте глубокого обучения седловые точки также распространены, см. Следовательно, для применения в глубоком обучении необходимы результаты для невыпуклых функций. Относительно сходимости к критическим точкам: например, если функция потерь является вещественно-аналитической функцией, то показано в , что сходимость гарантирована. Основная идея заключается в использовании неравенства Лояшевича, которым обладает вещественно-аналитическая функция. Для негладких функций, удовлетворяющих неравенству Лояшевича, вышеуказанная гарантия сходимости расширяется, см. В приведено доказательство того, что для любой последовательности, построенной методом обратного поиска по линии, предельная точка кластера (то есть предел одной подпоследовательности, если подпоследовательность сходится) является критической точкой. В случае функции с не более чем счетным числом критических точек (например, функции Морса) и компактными подуровнями, а также с градиентом, удовлетворяющим условию Липшица, при использовании стандартного градиентного спуска с шагом обучения <1/L (см. раздел "Стохастический градиентный спуск"), сходимость гарантирована, см., например, главу 12 в . Предположение о компактных подуровнях необходимо для обеспечения работы только с компактными множествами евклидова пространства. В общем случае, когда предполагается только, что имеет не более чем счетное число критических точек, сходимость гарантирована, см. В той же работе аналогично гарантируется сходимость для других модификаций обратного поиска по линии (таких как неограниченный градиентный спуск, упомянутый в разделе "Верхняя граница для шага обучения"), и даже если функция имеет несчетное число критических точек, все равно можно вывести некоторые нетривиальные факты о поведении сходимости. В стохастической постановке, при том же предположении, что градиент удовлетворяет условию Липшица, и используется более ограничительная версия схемы убывающего шага обучения (требующая, чтобы сумма шагов обучения была бесконечной, а сумма квадратов шагов обучения была конечной) (см. раздел "Стохастический градиентный спуск"), и, кроме того, функция строго выпукла, то сходимость устанавливается в известном результате , см. для обобщений на менее ограничительные версии схемы убывающего шага обучения. Ни один из этих результатов (для невыпуклых функций) пока не доказан для какого-либо другого алгоритма оптимизации. Относительно избежания седловых точек: например, если градиент функции потерь удовлетворяет условию Липшица и выбран стандартный градиентный спуск с шагом обучения <1/L, то при случайном выборе начальной точки (точнее, вне множества меры Лебега, равной нулю) построенная последовательность не будет сходиться к невырожденной седловой точке (доказано в ), и в более общем случае также верно, что построенная последовательность не будет сходиться к вырожденной седловой точке (доказано в ). При том же предположении, что градиент удовлетворяет условию Липшица и используется схема убывающего шага обучения (см. раздел "Стохастический градиентный спуск"), избежание седловых точек устанавливается в .

Специальный случай: (стандартное) спуск стохастического градиента (SGD)

Хотя это тривиально упомянуть, если градиент функции потерь является липшицево-непрерывным, с константой Липшица L, то при выборе постоянной скорости обучения размера , мы имеем частный случай поиска линии с возвратом (для градиентного спуска). Однако эта схема требует хорошей оценки L, иначе, если скорость обучения слишком велика (по сравнению с 1/L), схема не гарантирует сходимость. Можно увидеть, что произойдет, если функция потерь является сглаживанием (вблизи точки 0) функции f(t) = |t|. Однако такая хорошая оценка затруднительна и трудоемка в больших размерностях. Кроме того, если градиент функции не является глобально липшицево-непрерывным, эта схема также не гарантирует сходимость. Например, это аналогично упражнению в , для функции потерь и для любой выбранной постоянной скорости обучения, последовательность, построенная этой схемой, не сходится к глобальному минимуму 0, начиная со случайной начальной точки. Если не учитывать требование, чтобы скорость обучения была ограничена 1/L, то эта схема использовалась гораздо раньше, по крайней мере с 1847 года, Коши, и может быть названа стандартным градиентным спуском (не путать со стохастическим градиентным спуском, который здесь обозначается как SGD). В стохастической постановке (например, в постановке мини-пакетов в глубоком обучении) стандартный градиентный спуск называется стохастическим градиентным спуском или SGD. Даже если функция потерь имеет глобально непрерывный градиент, хорошая оценка константы Липшица для функций потерь в глубоком обучении может быть невозможна или нежелательна, учитывая очень высокие размерности глубоких нейронных сетей. Следовательно, существует метод тонкой настройки скорости обучения при применении стандартного градиентного спуска или SGD. Один из способов — выбрать множество скоростей обучения из сетки, в надежде, что некоторые из них дадут хорошие результаты. (Однако, если функция потерь не имеет глобально липшицево-непрерывного градиента, то пример с выше показывает, что поиск по сетке не поможет.) Другой способ — так называемый адаптивный стандартный градиентный спуск или SGD, некоторые представители — Adam, Adadelta, RMSProp и т. д., см. статью о стохастическом градиентном спуске. В адаптивном стандартном градиентном спуске или SGD скорость обучения может меняться на каждом шаге итерации n, но иначе, чем при поиске линии с возвратом для градиентного спуска. Очевидно, что использование поиска линии с возвратом для градиентного спуска будет более затратным, поскольку необходимо выполнять поиск в цикле, пока не будет выполнено условие Армихо, в то время как для адаптивного стандартного градиентного спуска или SGD поиск в цикле не требуется. Большинство из этих адаптивных стандартных градиентных спусков или SGD не обладают свойством убывания , для всех n, в отличие от поиска линии с возвратом для градиентного спуска. Лишь немногие обладают этим свойством и имеют хорошие теоретические свойства, но они оказываются частными случаями поиска линии с возвратом или, в более общем смысле, условием Армихо. Первый случай — когда скорость обучения выбирается постоянной <1/L, как упоминалось выше, если можно получить хорошую оценку L. Второй — так называемая убывающая скорость обучения, используемая в известной работе , если функция снова имеет глобально липшицево-непрерывный градиент (но константа Липшица может быть неизвестна), и скорости обучения стремятся к 0.

Резюме

В целом, поиск по линии с возвратом (и его модификации) – это метод, который легко реализовать, применим к очень широкому классу функций, обладает сильной теоретической гарантией (как в отношении сходимости к критическим точкам, так и в отношении избежания седловых точек) и хорошо работает на практике. Другие методы, обладающие хорошей теоретической гарантией, такие как убывающие скорости обучения или стандартный градиентный спуск со скоростью обучения <1/L, требуют, чтобы градиент целевой функции был липшицево непрерывным, и оказываются частным случаем поиска по линии с возвратом или удовлетворяют условию Армихо. Несмотря на то, что априори для применения этого метода требуется непрерывная дифференцируемость целевой функции, на практике его можно успешно применять и к функциям, непрерывно дифференцируемым на плотном открытом множестве, например, или .