Если гессианы так хороши для оптимизации (см., Например , метод Ньютона ), зачем останавливаться на достигнутом? Давайте использовать третий, четвертый, пятый и шестой производные? Почему бы нет?
Если гессианы так хороши для оптимизации (см., Например , метод Ньютона ), зачем останавливаться на достигнутом? Давайте использовать третий, четвертый, пятый и шестой производные? Почему бы нет?
Ответы:
Я интерпретирую вопрос так: «Почему в методе Ньютона используются только первые и вторые производные, а не третьи или более высокие производные?»
На самом деле, во многих случаях переход к третьей производной действительно помогает; Я сделал это с пользовательскими вещами раньше. Однако, в целом, переход к более высоким производным добавляет вычислительную сложность - вы должны найти и рассчитать все эти производные, а для многомерных задач третьих производных гораздо больше, чем первых! - это намного перевешивает экономию на количестве шагов, которое вы получаете, если таковые имеются. Например, если у меня есть трехмерная задача, у меня есть 3 первых производных, 6 вторых производных и 10 третьих производных, поэтому переход к версии третьего порядка более чем удваивает количество вычислений, которые я должен сделать (с 9 до 19), не говоря уже об увеличении сложности вычисления направления / размера шага после того, как я сделал эти оценки, но почти наверняка не сократит количество шагов, которые я должен сделать, вдвое.
Теперь, в общем случае с переменными, коллекция частных производных будет иметь номер , поэтому для задачи с пятью переменными общее число третьих четвертая и пятая частные производные будут равны 231, увеличившись более чем в 10 раз по сравнению с числом первых и вторых частных производных (20). Вам может понадобиться задача, которая очень, очень близка к полиному пятого порядка по переменным, чтобы увидеть достаточно большое сокращение числа итераций, чтобы компенсировать эту дополнительную вычислительную нагрузку.n t h ( k + n - 1
Я на самом деле не вижу статистического аспекта этого вопроса, поэтому я отвечу на часть оптимизации.
Практически каждый ответ здесь фокусируется только на стоимости итерации и игнорирует количество итераций . Но оба они имеют значение. Метод, который повторяется за 1 наносекунду, но требует итераций, чтобы сходиться, вам не поможет. И взрывающийся метод тоже не поможет, независимо от того, насколько дешева его итерация.
Давайте выясним, что происходит.
Частично потому (и это верно для 2-го порядка, но об этом чуть позже):
С другой стороны, они легче взрываются, когда находятся дальше от оптимального!
(Конечно, это не всегда так; например, квадратичный метод будет сходиться за 1 шаг с помощью метода Ньютона. Но для произвольных функций в реальном мире, которые не имеют хороших свойств, это обычно верно.)
Это означает, что когда вы находитесь далеко от оптимума, вы обычно хотите использовать метод низкого порядка (читай: первого порядка). Только когда вы находитесь рядом, вы хотите увеличить порядок метода.
Чтобы понять почему, сначала вы должны понять, что означает «квадратичная конвергенция» .
Математически, квадратичная сходимость означает, что, если - ваша ошибка на итерации , то в конечном итоге справедливо следующее для некоторой константы : к с
На простом английском языке это означает, что, когда вы приближаетесь к оптимальному (важно!), Каждый дополнительный шаг удваивает количество цифр точности .
Зачем? Это легко увидеть на примере: для и , то есть , , и т.д. , которые до смешного быстро , (Это супер экспоненциально !)| ϵ 1 | = 0,1 | № 2 | ≤ 0,01 | № 3 | ≤ 0,0001
На самом деле, люди часто делают это, когда производные второго порядка становятся слишком дорогими. Но линейная сходимость может быть очень медленной. например, если вы получили то вам понадобится, возможно, 10 000 000 итераций с линейной сходимостью, чтобы получить , но только 23 итерации с квадратичной сходимостью. Таким образом , вы можете видеть , почему существует резкое различие между линейной и квадратичной сходимости. Например, это не так для конвергенции 2-го и 3-го порядка (см. Следующий параграф).| ϵ | < 0,5
На этом этапе, если вы знакомы с какой-либо информатикой, вы понимаете, что с конвергенцией 2-го порядка проблема уже решена . Если вы не понимаете почему, вот почему: нет ничего практичного, чтобы выиграть, увеличивая число цифр на каждой итерации вместо того, чтобы удваивать его - что вы будете покупать? В конце концов, в компьютере даже число double
-точности имеет точность 52 бита, что составляет около 16 десятичных цифр.
Может быть, это уменьшит количество необходимых вам шагов с 16 до 3 ... что звучит замечательно, пока вы не поймете, что это достигается ценой необходимости вычислять третьи производные на каждой итерации, что является проклятием размерностибьет тебя сильно. Для мерной задачи вы просто заплатили коэффициент чтобы получить коэффициент , что немо. И в реальном мире проблемы имеют как минимум сотни измерений (или даже тысяч или даже миллионов), а не просто ! Таким образом, вы получаете коэффициент в 20, заплатив, скажем, 20 000 ... вряд ли разумный компромисс.6 ≈ 5 6
Другая половина заключается в том, что вы, как правило, получаете худшее поведение, когда вы далеки от оптимального, что, как правило, отрицательно влияет на количество итераций, которые вы должны выполнить.
В общем случае методы более высокого порядка, чем 2, - плохая идея. Конечно, если вы можете внести дополнительные полезные предположения в таблицу (например, возможно, ваши данные действительно похожи на многочлен высокой степени, или у вас есть способы определения местоположения оптимума и т. Д.), То, возможно, вы сможете обнаружить, что они хорошая идея, но это будет решение для конкретной проблемы, а не общее правило, которым нужно жить.
Даже вычисление гессиана - это довольно трудоемкая работа:
Теперь посмотрим, как выглядит третья производная: Это трехмерная матрица. Вот как выглядят его элементы:
Производная шестого будет шестимерной матрицей:
Как правило, компромисс не благоприятен для того, чтобы идти выше, чем гессиан. Я имею в виду компромисс между потенциальным приростом скорости за счет использования приближений более высокого порядка и усиления шума. У вас всегда есть шум на входах, потому что мы говорим о статистических приложениях. Этот шум будет усилен производными.
Если вы играете в гольф, то аналогия в оптимизации заключается в том, чтобы сначала качаться, пытаясь добраться до грина, а не беспокоиться о лунке. Однажды, на грин, мы будем целовать дыру.
Как правило, когда вы анализируете эффективность таких алгоритмов, вы найдете такие результаты, как один шаг алгоритма четвертого порядка, имеющий примерно ту же эффективность, что и два шага алгоритма второго порядка.
Таким образом, выбор того, какой алгоритм использовать, относительно прост: если один шаг алгоритма четвертого порядка занимает вдвое больше работы или больше, чем один шаг алгоритма второго порядка, вы должны использовать последний вместо этого.
Это типичная ситуация для такого рода методов: классический алгоритм имеет оптимальное соотношение работы к эффективности для общих задач. Хотя иногда возникают проблемы, когда подход более высокого порядка необычайно прост для вычисления и может превзойти классический вариант, они относительно редки.
Вы можете представить порядок производных как порядок полиномиального приближения к функции. Большинство процедур оптимизации полагаются на выпуклость. Квадратичный многочлен будет всюду выпуклым / вогнутым, тогда как многочлен 3-го порядка или выше не будет выпуклым везде. По этой причине большинство процедур оптимизации опираются на последовательные приближения выпуклых функций квадратичными. Выпуклое квадратичное приближение требует, чтобы условие положительной определенности было наложено, чтобы квадратичное было выпуклым.
Позвольте мне быть здесь единственным, кто защищает методы 3-го порядка для сходимости SGD, но определенно не во всем пространстве, для чего потребуются коэффициенты 3/6, а, например, только в одном направлении, которому нужен только один дополнительный коэффициент, если уже имея модель 2-го порядка в этом направлении.
Почему модель 3-го порядка в одном направлении может быть выгодной? Например, потому что близкая к нулю вторая производная в этом направлении в основном означает два альтернативных сценария: плато или точка перегиба - только первый требует большего размера шага, а третья производная позволяет их различать.
Я полагаю, что мы пойдем к гибридным методам мультипорядка: метод 2-го порядка в низкоразмерном подпространстве, например, из PCA недавних градиентов, который по-прежнему допускает свободный одновременный спуск градиента 1-го порядка к части градиента, ортогонального этому подпространству ... и дополнительно Я бы добавил, например, модель 3-го порядка для одного наиболее актуального направления.