Почему метод Ньютона не широко используется в машинном обучении?


132

Это то, что беспокоило меня какое-то время, и я не смог найти удовлетворительных ответов в Интернете, так что вот так:

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


24
Что касается нейронных сетей, раздел deeplearningbook.org «8.6 Приблизительные методы второго порядка» дает хороший обзор. В заключение: «Помимо проблем, создаваемых определенными функциями целевой функции, такими как седловые точки, применение метода Ньютона для обучения больших нейронных сетей ограничено значительной вычислительной нагрузкой, которую оно налагает». Существуют альтернативы, которые пытаются получить некоторые из преимуществ метода Ньютона, обходя вычислительные барьеры, но у них есть свои проблемы.
Франк Дернонкур

1
см. этот связанный вопрос и комментарии, stats.stackexchange.com/questions/232305/…
Du

1
Обратите внимание, что другие комментарии имеют более широкое применение к машинному обучению, чем просто «глубокое обучение». Однако, хотя все проблемы ОД могут иметь тенденцию быть «большими данными», не все проблемы ОД обязательно являются «большими функциями» (т. Е. Множеством параметров для настройки), хотя глубокое обучение неизменно есть.
GeoMatt22

1
Стоит отметить, что в машинном обучении вне глубокого обучения L-BFGS (что, грубо говоря, приближается к методу Ньютона) является довольно распространенным алгоритмом оптимизации.
Дугал

2
Метод Ньютона предполагает выпуклость, современные проблемы ML (нейтральные сети) вряд ли где-то рядом с выпуклыми, хотя по общему признанию область открытых исследований там. Следовательно, метод Ньютона, вероятно, является столь же плохой оценкой, как и линейный в любом месте, но вблизи точки вычисления. Вы, вероятно, получите очень мало для квадратичного увеличения вычислений. Тем не менее, на недавней конференции в Беркли докладчик продолжал демонстрировать прогресс в использовании методов 2-го порядка, поэтому он ни в коем случае не умер.
Дэвид Паркс

Ответы:


95

Градиентный спуск максимизирует функцию, используя знание ее производной. Метод Ньютона, алгоритм поиска корня, максимизирует функцию, используя знание ее второй производной. Это может быть быстрее, когда вторая производная известна, и ее легко вычислить (алгоритм Ньютона-Рафсона используется в логистической регрессии). Однако аналитическое выражение для второй производной часто является сложным или неразрешимым, требующим большого количества вычислений. Численные методы для вычисления второй производной также требуют большого количества вычислений - если для вычисления первой производной требуются значений, для второй производной требуется .N 2NN2


5
Стоит отметить, что (основанные на) метод Гаусса-Ньютона , вероятно, более распространены. Это специализация Ньютона на нелинейных наименьших квадратах.
GeoMatt22

4
Я бы не назвал Гаусса-Ньютона специализацией Ньютона для нелинейных наименьших квадратов. Я бы назвал это ублюденным приближением Ньютона для нелинейных наименьших квадратов, в котором используется более неточное приближение Гессе, чем больше невязки в подогнанных уравнениях и, соответственно, чем дальше аргумент от оптимальности.
Марк Л. Стоун

1
@ MarkL. Стоит отметить, что я старался не вдаваться в технические детали :) Это правда, что методы стиля Гаусса-Ньютона пытаются «подделать» 2-й порядок только с информацией 1-го порядка. Лично я никогда не использовал методы Ньютона для оптимизации, только методы Гаусса-Ньютона (или LM, или ~ аналогичного UKF) или DFO-SQP (например, BOBYQA ). «Оптимальность» - это сложный вопрос, я бы сказал ... для проблемы ОД, в отличие от проблемы оптимизации инженерного проектирования, надежность / информативность «местного гессиана» может быть сомнительной. Возможно, нелокальный DFO-SQP является ~ "стохастическим Ньютоном"? (например, «онлайн»)
GeoMatt22

