Используются ли методы линейного поиска в глубоком обучении? Почему нет?

18

Многие учебники онлайн рассказывают о градиентном спуске, и почти во всех из них используется фиксированный размер шага (скорость обучения ). Почему не используется поиск строк (например, поиск по линии с возвратом или точный поиск по строке)?α

Haitao Du
источник
5
«И почти все они используют фиксированный размер шага» - вы уверены? гиперпараметры «скорость обучения» должны адаптировать размер шага к условиям. Очень популярный алгоритм Адама действительно адаптирует размер шага
Аксакал
1
хм, на самом деле адаптивные методы градиента размера шага существуют примерно по крайней мере с 2011 года, и они даже упоминаются на странице Wikipedia Стохастический градиентный спуск . Это не совсем горячие новости. Даже ванильный SGD почти всегда используется со скоростью обучения, которая меняется в зависимости от количества итераций ( графика ). Теперь очень хороший вопрос: почему, даже если существует так много методов адаптивного градиентного спуска, SGD все еще доминирует в мире глубокого обучения? Вопрос гораздо менее тривиален, чем может показаться.
DeltaIV
1
Обратный поиск строки определяет направление, а затем ищет способ уменьшить функцию. Поэтому, если у вас нет интеллектуального способа выбора направления для поиска, вас ждет утомительная оптимизация.
Алекс Р.
1
Я не вижу, что поиск линии имеет смысл для SGD (в отличие от [пакетного] градиентного спуска) - поэтому я бы сказал, что причина в этом.
seanv507
3
Я подозреваю, что причина, по которой поиск строк не очень популярен, заключается в группировке с градиентным спуском. Вы получаете партию, а затем вычисляете градиент. Из-за шума в градиенте не имеет смысла идти вперед и назад по линии. Лучше продолжать работу со следующей партией, пока, возможно, отжигать размер шага.
Аксакал

Ответы:

14

Ванильный градиентный спуск можно сделать более надежным с помощью поиска строк; Я написал алгоритмы, которые делают это, и это обеспечивает очень стабильный алгоритм (хотя и не обязательно быстрый).

Тем не менее, почти нет смысла выполнять поиск линии для методов стохастического градиента. Причина, по которой я это говорю, заключается в том, что если мы выполняем поиск строк, основанный на минимизации функции полной потери, мы немедленно теряем одну из основных мотиваций для выполнения стохастических методов; Теперь нам нужно вычислить функцию полной потери для каждого обновления, которая обычно имеет вычислительную стоимость, сравнимую с вычислением полной первой производной. Учитывая, что мы хотели избежать вычисления полного градиента из-за вычислительных затрат, кажется очень маловероятным, что мы хотим быть в порядке с вычислением функции полной потери.

В качестве альтернативы вы можете подумать о том, чтобы выполнить что-то вроде поиска строки на основе случайно выбранной точки данных. Тем не менее, это тоже не очень хорошая идея; это ничего не скажет вам о том, что вы зашли слишком далеко (что является основным преимуществом поиска строк). Например, предположим, что вы выполняете логистическую регрессию. Тогда каждый результат - просто 0 или 1, и для любой отдельной выборки мы тривиально получаем идеальное разделение, поэтому оптимальное решение для наших параметров регрессии, основанных на выборке 1, тривиально или с помощью эффекта Хаука Доннера. Это не хорошо.

РЕДАКТИРОВАТЬ

@DeltaIV указывает, что это относится и к мини-пакетам, а не только к отдельным образцам.

Клифф AB
источник
4
очень приятно (+1), но я не уверен, почему в последнем примере вы говорите об одном образце. Я согласен, что вычисление линейного поиска на основе мини-партии не имеет смысла, но мини-партия по-прежнему содержит 512 выборок (как правило, и если говорить об ImageNet): конечно, нет фиксированного значения для количества выборок в мини-пакете. -партии, но 1 образец мини-партии чувствуют себя немного экстремально. Вы использовали их, чтобы прояснить свою точку зрения, или я что-то упустил?
DeltaIV
2
@DeltaIV: один пример, в основном, показывает, как плохо может быть очень простая задача. Если бы мы сделали мини-серию с 512 образцами по логистической регрессии с 512+ ковариатами, мы бы увидели ту же проблему.
Клифф AB
10

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

Тим
источник
2
@DeltaIV: все «другие» причудливые методы построены на основе SGD. Основная проблема заключается в том, что другие методы используют преимущества локальных знаний для более эффективных переходов, а не просто случайную выборку точек для вычисления градиента. Но SGD настолько прост и быстр, и сам по себе он не совсем ужасен.
Алекс Р.
2
@AlexR. Дело не в том, что SGD прост и / или быстр. Простота не имеет значения, поскольку во всех приличных библиотеках реализованы SGD, Adam, AdaGrad и RMSProp (а иногда и больше). Скорость имеет значение даже меньше, потому что время, потраченное, например, Адамом, на вычисление обновлений на уровне параметров, ничтожно мало по сравнению с общим временем обучения модели, такой как ResNet. Единственное, что по какой-то причине сегодня мы не до конца понимаем, SGD обобщает лучше, чем они. Таким образом, в основном, если вы хотите победить SOTA, вы часто вынуждены использовать его или, по крайней мере, переключаться на него позже во время тренировки.
DeltaIV
3
@DeltaIV Очень интересно. Я открыл документ, на который вы ссылались, и он ссылается на препринт Wilson et al 2017 для утверждения, что SGD обобщает лучше, чем Адам и т.д .; поэтому, когда вы говорите, что это "хорошо известно", вы имеете в виду "хорошо известно" примерно через полгода, верно?
говорит амеба, восстанови Монику
2
@DeltaIV Спасибо. Я не занимаюсь глубоким обучением сам, и я не знал об этом вообще. Примерно в 2012 году, когда я смотрел лекции Хинтона Coursera, он в основном выступал за RMSprop, и в последние 1-2 года у меня сложилось впечатление, что все используют Адама (который заменяет RMSprop, согласно статье Адама). Когда в прошлом году я играл с автоэнкодерами , я понял, что Адам работает намного быстрее, чем SGD, и с тех пор просто предположил, что Адам в настоящее время является выбором по умолчанию.
говорит амеба, восстанови Монику
3
@CliffAB Да, связь между ранней остановкой и регуляризацией может быть отчетливо видна для наименьших квадратов, где градиентный спуск работает в базисе собственных значений, а небольшие собственные значения сходятся последними; тогда как штраф за хребет также штрафует собственные значения. Теперь я только взглянул на Wilson et al. выше, но, по крайней мере, в их примере наименьших квадратов SGD против Адама не объясняется ранней или поздней остановкой. Они утверждают, что они сходятся к различным решениям.
амеба говорит восстановить Монику