BFGS с ограниченной памятью
BFGS с ограниченной памятью ( L-BFGS или LM-BFGS ) — это оптимизации алгоритм из семейства квазиньютоновских методов , который аппроксимирует алгоритм Бройдена-Флетчера-Гольдфарба-Шенно (BFGS) с использованием ограниченного объема компьютерной памяти . [1] Это популярный алгоритм оценки параметров в машинном обучении . [2] [3] Целевая задача алгоритма — минимизировать по неограниченным значениям действительного вектора где является дифференцируемой скалярной функцией.
Как и исходный BFGS, L-BFGS использует оценку обратной матрицы Гессе для управления поиском в пространстве переменных, но где BFGS хранит плотную аппроксимации обратного гессиана ( n — количество переменных в задаче), L-BFGS хранит только несколько векторов, которые неявно представляют аппроксимацию. Из-за требований к линейной памяти метод L-BFGS особенно хорошо подходит для задач оптимизации со многими переменными. Вместо обратного гессиана H k L-BFGS сохраняет историю последних m обновлений положения x и градиента ∇ f ( x ), где обычно размер истории m может быть небольшим (часто ). Эти обновления используются для неявного выполнения операций, требующих произведения H k -вектора.
Алгоритм
[ редактировать ]Алгоритм начинается с первоначальной оценки оптимального значения, и итеративно уточняет эту оценку с помощью последовательности лучших оценок . Производные функции используются в качестве ключевого фактора алгоритма для определения направления наискорейшего спуска, а также для формирования оценки матрицы Гессе (второй производной) .
L-BFGS имеет много общего с другими квазиньютоновскими алгоритмами, но сильно отличается от метода умножения матрицы на вектор. осуществляется, где - приблизительное направление Ньютона, текущий градиент, и является обратной матрицей Гессе. Существует множество опубликованных подходов, использующих историю обновлений для формирования этого вектора направления. Здесь мы даем общий подход, так называемую «двухцикловую рекурсию». [4] [5]
Мы принимаем как данность , позиция на k -й итерации, и где — минимизируемая функция, а все векторы являются векторами-столбцами. Мы также предполагаем, что мы сохранили m последних обновлений вида
- .
Мы определяем , и будет «начальным» приближением обратного гессиана, с которого начинается наша оценка на итерации k .
Алгоритм основан на рекурсии BFGS для обратного гессиана как
При фиксированном k определим последовательность векторов как и . Тогда рекурсивный алгоритм вычисления от это определить и . Мы также определим еще одну последовательность векторов как . Существует еще один рекурсивный алгоритм вычисления этих векторов, который заключается в определении а затем рекурсивно определить и . Стоимость тогда это наше направление восхождения.
Таким образом, мы можем вычислить направление спуска следующим образом:
Эта формулировка задает направление поиска задачи минимизации, т. е. . Поэтому для задач максимизации вместо этого следует использовать -z . Обратите внимание, что исходный приближенный обратный гессиан выбирается как диагональная матрица или даже кратная единичной матрице, поскольку это численно эффективно.
Масштабирование исходной матрицы гарантирует, что направление поиска хорошо масштабируется и поэтому длина единичного шага принимается в большинстве итераций. Поиск линии Вульфа используется, чтобы гарантировать, что условие кривизны удовлетворено и обновление BFGS стабильно. Обратите внимание, что некоторые реализации программного обеспечения используют поиск линии с возвратом Armijo , но не могут гарантировать, что условие кривизны будет удовлетворен выбранным шагом, поскольку длина шага больше, чем может потребоваться для выполнения этого условия. Некоторые реализации решают эту проблему, пропуская обновление BFGS при отрицательное значение или слишком близко к нулю, но этот подход обычно не рекомендуется, поскольку обновления могут быть пропущены слишком часто, чтобы обеспечить аппроксимацию Гессе. для сбора важной информации о кривизне. Некоторые решатели используют так называемое демпфированное обновление (L)BFGS, которое изменяет величины. и для выполнения условия кривизны.
Формула двухпетлевой рекурсии широко используется оптимизаторами без ограничений из-за ее эффективности при умножении на обратный гессиан. Однако он не позволяет явно формировать ни прямой, ни обратный гессиан и несовместим с неблочными ограничениями. Альтернативный подход предполагает использование представления низкого ранга для прямого и/или обратного гессиана. [6] Это представляет гессиан как сумму диагональной матрицы и обновления низкого ранга. Такое представление позволяет использовать L-BFGS в ограниченных условиях, например, как часть метода SQP.
Приложения
[ редактировать ]L-BFGS был назван «алгоритмом выбора» для подбора лог-линейных (MaxEnt) моделей и условных случайных полей с -регуляризация . [2] [3]
Варианты
[ редактировать ]Поскольку BFGS (и, следовательно, L-BFGS) предназначен для минимизации гладких функций без ограничений , алгоритм L-BFGS необходимо модифицировать для обработки функций, которые включают недифференцируемые компоненты или ограничения. Популярный класс модификаций, называемый методами активного набора, основан на концепции активного набора . Идея состоит в том, что при ограничении небольшой окрестности текущей итерации функция и ограничения могут быть упрощены.
Л-БФГС-Б
[ редактировать ]Алгоритм L-BFGS-B расширяет L-BFGS для обработки простых ограничений блока (также известных как связанные ограничения) для переменных; то есть ограничения вида l i ≤ x i ≤ u i, где l i и u i — постоянные нижняя и верхняя границы для каждой переменной соответственно (для каждого x i одна или обе границы могут быть опущены). [7] [8] Этот метод работает путем идентификации фиксированных и свободных переменных на каждом этапе (с использованием простого градиентного метода), а затем использования метода L-BFGS для свободных переменных только для получения более высокой точности, а затем повторения процесса.
СОВА-QN
[ редактировать ]Квазиньютон с ограниченной памятью по Ортанту ( OWL-QN ) представляет собой вариант L-BFGS для подгонки - регуляризованные модели, использующие присущую разреженность . таким моделям [3] Он минимизирует функции вида
где — дифференцируемая выпуклая функция потерь . Этот метод является методом типа активного набора: на каждой итерации он оценивает знак каждого компонента переменной и ограничивает следующий шаг, чтобы он имел тот же знак. Если знак фиксирован, то недифференцируемая термин становится гладким линейным термином, который может обрабатываться L-BFGS. После шага L-BFGS метод позволяет некоторым переменным изменить знак и повторяет процесс.
О-ЛБФГС
[ редактировать ]Шраудольф и др. представить онлайн- аппроксимацию как BFGS, так и L-BFGS. [9] Подобно стохастическому градиентному спуску , это можно использовать для уменьшения вычислительной сложности путем оценки функции ошибок и градиента на случайно выбранном подмножестве общего набора данных на каждой итерации. Было показано, что O-LBFGS имеет глобальную почти уверенную сходимость. [10] в то время как онлайн-аппроксимация BFGS (O-BFGS) не обязательно сходится. [11]
Реализация вариантов
[ редактировать ]Известные реализации с открытым исходным кодом включают:
- ALGLIB реализует L-BFGS на C++ и C#, а также отдельную коробочную/линейно ограниченную версию BLEIC.
- Р 's
optim
Программа оптимизатора общего назначения использует метод L-BFGS-B. - Метод минимизации модуля оптимизации SciPy также включает возможность использования L-BFGS-B.
Известные реализации с закрытым исходным кодом включают:
- Вариант L-BFGS-B также существует как алгоритм ACM TOMS 778. [8] [12] В феврале 2011 года некоторые из авторов исходного кода L-BFGS-B опубликовали крупное обновление (версию 3.0).
- Эталонная реализация на Фортране 77 (и с интерфейсом Фортрана 90 ). [13] [14] Эта версия, как и более ранние версии, конвертирована на многие другие языки.
- Реализация OWL-QN C++, созданная его разработчиками. [3] [15]
Цитируемые работы
[ редактировать ]- ^ Лю, округ Колумбия; Носедал, Дж. (1989). «О методе ограниченной памяти для крупномасштабной оптимизации» . Математическое программирование Б. 45 (3): 503–528. CiteSeerX 10.1.1.110.6443 . дои : 10.1007/BF01589116 . S2CID 5681609 .
- ^ Jump up to: а б Малуф, Роберт (2002). «Сравнение алгоритмов оценки параметров максимальной энтропии» . Материалы шестой конференции по изучению естественного языка (CoNLL-2002) . стр. 49–55. дои : 10.3115/1118853.1118871 .
- ^ Jump up to: а б с д Эндрю, Гален; Гао, Цзяньфэн (2007). «Масштабируемое обучение L₁-регуляризованных лог-линейных моделей» . Материалы 24-й Международной конференции по машинному обучению . дои : 10.1145/1273496.1273501 . ISBN 9781595937933 . S2CID 5853259 .
- ^ Мэттис, Х.; Стрэнг, Г. (1979). «Решение нелинейных уравнений конечных элементов». Международный журнал численных методов в технике . 14 (11): 1613–1626. Бибкод : 1979IJNME..14.1613M . дои : 10.1002/nme.1620141104 .
- ^ Носедал, Дж. (1980). «Обновление квазиньютоновских матриц с ограниченным хранилищем» . Математика вычислений . 35 (151): 773–782. дои : 10.1090/S0025-5718-1980-0572855-7 .
- ^ Берд, Р.Х.; Носедаль, Дж.; Шнабель, РБ (1994). «Представления квазиньютоновских матриц и их использование в методах ограниченной памяти». Математическое программирование . 63 (4): 129–156. дои : 10.1007/BF01582063 . S2CID 5581219 .
- ^ Берд, Р.Х.; Лу, П.; Носедаль, Дж.; Чжу, К. (1995). «Алгоритм с ограниченной памятью для оптимизации с ограничениями» . СИАМ J. Sci. Вычислить. 16 (5): 1190–1208. дои : 10.1137/0916069 . S2CID 6398414 .
- ^ Jump up to: а б Чжу, К.; Берд, Ричард Х.; Лу, Пэйхуан; Носедаль, Хорхе (1997). «L-BFGS-B: Алгоритм 778: L-BFGS-B, процедуры FORTRAN для крупномасштабной оптимизации с ограничениями» . Транзакции ACM в математическом программном обеспечении . 23 (4): 550–560. дои : 10.1145/279232.279236 . S2CID 207228122 .
- ^ Шраудольф, Н.; Ю, Дж.; Гюнтер, С. (2007). Стохастический квазиньютоновский метод для онлайн-выпуклой оптимизации . АЙСТАТС.
- ^ Мохтари, А.; Рибейро, А. (2015). «Глобальная конвергенция онлайн-BFGS с ограниченной памятью» (PDF) . Журнал исследований машинного обучения . 16 : 3151–3181. arXiv : 1409.2045 .
- ^ Мохтари, А.; Рибейро, А. (2014). «RES: регуляризованный стохастический алгоритм BFGS». Транзакции IEEE по обработке сигналов . 62 (23): 6089–6104. arXiv : 1401.7625 . Бибкод : 2014ITSP...62.6089M . CiteSeerX 10.1.1.756.3003 . дои : 10.1109/TSP.2014.2357775 . S2CID 15214938 .
- ^ «ТОМС Дом» . toms.acm.org .
- ^ Моралес, Дж.Л.; Носедал, Дж. (2011). «Замечание к «алгоритму 778: L-BFGS-B: подпрограммы Фортрана для крупномасштабной оптимизации со связанными ограничениями» ». Транзакции ACM в математическом программном обеспечении . 38 : 1–4. дои : 10.1145/2049662.2049669 . S2CID 16742561 .
- ^ «Код нелинейной оптимизации L-BFGS-B» . users.iems.northwestern.edu .
- ^ «Квазиньютоновский оптимизатор с ограниченной памятью по Ортанту для L1-регуляризованных целей» . Центр загрузки Microsoft .
Дальнейшее чтение
[ редактировать ]- Лю, округ Колумбия; Носедал, Дж. (1989). «О методе ограниченной памяти для крупномасштабной оптимизации» . Математическое программирование Б. 45 (3): 503–528. CiteSeerX 10.1.1.110.6443 . дои : 10.1007/BF01589116 . S2CID 5681609 .
- Хагиги, Ария (2 декабря 2014 г.). «Численная оптимизация: понимание L-BFGS» .
- Пытлак, Радослав (2009). «Квазиньютоновские алгоритмы с ограниченной памятью» . Алгоритмы сопряженных градиентов в невыпуклой оптимизации . Спрингер. стр. 159–190. ISBN 978-3-540-85633-7 .