Многие учебники онлайн рассказывают о градиентном спуске, и почти во всех из них используется фиксированный размер шага (скорость обучения ). Почему не используется поиск строк (например, поиск по линии с возвратом или точный поиск по строке)?
18
Ответы:
Ванильный градиентный спуск можно сделать более надежным с помощью поиска строк; Я написал алгоритмы, которые делают это, и это обеспечивает очень стабильный алгоритм (хотя и не обязательно быстрый).
Тем не менее, почти нет смысла выполнять поиск линии для методов стохастического градиента. Причина, по которой я это говорю, заключается в том, что если мы выполняем поиск строк, основанный на минимизации функции полной потери, мы немедленно теряем одну из основных мотиваций для выполнения стохастических методов; Теперь нам нужно вычислить функцию полной потери для каждого обновления, которая обычно имеет вычислительную стоимость, сравнимую с вычислением полной первой производной. Учитывая, что мы хотели избежать вычисления полного градиента из-за вычислительных затрат, кажется очень маловероятным, что мы хотим быть в порядке с вычислением функции полной потери.
В качестве альтернативы вы можете подумать о том, чтобы выполнить что-то вроде поиска строки на основе случайно выбранной точки данных. Тем не менее, это тоже не очень хорошая идея; это ничего не скажет вам о том, что вы зашли слишком далеко (что является основным преимуществом поиска строк). Например, предположим, что вы выполняете логистическую регрессию. Тогда каждый результат - просто 0 или 1, и для любой отдельной выборки мы тривиально получаем идеальное разделение, поэтому оптимальное решение для наших параметров регрессии, основанных на выборке 1, тривиально или ∞ с помощью эффекта Хаука Доннера. Это не хорошо.−∞ ∞
РЕДАКТИРОВАТЬ
@DeltaIV указывает, что это относится и к мини-пакетам, а не только к отдельным образцам.
источник
В руководствах рассказывается о градиентном спуске, предположительно, потому что это один из самых простых алгоритмов, используемых для оптимизации, поэтому его легко объяснить. Поскольку большинство таких уроков довольно краткие, они фокусируются на простых вещах. Существует, по крайней мере, несколько популярных алгоритмов оптимизации, помимо простого градиентного спуска, которые используются для глубокого обучения. На самом деле люди часто используют разные алгоритмы, а затем градиентный спуск, поскольку они обычно сходятся быстрее. Некоторые из них имеют непостоянную скорость обучения (например, уменьшается со временем). Для обзора таких алгоритмов вы можете проверить обзор алгоритмов оптимизации градиентного спуска Себастьяна Рудера (или статью arXived). ).
источник