1
Во-вторых, подходы DFO-SQP имеют тенденцию быть нелокальными в пространстве параметров , а не пакетами данных. UKF может быть ближе по вкусу к «стохастическому Ньютон» , как это онлайн ж / ограниченному объем памяти ... но эффективно предполагает положительно определенный Гесс (т.е. Gaussian прибл.).
GeoMatt22

1
На самом деле это вводит в заблуждение причину, поскольку существуют методы второго порядка, такие как CG, которые не требуют вычисления гессиана. K итераций CG будет стоить только кН. Это верно, что CG теоретически будет соответствовать Ньютону только при k = N, но на самом деле вам не нужно так много итераций.
user25322

40

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

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

  • Использование линейного поиска с условиями Вулфа или использование или доверительные регионы предотвращают схождение в седловые точки. Надлежащая реализация градиентного спуска должна делать то же самое. В статье, на которую ссылается Cam.Davidson. Ответ Пилона указывает на проблемы с «методом Ньютона» при наличии седловых точек, но исправление, которое они защищают, также является методом Ньютона.

  • Использование метода Ньютона не требует построения всего (плотного) гессиана; Вы можете применить инверсию гессиана к вектору с помощью итерационных методов, которые используют только произведения матрицы на вектор (например, методы Крылова, такие как сопряженный градиент). См., Например, метод доверительной области CG-Steihaug.

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

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

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

Для справочной информации об этих концепциях я рекомендую книгу «Численная оптимизация» Носедала и Райта.

* Конечно, метод Ньютона не поможет вам с L1 или другими подобными функциями штрафа, стимулирующими сжатие восприятия / разреженности, так как им не хватает требуемой плавности.


2
Я думаю, что мы находимся в насильственном согласии друг с другом, а не со всеми остальными.
Марк Л. Стоун

1
Это все равно, что сравнивать, производят ли в Великобритании или США лучшие математики-исследователи, сравнивая математические способности 26-летних учеников-наркоманов, а не сравнивая лучшие эшелоны выпускников математики, выходящих из лучших школ каждой страны. Бумага подписана, опечатана и доставлена, никто, и я имею в виду, что никто не меняет и не снимает ее сейчас. Incroyable.
Марк Л. Стоун

3
@ MarkL.Stone Кажется, здесь произошел разговор, и он был удален, пока меня не было. В любом случае, я думаю, что вы правы в том, что мы согласны друг с другом и больше ни с кем. Я предполагаю, что этого следовало ожидать исходя из нашего опыта по сравнению с другими людьми здесь. Как вы, вероятно, ожидаете, я не очень думаю о связанной статье. С другой стороны, я думаю, что метод риманова многообразия Ньютона , когда кто-то снимает геодезическую траекторию в направлении поиска Ньютона, является техникой, которая многообещающа для очень сложных задач.
Ник Алджер

2
Как бы вы справились с большим тренировочным набором? Если у вас есть, например, 1 миллион обучающих образцов, то для оценки текущей цели оптимизации необходимо протестировать 1 миллион образцов. И вам нужно делать это несколько раз во время поиска строки. Таким образом, к тому времени, как вы сделали 1 шаг Ньютона, Stochastic Gradient Descent произведет несколько миллионов обновлений.
nikie

2
Ник и @ MarkL.Stone: Вы говорите по существу об этом подходе ? Это то, что в течение короткого времени было популярно в глубоком обучении, особенно для повторяющихся сетей, но с тех пор я потерял самообладание, потому что оно эмпирически не работало намного лучше, чем адаптивные градиентные методы. Если бы они просто делали что-то не так, и вы исправили бы то, что есть, и показали, что в целом он превосходит текущий стандартный вариант SGD Адама, вы могли бы оказать большое влияние: у газеты Адама было 1345 ссылок за два года ....
Дугал

33

Я недавно узнал об этом сам - проблема заключается в распространении седловых точек в многомерном пространстве, к которым стремятся методы Ньютона. См. Эту статью: Идентификация и решение проблемы седловой точки в многомерной невыпуклой оптимизации .

