개요
올가미 유형 문제에 대해 놀랍게도 빠르게 수렴되는 것으로 알려진 ADMM ( Alternating Directions Method of Multipliers ) 의 변형을 시도 할 수 있습니다 . 전략은 확대 된 라그랑지안으로 문제를 공식화 한 다음 이중 문제에 대해 기울기를 상승시키는 것입니다. 이 특정 정규화 문제에 특히 유용 합니다. 방법의 각 반복에서 매끄러운 부분은 요소별로 간단히 평가할 수있는 정확한 솔루션을 가지고 있으며 매끄러운 부분은 선형 시스템을 해결하는 것과 관련이 있기 때문입니다.l 1l1l1
이 게시물에서 우리는
- 문제의 일반화를 위해 전체 ADMM 공식을 도출합니다.
- 각 ADMM 반복에 대한 하위 문제를 도출하고 상황에 맞게 특수화 한 다음
- 각 반복을 해결해야하는 결과 선형 시스템을 조사하고 및 대한 고유 값 분해 (또는 그 하위 순위 근사)를 사전 계산하여 빠른 솔버 (또는 전제 조건)를 개발합니다 .Y Y 티MTMYYT
- 몇 가지 결론으로 요약
여기서 가장 큰 아이디어는 다음과 같은 훌륭한 검토 논문에서 다룹니다.
보이드, 스티븐 등 "승수의 교대 방향 방법을 통한 분산 최적화 및 통계 학습." 머신 러닝 3.1 (2011)의 기초 및 동향 : 1-122. http://www.stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf
세부 사항으로 들어가기 전에 이것은 실제 코드 응답이 아닌 메소드 / 알고리즘 응답이라는 점에 유의하고 싶습니다.이 메소드를 사용하려면 자체 구현을 롤링해야합니다.
ADMM 제제
일반적으로
minxs.t.∑i|xi|Ax=b.
적절한 벡터화 후에 원래 게시물의 문제가이 범주에 속합니다. (이것은 원칙적으로 만-우리는 벡터화가 실제로 수행 될 필요가 없음을 알 수 있습니다)
대신
라그랑지안
L(x,z,λ,γ)=
minx,zs.t.&∑i|xi|+α2||x−z||2+β2||Az−b||2Az=bx=z,
L(x,z,λ,γ)==∑i|xi|+α2||x−z||2+β2||Az−b||2+λT(Az−b)+γT(x−z)∑i|xi|+α2||x−z+1αγ||2+β2||Az−b+1βλ||2+α2||1αγ||2+β2||1βλ||2.
승수의 교대 방향 방법은 다음을
제외한 이중 변수의 기울기 상승을 통해 이중 문제
를 해결합니다. 이중 하위 문제에 대한 부정확 한 교호 예측. 즉,
x k + 1
maxλ,γminx,zL(x,z,λ,γ),
xk+1zk+1γk+1λk+1=argminxL(x,zk,λk,γk)=argminzL(xk+1,z,λk,γk)=γk+α(xk+1−zk+1)=λk+β(Azk+1−b).
매개 변수 및 (위의 Boyd & Parikh 논문에서 설명)에 대한 특정 온화한 조건에서 ADMM 방법은 실제 솔루션으로 수렴됩니다. 수렴 속도는 코어에서 기울기 상승 방법이므로 선형입니다. 휴리스틱에 따라 1) 매개 변수 및 를 변경 하거나 2) Nesterov 가속을 사용하여 초 선형으로 가속되는 경우가 종종 있습니다 . 페널티 매개 변수 변경에 대한 정보는 Boyd 설문지를 참조하고 ADMM과 함께 Nesterov 가속을 사용하려면 다음 논문을 참조하십시오.β α βαβαβ
Goldstein, Tom, Brendan O'Donoghue 및 Simon Setzer. "빠른 교대 방향 최적화 방법." CAM 보고서 (2012) : 12-35. ftp://ftp.math.ucla.edu/pub/camreport/cam12-35.pdf
그러나 전체 수렴 률이 선형 일지라도 문제의 경우이 방법은 희소성 패턴을 매우 빠르게 찾은 다음 정확한 값에서 더 느리게 수렴하는 것으로 관찰되었습니다. 희소성 패턴을 찾는 것이 가장 어려운 부분이므로 매우 유감입니다! 왜 현재 연구의 영역 인 것 같은 정확한 이유. 희소성 패턴이 빠르게 수렴되는 것을 누구나 볼 수 있지만, 왜 그런 일이 발생하는지 정확히 아는 사람은 없습니다. 얼마 전 저는 Boyd와 Parikh에게 이메일을 통해 이것에 대해 물었고 Parikh는 그것이 제어 시스템 컨텍스트에서 방법을 해석함으로써 설명 될 것이라고 생각했습니다. 이 현상에 대한 또 다른 경험적 설명은 다음 백서의 부록에서 찾을 수 있습니다.엘1
골드 스타 인, 톰, 스탠리 오셔 "L1 정규화 문제에 대한 Split Bregman 방법." 영상 과학에 관한 SIAM 저널 2.2 (2009) : 323-343. ftp://ftp.math.ucla.edu/pub/camreport/cam08-29.pdf
물론 특정 상황 에서 및 업데이트 하위 문제를 해결하는 데 어려움이 있습니다 . 라그랑지안은 에서 2 차이므로 업데이트 하위 문제는 단순히 선형 시스템을 풀기 만하면됩니다. 이 nondifferentiable 때문에 하위 문제는 어려워 보이지만 요소에 의해 적용 요소가 될 수있는 솔루션에 대한 정확한 공식이 있음을 밝혀! 이제 이러한 하위 문제에 대해 자세히 설명하고 원래 게시물의 문제를 구체적으로 설명합니다.z z z x엑스지지지엑스
설치 프로그램 업데이트 하위 문제 (선형 시스템)지
들어 업데이트, 우리가
a r g m i n z L ( x k , z , λ k , γ k ) = a r g m i n z α지
a r g m i n지L ( ×케이, z, λ케이, γ케이) = a r g m i n지α2| | x-z+ 1αγ| |2+ β2| | Z− b + 1βλ | |2.
귀하의 문제에 전문화되면
a r g m i n지제이, Z비α2| | 제이k + 1− Z제이+ 1αΓ제이| |2에프r o+ α2| | 비k + 1− Z비+ 1αΓ비| |2에프r o+ β2| | 미디엄지제이+ Z비와이− X+ 1αΛ | |2에프r o,
여기서 는 Frobenius (요소 ) 규범을 나타냅니다 . 이는 2 차 최소화 문제로, 및 대한 목적의 부분 미분을 0으로 설정 하여 1 차 최적 조건을 찾을 수 있습니다 . 이있다
l 2 Z J Z B 0| | ⋅ | | 에프r o엘2지제이지비
00= − α2( Jk + 1− Z제이+ 1αΓ제이) + β2미디엄티( M지제이+ Z비와이− X+ 1βΛ ) ,= − α2( Bk + 1− Z비+ 1αΓ비) + β2( M지제이+ Z비와이− X+ 1βΛ)YT.
원래 포스터 저스틴 솔로몬 (Justin Solomon)의 의견에서 언급했듯이 대한이 시스템 은 대칭이므로 켤레 그래디언트는 이상적인 매트릭스없는 방법입니다. 다음 섹션에서는이 시스템과이 시스템을보다 자세하게 해결 / 사전 설정하는 방법에 대해 설명합니다.ZJ,ZB
업데이트 하위 문제 해결 (분석 임계 값 솔루션)x
이제 하위
a r g m i n x L ( x , z k , λ k , γ k ) = a r g m i n x ∑ i | x 나 | + αx
argminxL(x,zk,λk,γk)=argminx∑i|xi|+α2||x−zk+1αγk||2
가장 먼저 확인해야 할 것은 요소별로 합이
∑i|xi|+α2||x−zk+1αγk||2=∑i|xi|+α2∑i(xi−zki+1αγki)2,
따라서 요소별로 최적화 문제를 병렬로 해결하여
xk+1i=argminxi|xi|+α2(xi−zki+1αγki)2.
이 방정식의 일반적인 형태는
mins|s|+α2(s−t)2.
절대 값 함수는 최적의 점을 쪽으로 당기려고 하지만 2 차 항은 최적의 점을 쪽으로 당기려고합니다 . 따라서 진정한 해결책 은 둘 사이 의 세그먼트 어딘가에 있으며, 를 늘리면 최적의 점이 쪽으로 향하는 경향이 있고 를 줄이면 최적의 점이 쪽으로 향하게 됩니다.s = t [ 0 , t ) α t α 0s=0s=t[0,t)αtα0
이것은 볼록한 기능이지만 0에서는 구별 할 수 없습니다. 최소화 지점의 조건은 해당 지점에서 목표의 하위 파생이 0을 포함한다는 것입니다. 이차 용어 유도체 갖는다 , 상기 절대 값 함수는 유도체 갖는다 대 , 세트 값 subderivative를 간격으로 때 , 및 유도체 대 . 따라서 전체 목적 함수
- 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 + α ( S - t ) ,s > 0s = 0 ,s < 0.
이로부터 우리의 목표의 subderivative 볼 포함 경우에만, .이 경우 은 최소화 기입니다. 다른 한편으로, 이 최소값이 아닌 경우 단일 값 미분 값을 0으로 설정하고 최소값을 풀 수 있습니다. 이렇게하면
0 | t | ≤ 1s = 00 s=0s=0argmins| s| +α| t | ≤ 1αs = 0s = 0
a r g m i n에스| s | + α2( s − t )2= ⎧⎩⎨⎪⎪t - 1α,0 ,t + 1α,t > 1α,| t | ≤ 1α,t < - 1α
yields,
의 원래 질문에서이 결과를 다시 전문화하려고합니다.
의 업데이트 는 간단히
J k + 1 i j ={ Z k i j − 1t = Z케이나는 j− 1αΓ케이나는 jBBk+1=ZB−1
제이k + 1나는 j= ⎧⎩⎨⎪⎪⎪⎪지케이나는 j− 1αΓ케이나는 j− 1α,0 ,지케이나는 j− 1αΓ케이나는 j+ 1α,지케이나는 j− 1αΓ케이나는 j> 1α,| 지케이나는 j− 1αΓ케이나는 j| ≤ 1α,지케이나는 j− 1αΓ케이나는 j< − 1α.
비비k + 1= Z비− 1αΓ비,
주석에서 원래 포스터 저스틴 솔로몬 (Justin Solomon)이 언급 한 바와 같이. 전반적으로 대한 업데이트를 수행 하려면 행렬 항목을 반복하고 각 항목에 대해 위의 수식을 평가하면됩니다.제이, B
시스템을 위한 Schur 보완지제이, Z비
가장 비용이 많이 드는 반복 단계는
00= − α2( Jk + 1− Z제이+ 1αΓ제이) + β2미디엄티( M지제이+ Z비와이− X+ 1βΛ ) ,= − α2( Bk + 1− Z비+ 1αΓ비) + β2( M지제이+ Z비와이− X+ 1βΛ ) Y티.
이를 위해이 시스템을위한 좋은 솔버 / 전제 조건을 구성하는 것은 약간의 노력이 필요합니다. 이 섹션에서는 벡터화 , Schur 보완 구성 , Krnoecker 제품 조작 및 벡터화 해제를 수행합니다. 결과 Schur 보완 시스템은 약간 수정 된 Sylvester 방정식 입니다.
다음은 벡터화 및 Kronecker 제품에 대한 다음 ID가 절대적으로 중요합니다.
- v e c (ABC) = ( C티⊗ A ) v e c ( B ) ,
- ( A ⊗ B ) ( C⊗ D ) = A C⊗ B D ,
- ( A ⊗ B )− 1= A− 1⊗ B− 1 및
- ( A ⊗ B )티= A티⊗ B티 입니다.
이 항들은 행렬의 크기와 가역성이 방정식의 각 변이 유효한 표현이 될 때마다 유지됩니다.
시스템의 벡터화 된 형태는
( α I+ β[ 나⊗ 남티미디엄와이⊗ 남( Y⊗ 남)티와이와이티⊗ 나] ) [ v e c ( Z제이)v e c ( Z비)]= [ v e c ( α J+ β미디엄티엑스+ Γ제이− M티Λ )v e c (αB+β엑스와이티+ Γ비− Λ Y티)] ,
또는
[ 나⊗ ( α I+ β미디엄티미디엄)β와이⊗ 남β( Y⊗ 남)티( α I+ β와이와이티) ⊗ 나] [ v e c ( Z제이)v e c ( Z비)] = [ v e c ( F)v e c (G)] ,
여기서 와 는 오른쪽에 대한 압축 표기법입니다. 이제 Kronecker 제품을 응축하는 과정에서 행렬의 왼쪽 아래 블록을 제거하기 위해 블록 가우시안 제거 / 스키어 보완을 수행합니다. 이것은
에프지
[ 나⊗ ( α I+ β미디엄티미디엄)0β( Y⊗ 남)티( α I+ β와이와이티) ⊗ 나−β2와이와이티⊗남( α I+β미디엄티미디엄)− 1미디엄티] …⋅ [ v e c ( Z제이)v e c ( Z비)] = [ v e c ( F)v e c (G) - β와이⊗남( αI+ β미디엄티미디엄)− 1v e c ( F)] .
벡터화하지 않고 순서대로 풀어야하는 두 방정식은
지비( αI+β와이와이티) − ( β미디엄( αI+ β미디엄티미디엄)− 1미디엄티) Z비( β와이와이티) …= G − β미디엄( α I+ β미디엄티미디엄)− 1에프와이티
( α I+ β미디엄티미디엄) Z제이= F− β미디엄티지비와이.
이 정사각형 일 때 Schur 보완 시스템의 솔루션와이, M
이 섹션에서는 사전 계산 된 전체 SVD의 행렬 을 사용하고 Sylvester에 대해 수정 된 버전의 Bartels-Stewart 알고리즘을 적용하여 대한 Schur 보완 시스템 (위의 방정식 1)을 해결합니다 . 방정식. 알고리즘은 표준 버전에서 약간 수정되어 두 번째 용어 에서 추가 를 설명하므로 실베스터 방정식이 아닙니다. 일단 제 방정식을 통해 발견된다 쉽게 초 식으로부터 찾을 수있다. 두 번째 방정식은 당신이 좋아하는 방법을 통해 풀기가 쉽지 않습니다.지비와이와이티, M미디엄티, M티미디엄β와이와이티지비지제이
이 방법을 사용하려면 ADMM 프로세스가 시작되기 전에 두 개의 전체 SVD를 사전 계산하는 데 초기 비용이 필요하지만 실제 ADMM 반복에 빠르게 적용 할 수 있습니다. 이 방법은 제약 행렬의 전체 SVD를 처리하므로 정사각형 및 상위 등급에 가까울 때 적합합니다. 하위 등급 SVD를 사용하는보다 복잡한 방법도 가능하지만 이후 섹션에서 설명합니다.
이 방법은 다음과 같이 개발됩니다. 하자
나타내고 미리 계산 된 전체 특이 값 분해 한 것으로 우측 응축 . 이어서 제 방정식된다
배가 직교 요인에 의해 좌우 및 설정 새 임시 미지의 지울 , 이것은 또한해진다
Q D Q티= Y와이티,여Σ W티= M미디엄티,V티V티= M티미디엄
H지비Q ( α I+ D ) Q티− WβΣ ( α I+ Σ )− 1Σ W티지비Q D Q티= H.
A = W티지비큐( α I+ D ) - βΣ ( α I+ Σ )− 1Σ A D = WH큐티.
이제 대각선 시스템
를 풀면 를 찾을 수 있습니다.ㅏ
( ( α I+ D ) ⊗ I+ D ⊗ βΣ ( α I+ Σ )− 1Σ ) v e c ( A ) = v e c ( WH큐티) .
를 찾은 후 계산하고 알면 대한 위의 두 번째 방정식을 , 이미 대한 고유 값 분해가 있으므로 사소 합니다.ㅏ지비= WQ티지비지제이미디엄티미디엄
선행 비용은 과 두 개의 대칭 양의 고유 고유 값 분해를 계산하는 것입니다. 완전한 해결을위한 반복 당 비용은 소수의 행렬-행렬 곱셈에 의해 좌우됩니다. 1 CG subiteration을 수행하는 정도. 선행 고유 값 분해가 너무 비싸면 예를 들어 Lanczos 반복을 조기에 종료 하고 최대 고유 벡터를 유지 함으로써 부정확하게 계산할 수 있습니다 . 그런 다음이 방법을 직접 솔버가 아닌 CG를위한 훌륭한 전제 조건으로 사용할 수 있습니다.미디엄티미디엄와이와이티
가 매우 직사각형이거나 낮은 순위 근사값을 갖는 경우의 해법미디엄, Y
이제 a) 입력 행렬 가 매우 직사각형 때 를 해결하거나 사전 조정하는 데주의를 기울입니다. 열보다 많은 행이 있거나 그 반대의 경우도 있습니다. 또는 b) 낮은 순위 근사치입니다. 아래 도출에는 Woodbury 공식, Schur 보완 및 기타 유사한 조작이 광범위하게 사용됩니다.지제이, Z비미디엄, Y
우리는 Schur 보완 시스템으로 시작합니다.
( αI+β와이와이티) ⊗나− β2와이와이티⊗남( αI+ β미디엄티미디엄)− 1미디엄티.
몇 가지 조작으로이 시스템을보다 대칭적인 형태로 변환 할 수 있습니다
( αI+β나는⊗ 남미디엄티+β와이와이티⊗나) v e c ( Z비) = ( 난⊗ ( 나는+ βα미디엄미디엄티) ) v e c ( H) .
이제 우리는 낮은 순위 근사치를 가져옵니다. 하자
될 하나의 SVD의 감소 또는 낮은 순위 근사치 와 ( 플레이스 홀더이고 아니다 익숙한). 이것을 시스템에 대입하면 다음과 같은 역행렬이 적용됩니다
Q D1 / 2큐티2= Y여Σ1 / 2V티= M
와이미디엄큐2( α I+ β나는⊗ 승Σ W티+ β와이와이티⊗ 나)− 1.
우리가 뒤집을 행렬은 항등에 대한 업데이트가 낮기 때문에 논리적 전략은 Woodbury 공식을 사용하는 것입니다.
( A + U씨유티)− 1=A−1− A−1유( C−1+ U티ㅏ−1유)− 1유티ㅏ− 1.
그러나 일부 관리는 낮은 순위 조각 때문에 필요한 및 직교하지 않습니다. 따라서 Woodbury 공식을 적용하기 위해 낮은 순위의 업데이트를 하나의 큰 업데이트로 수집합니다. 그렇게하고 Woodbury 공식을 적용하면
나는⊗ 승와이⊗ 나
( 1α나는+β[나⊗ 승Q ⊗ I] [ 나는⊗ ΣD ⊗ Y] [ 나는⊗ Σ티큐티⊗ 나] )− 1= α I− βα2[나⊗ 승Q ⊗ I] [ 나는⊗ ( Σ− 1+ βα나는)βα큐티⊗ 승βαQ ⊗ W티( D− 1+ βα나는) ⊗ Y]− 1[ 나⊗ Σ티큐티⊗ 나] .
코어 역은 블록 단위 2x2 역 공식
[ A비티비씨]− 1= [ ( A - B C− 1비티)− 1− C− 1비티( A - B C− 1비티)− 1− A−1B ( C− B티ㅏ−1비)− 1( C− B티ㅏ− 1B )− 1] .
이 게시물은 이미 충분히 길어서 계산에 대한 긴 세부 정보를 아끼지 만 최종 결과는 필요한 하위 행렬을 블록 단위의 역으로 연결하고 모든 것을 곱하여 전체 역에 대해 다음과 같은 명시 적 형식을 얻는 것입니다
( α I+β나는⊗ 남미디엄티+β와이와이티⊗ 나)− 1= 1α나는− βα2( t11+ s11+ t12+ s12+ t21+ s21+ t22+ s22) ,
여기서
티11에스11티12에스12티21에스21티22에스22디11디22엘h= αβ나는⊗ 승엘− 1여티= ( Q ⊗ W엘− 1) D11( Q티⊗ l− 1여티)= − αβQ 시간− 1큐티⊗ 승엘− 1여티= - ( Q 시간− 1⊗ 승엘− 1) D22( 시간− 1큐티⊗ 승티)= t12= - ( Q 시간− 1⊗ 승) D22( 시간− 1큐티⊗ l− 1여티)= αβQ 시간− 1큐티⊗ 나= ( Q h− 1⊗ 승) D22( 시간− 1큐티⊗ 승티)= αβ( h ⊗ I− 나⊗ l− 1)− 1= αβ( 난⊗ l - h− 1⊗ 나)− 1= αβΣ− 1+ 나= αβ디− 1+ 나.
이 형식에서는 8 개의 왼쪽 및 오른쪽 행렬 곱셈 샌드위치를 통해 역수를 적용하고 항을 항별로 찾을 수 있습니다 . 크로네 커 제품의 합계를 적용하는 일반적인 공식은
지비
( ( A1⊗ B1) + ( A2⊗ B2) + … ) v e c ( C) = v e c ( B티1씨ㅏ1+ B티2씨ㅏ2+ … ) .
우리가 끝내는 모든 명시 적 역수는 대각선이므로 "해결"할 것은 없습니다.
선형 솔버 코드
위의 두 가지 솔버를 Matlab에 구현했습니다 . 잘 작동하는 것 같습니다. 솔버 코드가 여기 있습니다.지제이, Z비
https://github.com/NickAlger/MeshADMM/blob/master/zkronsolve.m
솔버가 작동하는지 확인하기위한 테스트 스크립트가 여기 있습니다. 또한 솔버 코드를 호출하는 방법을 예제로 보여줍니다.
https://github.com/NickAlger/MeshADMM/blob/master/test_zkronsolve.m
끝 맺는 말
ADMM 유형의 메소드는 이와 같은 문제점에 적합하지만 자체 구현을 롤링해야합니다. 메소드의 전체 구조는 매우 단순하므로 MATLAB과 같은 구현에서는 그리 어렵지 않습니다.
이 게시물에서 누락 된 부분은 문제의 방법을 완전히 정의하기 위해 지정 해야하는 페널티 매개 변수 중에서 선택하는 것입니다 . 운 좋게도이 매개 변수는 미치광이가 아니라면 일반적으로 매우 강력합니다. Boyd and Parikh 논문은 참고 문헌과 마찬가지로 페널티 매개 변수에 대한 섹션을 제공하지만 합리적인 수렴 률을 얻을 때까지 매개 변수를 실험 해 보겠습니다.α , β
제시된 솔버 전략은 구속 조건 행렬이 a) 밀도, 제곱 및 높은 순위이거나 b) 낮은 순위 근사값을 갖는 경우 매우 효과적입니다. 향후 작업의 주제가 될 수있는 또 다른 유용한 솔버는 다음과 같은 경우에 최적화 된 솔버가 될 것입니다. 구속 조건 행렬 은 희소하고 제곱이며 높은 순위이지만 대한 좋은 전제 조건이 있습니다 . 예를 들어 이 이산화 된 라플라시안 인 경우에 해당합니다.지제이, Z비미디엄α I+ M미디엄티미디엄