모든 최소화 문제에는 짝이 되는 최대화 문제가 있습니다. 이 짝을 쌍대 문제라 하고, 그 최댓값은 언제나 원래 최솟값의 하한이 됩니다. 볼록 문제에서는 둘이 정확히 같아서, 어려운 원래 문제 대신 쉬운 쌍대 문제를 풀 수 있습니다. SVM이 커널 함수로 무한 차원 특성을 다룰 수 있는 것, 최적 수송의 계산, 게임 이론의 미니맥스 정리가 모두 쌍대성 덕분입니다.
7.1 쌍대 함수
6장의 문제(원문제, primal problem)와 라그랑주 함수 L(x,λ,ν)에 대해
정의 7.1. 라그랑주 쌍대 함수(Lagrange dual function)는
d(λ,ν)=xinfL(x,λ,ν).
(inf는 하한 중 가장 큰 값으로, 최솟값이 있으면 최솟값과 같습니다.)
d는 (λ,ν)에 대한 일차함수들의 하한이므로, 원문제가 볼록이 아니어도 항상 오목합니다.
7.2 약한 쌍대성
정리 7.2 (약한 쌍대성). λ≥0이면 d(λ,ν)≤p∗입니다. 여기서 p∗는 원문제의 최솟값입니다.
증명. 실행 가능한 x~에서 gi(x~)≤0, λi≥0, hj(x~)=0이므로 L(x~,λ,ν)≤f(x~). 그러므로 d≤L(x~,⋅)≤f(x~)이고, 모든 실행 가능한 x~에 대해 성립하므로 d≤p∗. □
가장 좋은 하한을 찾는 문제
λ≥0,νmaxd(λ,ν)=d∗
를 쌍대 문제(dual problem)라 합니다. 언제나 d∗≤p∗이고, 차이 p∗−d∗를 쌍대 간격(duality gap)이라 합니다.
쓸모. 어떤 실행 가능한 x와 쌍대 실행 가능한 λ를 갖고 있으면 f(x)−d(λ)가 현재 해의 최적성 간격의 상한입니다. 알고리즘의 멈춤 조건으로 씁니다.
7.3 강한 쌍대성
정리 7.3 (슬레이터 조건). 원문제가 볼록이고, 모든 부등식 제약을 엄격하게 만족하는 점(gi(x)<0)이 하나라도 있으면 d∗=p∗(강한 쌍대성)입니다.
강한 쌍대성이 성립하면 원문제의 해 x∗와 쌍대 문제의 해 (λ∗,ν∗)는 정확히 KKT 조건을 만족하는 짝입니다. 그래서 쌍대 문제를 풀고 KKT 정상성으로 x∗를 되찾을 수 있습니다.
예제 7.4. minx2 s.t. x≥1, 곧 g(x)=1−x≤0. p∗=1.
- L=x2+λ(1−x)를 x로 최소화: x=λ/2, d(λ)=λ−λ2/4.
- maxλ≥0d(λ): λ∗=2, d∗=1=p∗. 강한 쌍대성.
- 되찾기: x∗=λ∗/2=1.
7.4 최소 노름 문제
예제 7.5. min21∥x∥2 s.t. Ax=b(방정식이 미지수보다 적은 경우, 해가 무수히 많을 때 가장 짧은 해).
- L=21∥x∥2+ν⊤(Ax−b), ∇xL=x+A⊤ν=0에서 x=−A⊤ν.
- d(ν)=−21ν⊤AA⊤ν−b⊤ν, 최대화하면 ν∗=−(AA⊤)−1b.
- x∗=A⊤(AA⊤)−1b. 선형대수의 유사역행렬 해입니다.
7.5 SVM과 커널
선형 분리 가능한 데이터 (xi,yi), yi∈{±1}에 대해, 두 클래스 사이 여백(margin)이 가장 큰 초평면을 찾는 서포트 벡터 머신(SVM)은
w,bmin21∥w∥2s.t.yi(w⊤xi+b)≥1.
(여백의 폭이 2/∥w∥이므로 ∥w∥를 최소로 합니다.) 쌍대 문제는
α≥0maxi∑αi−21i,j∑αiαjyiyjxi⊤xjs.t.i∑αiyi=0,
이고 w∗=∑iαi∗yixi입니다.
두 가지가 중요합니다.
- 서포트 벡터. 상보 여유성에 따라 여백 경계에 있지 않은 점은 αi=0입니다. 해는 경계 위의 몇 점(서포트 벡터)만으로 정해집니다.
- 커널 기법. 쌍대 문제에는 데이터가 내적 xi⊤xj로만 나옵니다. 이것을 k(xi,xj)=ϕ(xi)⊤ϕ(xj)로 바꾸면, 특성 변환 ϕ를 계산하지 않고도 고차원(가우스 커널이면 무한 차원) 공간에서 선형 분리를 하는 것과 같습니다.
7.6 이 장의 요약
- 쌍대 함수 d=infxL은 항상 오목. 약한 쌍대성 d∗≤p∗.
- 볼록 + 슬레이터 조건이면 강한 쌍대성 d∗=p∗, 해의 짝은 KKT 조건.
- 최소 노름 해 A⊤(AA⊤)−1b. SVM의 쌍대 문제 → 서포트 벡터와 커널.
쓰이는 곳. SVM과 커널 방법, 가우시안 과정, 최적 수송과 바서슈타인 거리(WGAN의 판별자는 쌍대 문제의 해), 강화학습의 제약 정책 최적화(라그랑주 승수를 학습), 분산 최적화(ADMM), 게임 이론의 미니맥스 정리와 GAN, 전력망 운영의 가격 결정(쌍대 변수 = 전기 가격)이 쌍대성을 씁니다.
문제
7.1 [계산] · 확인 문제
minx2 s.t. x≥3의 쌍대 문제를 풉니다.
| 값 |
답 |
| λ∗ |
[?] |
| d∗ |
[?] |
정답
풀이
L=x2+λ(3−x), x=λ/2에서 d(λ)=3λ−λ2/4. 최댓값은 λ=6에서 d∗=18−9=9=p∗입니다.
7.2 [계산] · 확인 문제
위 문제에서 λ=2일 때의 쌍대 함숫값(최솟값의 하한)은?
정답
풀이
d(2)=6−1=5≤9입니다. 약한 쌍대성대로 하한입니다.
7.3 [계산] · 확인 문제
min21(x2+y2) s.t. x+y=2의 최소 노름 해를 A⊤(AA⊤)−1b로 구합니다.
정답
풀이
A=(1 1), AA⊤=2이므로 x∗=(1,1)⊤⋅2/2=(1,1)입니다.
7.4 [계산] · 확인 문제
SVM에서 w∗=(3,4)이면 여백의 폭 2/∥w∥은?
정답
풀이
∥w∥=5이므로 2/5=0.4입니다.
7.5 [증명]
쌍대 함수 d(λ,ν)가 항상 오목함수임을 보입니다.
풀이
각 x를 고정하면 L(x,λ,ν)는 (λ,ν)의 일차함수(따라서 오목)입니다. 오목함수들의 하한(최솟값)은 오목입니다. 이는 1장 문제 1.5(볼록함수들의 최댓값은 볼록)에서 부호를 바꾼 것입니다.