обзор
Возможно, вы захотите попробовать вариант метода множителей с альтернативными направлениями (ADMM), который, как было обнаружено, неожиданно быстро сходится для типа лассо. Стратегия состоит в том, чтобы сформулировать проблему с помощью расширенного лагранжиана, а затем выполнить градиентное восхождение по двойной задаче. Это особенно хорошо для этой конкретной регуляризованной задачи, потому что негладкая часть каждой итерации метода имеет точное решение, которое вы можете просто оценить элемент за элементом, в то время как гладкая часть включает в себя решение линейной системы.л 1L1L1
В этом посте мы
- получить общую формулировку ADMM для обобщения вашей проблемы,
- получить подзадачи для каждой итерации ADMM и специализировать их в вашей ситуации, а затем
- исследовать полученную линейную систему , которая должна быть решена каждой итерации, и разработать быстрый решатель (или предобуславливатель) на основе предварительного вычисления собственного значения разложения (или низкий ранг приближения этого) для и .Y Y TMTMYYT
- резюмируя несколько заключительных замечаний
Большинство важных идей здесь описаны в следующем превосходном обзоре:
Бойд, Стивен и др. «Распределенная оптимизация и статистическое обучение с помощью метода переменных множителей». Основы и тенденции в машинном обучении 3.1 (2011): 1-122. http://www.stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf
Прежде чем углубляться в детали, я хочу заметить, что это ответ метода / алгоритма, а не практический ответ кода - если вы хотите использовать этот метод, вам потребуется развернуть собственную реализацию.
ADMM формулировка
В общем, предположим, что вы хотите решить
минИксулицаΣя| Икся|A x = b,
Проблема в оригинальном посте попадает в эту категорию после соответствующей векторизации. (это только в принципе - мы увидим, что векторизация не должна выполняться на практике)
Вместо этого вы можете решить эквивалентную задачу:
с лагранжевым
L(x,z,λ,γ)=
минх , зулица&Σя| Икся| + α2| | х- г| |2+ β2|| Az- б ||2A zзнак равно бх = г,
L ( x , z, λ , γ) =знак равноΣя| Икся| + α2| | х- г| |2+ β2| | Az- б | |2+ λT( Г- б ) + γT( Х - г)Σя| Икся| + α2| | х- г+ 1αγ| |2+ β2| | Az- б + 1βλ | |2+ α2| | 1αγ| |2+ β2| | 1βλ | |2,
Метод мультипликаторов с переменным направлением решает двойственную задачу,
посредством градиентного подъема по двойственным переменным, за исключением неточные чередующиеся проекции на двойственные подзадачи. То есть каждый выполняет итерацию
x k + 1
Максимумλ , γминх , зL ( x , z, λ , γ) ,
Икск + 1Zк + 1γк + 1λк + 1= Г г м я пИксL ( x , zК, λК, γК)= Г г м я пZL ( хк + 1, z, λК, γК)= γК+ α ( xк + 1- зк + 1)= λК+ β( Гк + 1- б ) .
При определенных мягких условиях для параметров и (объясненных в статье Бойда и Париха, связанной выше) метод ADMM будет сходиться к истинному решению. Скорость сходимости является линейной, так как в основе лежит метод градиентного всплытия. Часто он может быть ускорен до суперлинейности путем 1) изменения параметров и мере использования эвристики или 2) с использованием ускорения Нестерова. Примечания по изменению параметров штрафа см. В обзоре Бойда, а для использования ускорения Нестерова с ADMM - в следующей статье.β α βαβαβ
Гольдштейн, Том, Брендан О'Донохью и Саймон Сетцер. «Быстрые методы оптимизации переменных направлений». Отчет CAM (2012): 12-35. ftp://ftp.math.ucla.edu/pub/camreport/cam12-35.pdf
Однако, даже если общая скорость сходимости является только линейной, для задач наблюдался метод, позволяющий очень быстро найти образец разреженности, а затем медленнее сходиться к точным значениям. Поскольку найти образец разреженности - самая трудная часть, это очень случайно! Точные причины, по-видимому, являются областью современных исследований. Все видят, что шаблоны разреженности сходятся быстро, но никто, кажется, не знает точно, почему это происходит. Некоторое время назад я спросил об этом Бойда и Париха по электронной почте, и Парих подумал, что это можно объяснить интерпретацией метода в контексте систем управления. Другое эвристическое объяснение этого явления можно найти в приложении к следующей статье:L1
Гольдштейн, Том и Стэнли Ошер. «Метод расщепления Брегмана для L1-регуляризованных задач». SIAM Journal of Imaging Sciences 2.2 (2009): 323-343. ftp://ftp.math.ucla.edu/pub/camreport/cam08-29.pdf
Конечно, теперь трудность заключается в решении подзадач обновления и для вашей конкретной ситуации. Поскольку лагранжиан квадратичен по , подзадача обновления просто требует решения линейной системы. подзадача кажется сложнее , так как это недифференцируема, но оказывается, что есть точная формула для решения , которые могут быть применены поэлементно! Теперь мы обсудим эти подзадачи более подробно и укажем их на проблему в исходном посте.z z z xИксZZZИкс
Настройка для подзадачи update (линейная система)Z
Для обновления у нас есть
a r g m i n z L ( x k , z , λ k , γ k ) = a r g m i n z αZ
г г м я пZL ( хК, z, λК, γК) = Г г м я пZα2| | х- г+ 1αγ| |2+ β2| | Az- б + 1βλ | |2,
Специализируется на вашей проблеме:
г г м я пZJ, ZВα2| | Jк + 1- ZJ+ 1αΓJ| |2Fг о+ α2| | Вк + 1- ZВ+ 1αΓВ| |2Fг о+ β2| | MZJ+ ZВY- Х+ 1αΛ | |2Fг о,
где обозначает норму Фробениуса (поэлементно ). Это задача квадратичной минимизации, где условия оптимальности первого порядка можно найти, взяв частные производные цели по и и установив их в ноль. Это
л 2 Z J Z B 0| | ⋅ | | Fг оL2ZJZВ
00= - α2( Jк + 1- ZJ+ 1αΓJ) + β2MT( МZJ+ ZВY- Х+ 1βΛ ) ,= - α2( Бк + 1- ZВ+ 1αΓВ) + β2( МZJ+ ZВY- Х+ 1βΛ ) YT,
Как отмечается в комментариях оригинального автора Джастина Соломона, эта система для является симметричной, поэтому сопряженный градиент является идеальным методом без матрицы. В следующем разделе обсуждается эта система и как ее решить / подготовить более подробно.ZJ, ZВ
Решение подзадачи update (решение для аналитического порога)Икс
Теперь обратимся к подзадаче ,
a r g m i n x L ( x , z k , λ k , γ k ) = a r g m i n x ∑ i | х я | + αИкс
г г м я пИксL ( x , zК, λК, γК) = Г г м я пИксΣя| Икся| + α2| | х- гК+ 1αγК| |2
Первое, что нужно увидеть, это то, что сумма может быть разбита по элементам,
Σя| Икся| + α2| | х- гК+ 1αγК| |2= ∑я| Икся| + α2Σя( хя- зКя+ 1αγКя)2,
Таким образом, мы можем решить задачу оптимизации элемент за элементом параллельно, получив
Икск + 1я= Г г м я пИкся| Икся| + α2( хя- зКя+ 1αγКя)2,
Общая форма этого уравнения:
минs|s|+α2(s−t)2.
Функция абсолютного значения пытается потянуть оптимальную точку к , тогда как квадратичный член пытается потянуть оптимальную точку к . следовательно, истинное решение лежит где-то на отрезке между ними, причем увеличение стремится к вытягиванию оптимальной точки в направлении , а уменьшение вытягивает оптимальную точку в направлении .s = t [ 0 , t ) α t α 0s=0s=t[0,t)αtα0
Это выпуклая функция, но она не дифференцируема в нуле. Условием минимизации является то, что субпроизводное цели в этой точке содержит ноль. Квадратичный член имеет производную , а функция абсолютного значения имеет производную для , субпроизводную с множеством значений в качестве интервала при и производную для , Таким образом, мы получаем субпроизводную для общей целевой функции:
- 1 s < 0 [ - 1 , 1 ] s = 0 1 s > 0 ∂ s ( | s | + αα(s−t)−1s<0[−1,1]s=01s>0
∂s(|s|+α2(s−t)2)=⎧⎩⎨1+α(s−t)[−1,1]+αt,- 1 + α ( с - т ) ,с > 0s = 0 ,с < 0.
Отсюда видно, что субпроизводное цели при содержит тогда и только тогда, когда , в этом случае - это минимизатор. С другой стороны, если не является минимизатором, то мы можем установить однозначную производную равной нулю и решить для минимизатора. Делая это, вы
0 | т | ≤ 1с = 00 s=0s=0argmins| с| +α| т | ≤ 1αс = 0с = 0
г г м я пs| с | + α2( с - т )2= ⎧⎩⎨⎪⎪т - 1α,0 ,т + 1α,t > 1α,| т | ≤ 1α,т < - 1α
Снова специализируя этот результат на реальной проблеме, которую мы пытаемся решить в исходном вопросе, где приводит
Обновление для просто
J k + 1 i j ={ Z k i j - 1t = ZКя ж- 1αΓКя ж
Jк + 1я ж= ⎧⎩⎨⎪⎪⎪⎪ZКя ж- 1αΓКя ж- 1α,0 ,ZКя ж- 1αΓКя ж+ 1α,ZКя ж- 1αΓКя ж> 1α,| ZКя ж- 1αΓКя ж| ≤ 1α,ZКя ж- 1αΓКя ж< - 1α,
ВВк + 1= ZВ- 1αΓВ,
как отметил оригинальный постер Джастина Соломона в комментариях. В целом, выполнение обновления для просто требует циклического просмотра записей ваших матриц и оценки приведенных выше формул для каждой записи.J, Б
Щур дополнение к системыZJ, ZВ
Самым дорогостоящим шагом итерации является решение системы,
00= - α2( Jк + 1- ZJ+ 1αΓJ) + β2MT( МZJ+ ZВY- Х+ 1βΛ ) ,= - α2( Бк + 1- ZВ+ 1αΓВ) + β2( МZJ+ ZВY- Х+ 1βΛ ) YT,
Для этого стоит приложить некоторые усилия для создания хорошего решателя / предобусловливателя для этой системы. В этом разделе мы делаем это путем векторизации , формирования дополнения Шура , выполнения некоторых манипуляций с продуктом Крнёкера, а затем отмены векторизации. Полученная система дополнения Шура представляет собой слегка модифицированное уравнение Сильвестра .
В дальнейшем абсолютно идентичны следующие понятия о векторизации и продуктах Кронекера:
- V e C (ABC) = ( CT⊗ A ) v e c ( B ) ,
- ( A ⊗ B ) ( C⊗ D ) = A C⊗ B D ,
- ( A ⊗ B )- 1= A- 1⊗ B- 1 и
- ( A ⊗ B )T= AT⊗ BT .
Эти тождества сохраняются всякий раз, когда размеры матриц и обратимость таковы, что каждая сторона уравнения является допустимым выражением.
Векторизованная форма системы:
( α I+ β[ Я⊗ МTMY⊗ М( Y⊗ М)TYYT⊗ я] ) [ v e c ( Z)J)V e C ( ZВ)]= [ v e c ( α J+ βMTИкс+ ΓJ- МTΛ )v e c (αB+βИксYT+ ΓВ- Λ YT)] ,
или
[ Я⊗ ( α I+ βMTM)βY⊗ Мβ( Y⊗ М)T( α I+ βYYT) ⊗ я] [ v e c ( ZJ)V e C ( ZВ)] = [ v e c ( F)V e C (G)] ,
где и - сокращенные обозначения для правой части. Теперь мы выполняем блок-гауссово-исключение / дополнение Шура, чтобы исключить нижний левый блок матрицы в процессе конденсации продуктов Кронекера. Это
Fг
[ Я⊗ ( α I+ βMTM)0β( Y⊗ М)T( α I+ βYYT) ⊗ я- β2YYT⊗ М( α I+ βMTM)- 1MT] …⋅ [ v e c ( ZJ)V e C ( ZВ)] = [ v e c ( F)V e C (G)-βY⊗ М( α I+ βMTM)- 1V e C (F)] .
Невекторизовав, два уравнения, которые мы должны решить последовательно:
ZВ( α I+ βYYT) - ( βM( α I+ βMTM)- 1MT) ZВ( βYYT) …= G - βM( α I+ βMTM)- 1FYT
( α I+ βMTM) ZJ= F- βMTZВY,
Решение системы дополнения Шура, когда квадратные, высокого рангаY, M
В этом разделе мы решаем систему дополнения Шура для (уравнение 1. выше), используя предварительно вычисленные полные SVD матриц и применяя модифицированную версию алгоритма Бартельс-Стюарта для Сильвестра уравнение. Алгоритм немного изменен по сравнению со стандартной версией, чтобы учесть дополнительный на втором члене, что делает его не совсем уравнением Сильвестра. Как только найден с помощью первого уравнения, может быть легко найден из второго уравнения. Второе уравнение тривиально для решения любым способом, который вам нравится.ZВYYT, MMT, MTMβYYTZВZJ
Этот метод требует предоплаты за предварительное вычисление двух полных SVD до запуска процесса ADMM, но затем быстро применяется в реальных итерациях ADMM. Так как метод имеет дело с полными SVD матриц ограничений, он подходит, когда они близки к квадрату и высокому рангу. Также возможен более сложный метод с использованием SVD низкого ранга, но он будет представлен в следующем разделе.
Способ развивается следующим образом. Пусть
обозначает предварительно вычисленное полное сингулярное значение разложения, и конденсируется правая сторона , чтобы быть . Тогда первое уравнение становится:
Умножение с помощью ортогональных факторов для очистки левого и правого и установки нового временного неизвестного , это далее становится,
Q D QT= YYT,WΣ WT= МMT,ВTВT= МTM
ЧАСZВQ ( α I+ D ) QT- WβΣ ( α I+ Σ )- 1Σ WTZВQ D QT= H,
A = WTZВQA ( α I+ D ) - βΣ ( α I+ Σ )- 1Σ A D = WЧАСQT,
Теперь мы можем найти , решив диагональную систему:
A
( ( α I+ D ) ⊗ я+ D ⊗ βΣ ( α I+ Σ )- 1Σ ) v e c ( A ) = v e c ( W)ЧАСQT) .
Найдя , мы вычисляем , и, зная мы решаем второе уравнение выше для , которое является тривиальным, поскольку у нас уже есть разложение по собственным значениям для .AZВ= WA QTZВZJMTM
Первоначальная стоимость - это вычисление двух симметричных положительно определенных разложений по собственным значениям и , а затем в цене за одну итерацию для полного решения преобладает несколько умножений матрица-матрица, которые имеют тот же порядок Величина как делает 1 CG сублитерации. Если предварительные разложения по собственным значениям слишком дороги, то их можно вычислить неточно, например, досрочно завершив итерацию Ланцоша и сохранив самые большие собственные векторы. Тогда этот метод можно использовать в качестве хорошего предварительного условия для CG, а не в качестве прямого решателя.MTMYYT
Метод решения, когда очень прямоугольные или имеют приближение низкого рангаM, Y
Теперь мы наше внимание на решение или предварительную подготовку когда либо a) входные матрицы очень прямоугольные - это означает, что у них намного больше строк, чем столбцов, или наоборот - или b) они имеют приближение низкого ранга. Вывод ниже включает в себя широкое использование формулы Вудбери, дополнения Шура и других подобных манипуляций.ZJ, ZВM, Y
Мы начнем с нашей системы дополнения Шура,
( α I+ βYYT) ⊗ я- β2YYT⊗ М( α I+ βMTM)- 1MT,
Несколько манипуляций превращают эту систему в более симметричную форму
( α I+ βя⊗ МMT+ βYYT⊗ я) V e C ( ZВ) = ( Я⊗ ( я+ βαMMT) ) V e C ( H) .
Теперь введем приближения низкого ранга. Пусть
будет либо приведенным приближением SVD, либо приближением низкого ранга для и ( является заполнителем и не является используемый). Подстановка их в нашу систему приводит к следующей обратной матрице, которую мы хотим применить,
Q D1 / 2QT2= YWΣ1 / 2ВT= М
YMQ2( α I+ βя⊗ WΣ WT+ βYYT⊗ я)- 1,
Поскольку матрица, которую мы используем для инвертирования, является обновлением низкого ранга идентичности, логическая стратегия состоит в том, чтобы попытаться использовать формулу Вудбери,
( A + UСUT)- 1= A- 1- А- 1U( C- 1+ UTA- 1U)- 1UTA- 1,
Тем не менее, требуется некоторая осторожность, так как младшие куски и не являются ортогональными. Таким образом, чтобы применить формулу Вудбери, мы собираем оба обновления низкого ранга в одно большое обновление. Поступайте так и применяя формулу Вудбери,
я⊗ WY⊗ я
( 1αя+ β[ Я⊗ WQ ⊗ я] [ Я⊗ ЕД ⊗ У] [ Я⊗ ЕTQT⊗ я] )- 1= α I- βα2[ Я⊗ WQ ⊗ я] [ Я⊗ ( Σ- 1+ βαя)βαQT⊗ WβαQ ⊗ WT( D- 1+ βαя) ⊗ Y]- 1[ Я⊗ ЕTQT⊗ я] .
Обратное ядро может быть вычислено по блочной обратной формуле 2x2:
[ AВTВС]- 1= [ ( A - B C- 1ВT)- 1- С- 1ВT( A - B C- 1ВT)- 1- А- 1B ( C- БTA- 1Б )- 1( C- БTA- 1Б )- 1] .
Эта статья уже достаточно длинна, поэтому я позабочусь о длинных деталях вычислений, но в результате мы добавим необходимые подматрицы в блочную инверсию и умножим все на части, получая следующую явную форму для общей инверсии
( αI+βя⊗ МMT+βYYT⊗ я)- 1= 1αя- βα2( т11+ с11+ т12+ с12+ т21+ с21+ т22+ с22) ,
где
T11s11T12s12T21s21T22s22D11D22Lчас= αβя⊗ WL- 1WT= ( Q ⊗ WL- 1) D11( QT⊗ л- 1WT)= - αβQ ч- 1QT⊗ WL- 1WT= - ( Q ч- 1⊗ WL- 1) D22( ч- 1QT⊗ WT)= т12= - ( Q ч- 1⊗ W) D22( ч- 1QT⊗ л- 1WT)= αβQ ч- 1QT⊗ я= ( Q ч- 1⊗ W) D22( ч- 1QT⊗ WT)= αβ( ч ⊗ я- я⊗ л- 1)- 1= αβ( Я⊗ л - ч- 1⊗ я)- 1= αβΣ- 1+ Я= αβD- 1+ Я,
В этой форме мы можем применить обратное и найти термин по через 8 левых и правых сэндвичей умножения матриц. Общая формула для применения суммы произведений Кронекера:
ZВ
( ( А1⊗ B1) + ( A2⊗ B2) + … ) V e c ( C) = V e C ( BT1СA1+ ВT2СA2+ … ) .
Обратите внимание, что все явные инверсии, с которыми мы закончили, являются диагональными, так что нечего «решать».
Код линейного решателя
Я реализовал два решателя в Matlab. Кажется, работает хорошо. Код решателя здесь.ZJ, ZВ
https://github.com/NickAlger/MeshADMM/blob/master/zkronsolve.m
Тестовый скрипт для проверки работы решателей находится здесь. На примере также показано, как вызывать код решателя.
https://github.com/NickAlger/MeshADMM/blob/master/test_zkronsolve.m
Заключительные замечания
Методы ADMM-типа хорошо подходят для подобных задач, но вам нужно будет развернуть собственную реализацию. Общая структура метода довольно проста, поэтому его реализация не так сложна в чем-то вроде MATLAB.
Часть, отсутствующая в этом посте, которая должна быть указана для полного определения метода вашей проблемы, - это выбор параметров штрафа . К счастью, метод, как правило, довольно надежный, пока значения параметров не сумасшедшие. В статье Бойда и Париха есть раздел о параметрах штрафа, как и ссылки в нем, но я бы просто экспериментировал с параметрами, пока вы не получите разумную скорость сходимости.α , β
Представленные очень эффективны, если матрицы ограничений либо: а) плотные, квадратные и высокого ранга, либо б) имеют хорошее приближение низкого ранга. Другой полезный решатель , который может быть темой будущей работы будет решатель оптимизирован для следующего случая - ограничение матрица разрежена и squareish и высокого ранга, но существует хороший переобусловливатель для . Это имело бы место, если, например, является дискретным лапласианом.ZJ, ZВMα I+ МMTM