Действительно, отношение числа седловых точек к локальным минимумам увеличивается экспоненциально с размерностью N.

Хотя динамика градиентного спуска отталкивается от седловой точки, чтобы снизить ошибку, следуя направлениям отрицательной кривизны, ... метод Ньютона не обрабатывает седловые точки надлежащим образом; как показано ниже, седловые точки вместо этого становятся привлекательными при динамике Ньютона.


3
Не могли бы вы объяснить, почему это так? Теоретически, метод Ньютона формирует взвешенный градиентный спуск с «оптимальными» весами для каждого из собственных векторов.
nbubis

4
То, что эта статья говорит о методах Ньютона, «желающих» сходиться к седловым точкам, верно только для мусорных реализаций метода Ньютона.
Марк Л. Стоун

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

Новый алгоритм, который они отстаивают в этой статье, - это (вариант) метод Ньютона. это в основном метод Ньютона для направлений положительной кривизны и отрицательный метод Ньютона для направлений отрицательной кривизны.
Ник Алджер

26

Сочетание двух причин:

  • Метод Ньютона притягивает к седловым точкам;
  • Седловые точки распространены в машинном обучении или фактически при любой многопараметрической оптимизации.

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

xn+1=xn[Hf(xn)]1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

[Hf]1=[1/2001/2]

f=[2x2y]

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

x=0,y=0

Напротив, метод градиентного спуска не приведет к седловой точке. Градиент равен нулю в седловой точке, но небольшой шаг отвлечет оптимизацию, как вы можете видеть из градиента выше - его градиент по переменной y отрицателен.


1
Благодаря вам, я действительно понял, как этот метод работает от А до Я, так что большое спасибо за этот яркий пример!
Гринольдман

Что было бы любимым моментом здесь?
Бен

14

Вы задали два вопроса: почему больше людей не используют метод Ньютона и почему так много людей используют стохастический градиентный спуск? Эти вопросы имеют разные ответы, потому что есть много алгоритмов, которые уменьшают вычислительную нагрузку метода Ньютона, но часто работают лучше, чем SGD.

HO(N2)NgO(N)H1gO(N3)вычислить. Поэтому, хотя вычисление гессиана обходится дорого, его инвертирование или решение наименьших квадратов часто бывает еще хуже. (Если у вас есть разреженные функции, асимптотика выглядит лучше, но другие методы также работают лучше, поэтому разреженность не делает Ньютона относительно более привлекательным.)

Во-вторых, многие методы, а не только градиентный спуск, используются чаще, чем Ньютон; они часто являются подделками метода Ньютона, в том смысле, что они аппроксимируют шаг Ньютона при более низких вычислительных затратах на шаг, но требуют большего количества итераций, чтобы сходиться. Некоторые примеры:

  • H1 , глядя на то, как изменился градиент за последние несколько шагов.

  • O(N2) приблизительного обратного гессиана. BFGS с ограниченной памятью (L-BFGS) вычисляет направление следующего шага как приблизительное обратное значение гессиана, умноженное на градиент, но требует только сохранения нескольких последних обновлений градиента; он явно не хранит приблизительный обратный гессиан.

  • Когда вы вообще не хотите иметь дело с аппроксимирующими вторыми производными, градиентный спуск привлекателен, потому что он использует только информацию первого порядка. Градиентный спуск неявно аппроксимирует обратный гессиан, поскольку скорость обучения умножается на единичную матрицу. Лично я редко использую градиентный спуск: L-BFGS так же легко реализовать, поскольку для него требуется только указать целевую функцию и градиент; оно имеет лучшее обратное гессенское приближение, чем градиентный спуск; и потому что градиентный спуск требует настройки скорости обучения.

  • Иногда у вас есть очень большое количество наблюдений (точек данных), но вы можете почти так же извлечь уроки из меньшего количества наблюдений. В этом случае вы можете использовать «пакетные методы», такие как стохастический градиентный спуск, которые циклически используют подмножества наблюдений.


