Крутой спуск может быть неэффективным, даже если целевая функция сильно выпуклая.
Обыкновенный градиентный спуск
Я имею в виду «неэффективный» в том смысле, что наискорейший спуск может предпринимать шаги, которые резко отклоняются от оптимального, даже если функция сильно выпуклая или даже квадратичная.
Рассмотрим . Это выпукло, потому что это квадратик с положительными коэффициентами. Из проверки видно, что он имеет глобальный минимум при . Он имеет градиент
е( х ) = х21+ 25 х22х = [ 0 , 0 ]⊤
∇ ф( х ) = [ 2 х150 х2]
При скорости обучения и начальной догадке мы получаем обновление градиентаα = 0,035Икс( 0 )= [ 0,5 , 0,5 ]⊤,
Икс( 1 )= х( 0 )- α ∇ f( х( 0 ))
который демонстрирует этот дико колеблющийся прогресс к минимуму.
Действительно, угол образованный между и только постепенно уменьшается до 0. Что это означает в том, что направление обновления иногда неправильное - самое большее, оно почти на 68 градусов - даже если алгоритм сходится и работает правильно.θ( х( я ), х*)( х( я ), х( я + 1 ))
Каждый шаг сильно колеблется, потому что функция намного круче в направлении чем в направлении . Из-за этого факта мы можем сделать вывод, что градиент не всегда или даже обычно указывает на минимум. Это общее свойство градиентного спуска, когда собственные значения гессиана находятся в разных масштабах. Прогресс является медленным в направлениях, соответствующих собственным векторам с наименьшими соответствующими собственными значениями, и наиболее быстрым в направлениях с самыми большими собственными значениями. Именно это свойство в сочетании с выбором скорости обучения определяет, насколько быстро прогрессирует градиентный спуск.Икс2Икс1∇2е( х )
Прямой путь к минимуму будет состоять в том, чтобы двигаться «по диагонали», а не таким образом, в котором преобладают вертикальные колебания. Тем не менее, градиентный спуск имеет только информацию о локальной крутизне, поэтому он «не знает», что стратегия будет более эффективной, и он подвержен капризам гессиана, имеющим собственные значения в разных масштабах.
Стохастический градиентный спуск
SGD имеет те же свойства, за исключением того, что обновления являются шумными, подразумевая, что поверхность контура отличается от одной итерации к другой, и поэтому градиенты также различны. Это означает, что угол между направлением шага градиента и оптимумом также будет иметь шум - просто представьте те же графики с некоторым джиттером.
Больше информации:
Этот ответ заимствует этот пример и рисунок из главы 9 « Дизайн нейронных сетей» (2-е изд.) Мартина Т. Хейгана, Говарда Б. Демута, Марка Хадсона Била, Орландо де Хесуса.