(+1) Стоит отметить, что L-BFGS имеет тот же уровень сложности, что и градиентный спуск по количеству параметров. Это не относится к BFGS. Так что не только ограниченная часть памяти L-BFGS делает его привлекательным.
Клифф AB

12

Направление градиентного спуска вычисляется дешевле, и поиск линии в этом направлении является более надежным и устойчивым источником продвижения к оптимальному. Короче говоря, градиентный спуск относительно надежен.

Метод Ньютона относительно дорог в том смысле, что вам нужно вычислить гессиан на первой итерации. Затем на каждой последующей итерации вы можете либо полностью пересчитать гессиан (как в методе Ньютона), либо просто «обновить» гессиан предыдущей итерации (в квазиньютоновских методах), который дешевле, но менее надежен.

В крайнем случае с очень хорошо управляемой функцией, особенно с совершенно квадратичной функцией, метод Ньютона является явным победителем. Если он совершенно квадратичен, метод Ньютона будет сходиться за одну итерацию.

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

Между градиентным спуском и методом Ньютона есть такие методы, как алгоритм Левенберга – Марквардта (LMA), хотя я видел, что имена немного запутались. Суть заключается в том, чтобы использовать поиск, основанный на градиентном спуске, когда все хаотично и запутанно, а затем переключаться на поиск, основанный на методе Ньютона, когда все становится более линейным и надежным.


3
Мальчик, вы должны использовать ужасные реализации Ньютона и Квази-Ньютона. Если используется либо с неположительно определенным гессианом, то либо используйте доверительные области, либо выполните поиск по линии в направлении (ях) отрицательной кривизны. Если это так, они более надежны, чем наискорейший спуск (т. Е. Градиентный спуск с поиском линии или областью доверия). Короче говоря, спуск по градиенту гораздо менее надежен, чем правильно реализованный метод Квазиньютона, который менее надежен, чем правильно реализованный метод Ньютона. Время вычисления и требования к памяти для каждой итерации, однако, другое дело.
Марк Л. Стоун,

4
Я думаю, что вы имеете в виду совершенно квадратичную функцию. То есть метод Ньютона сходится за одну итерацию с квадратичной целевой функцией, которая имеет линейный градиент.
Элизабет Санторелла,

1
@ElizabethSantorella: Да, вы правы! Я обновил ответ.
Nat

2
1/2xTx

1
Я сделал свое дело. если вы хотите думать о самом крутом спуске, градиентный спуск - это замечательно, особенно для плохо управляемых функций, это ваше дело. Сбей себя с ног.
Марк Л. Стоун

7

Hd=g

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

Часто ищется улучшение, а не точное решение, и в этом случае дополнительные затраты на методы, подобные Ньютону или Ньютону, не оправданы.

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

Напомним, что во многих проблемах ключевой проблемой является масштабирование, а гессиан предоставляет отличную информацию о масштабировании, хотя и за определенную плату. Если можно приблизиться к гессиану, это часто может значительно улучшить производительность. В некоторой степени метод Ньютона обеспечивает «лучшее» масштабирование в том смысле, что он является аффинно-инвариантным.


0

Существует много трудностей, связанных с использованием метода Ньютона для SGD, особенно:

  • ей нужна матрица Гессе - как ее оценить, например, по шумным градиентам с достаточной точностью при разумных затратах?

  • полный гессиан слишком дорог - нам нужно некоторое ограничение, например, для подпространства (какое подпространство?),

  • H1λ=0

  • Метод Ньютона напрямую притягивает к точке закрытия с нулевым градиентом ... что обычно является седлом. Как их отбить? Например, ньютон без оседлания меняет направление на отрицательную кривизну, но требует контроля над знаками собственных значений,

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

Мы можем перейти от 1-го порядка к 2-му порядку небольшими шагами, например, добавив обновление только трех средних к методу импульса, мы можем одновременно MSE подогнать параболу в ее направлении для более разумного выбора размера шага ... Моделирование 2-го порядка в низкоразмерном подпространстве мы Можно еще использовать оставшиеся координаты для одновременного градиентного спуска.

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