Linearism › 최적화 › OP.7

7장. 쌍대성

최적화 · 3부. 제약이 있는 최적화

고급 · 약 15분 · 연습문제 5

요약

라그랑주 쌍대 함수, 약한 쌍대성과 쌍대 간격, 강한 쌍대성과 슬레이터 조건, 쌍대 문제 풀이, SVM의 쌍대 문제와 커널

모든 최소화 문제에는 짝이 되는 최대화 문제가 있습니다. 이 짝을 쌍대 문제라 하고, 그 최댓값은 언제나 원래 최솟값의 하한이 됩니다. 볼록 문제에서는 둘이 정확히 같아서, 어려운 원래 문제 대신 쉬운 쌍대 문제를 풀 수 있습니다. SVM이 커널 함수로 무한 차원 특성을 다룰 수 있는 것, 최적 수송의 계산, 게임 이론의 미니맥스 정리가 모두 쌍대성 덕분입니다.

7.1 쌍대 함수

6장의 문제(원문제, primal problem)와 라그랑주 함수 L(x,λ,ν)\mathcal L(\mathbf x, \boldsymbol\lambda, \boldsymbol\nu)에 대해

정의 7.1. 라그랑주 쌍대 함수(Lagrange dual function)는

d(λ,ν)=inf⁡xL(x,λ,ν).d(\boldsymbol\lambda, \boldsymbol\nu) = \inf_{\mathbf x}\mathcal L(\mathbf x, \boldsymbol\lambda, \boldsymbol\nu).

(inf⁡\inf는 하한 중 가장 큰 값으로, 최솟값이 있으면 최솟값과 같습니다.)

dd는 (λ,ν)(\boldsymbol\lambda, \boldsymbol\nu)에 대한 일차함수들의 하한이므로, 원문제가 볼록이 아니어도 항상 오목합니다.

7.2 약한 쌍대성

정리 7.2 (약한 쌍대성). λ≥0\boldsymbol\lambda \ge \mathbf 0이면 d(λ,ν)≤p∗d(\boldsymbol\lambda, \boldsymbol\nu) \le p^*입니다. 여기서 p∗p^*는 원문제의 최솟값입니다.

증명. 실행 가능한 x~\tilde{\mathbf x}에서 gi(x~)≤0g_i(\tilde{\mathbf x}) \le 0, λi≥0\lambda_i \ge 0, hj(x~)=0h_j(\tilde{\mathbf x}) = 0이므로 L(x~,λ,ν)≤f(x~)\mathcal L(\tilde{\mathbf x}, \boldsymbol\lambda, \boldsymbol\nu) \le f(\tilde{\mathbf x}). 그러므로 d≤L(x~,⋅)≤f(x~)d \le \mathcal L(\tilde{\mathbf x}, \cdot) \le f(\tilde{\mathbf x})이고, 모든 실행 가능한 x~\tilde{\mathbf x}에 대해 성립하므로 d≤p∗d \le p^*. □

가장 좋은 하한을 찾는 문제

max⁡λ≥0, νd(λ,ν)=d∗\max_{\boldsymbol\lambda \ge \mathbf 0,\,\boldsymbol\nu}d(\boldsymbol\lambda, \boldsymbol\nu) = d^*

를 쌍대 문제(dual problem)라 합니다. 언제나 d∗≤p∗d^* \le p^*이고, 차이 p∗−d∗p^* - d^*를 쌍대 간격(duality gap)이라 합니다.

쓸모. 어떤 실행 가능한 x\mathbf x와 쌍대 실행 가능한 λ\boldsymbol\lambda를 갖고 있으면 f(x)−d(λ)f(\mathbf x) - d(\boldsymbol\lambda)가 현재 해의 최적성 간격의 상한입니다. 알고리즘의 멈춤 조건으로 씁니다.

7.3 강한 쌍대성

정리 7.3 (슬레이터 조건). 원문제가 볼록이고, 모든 부등식 제약을 엄격하게 만족하는 점(gi(x)<0g_i(\mathbf x) < 0)이 하나라도 있으면 d∗=p∗d^* = p^*(강한 쌍대성)입니다.

강한 쌍대성이 성립하면 원문제의 해 x∗\mathbf x^*와 쌍대 문제의 해 (λ∗,ν∗)(\boldsymbol\lambda^*, \boldsymbol\nu^*)는 정확히 KKT 조건을 만족하는 짝입니다. 그래서 쌍대 문제를 풀고 KKT 정상성으로 x∗\mathbf x^*를 되찾을 수 있습니다.

예제 7.4. min⁡x2\min x^2 s.t. x≥1x \ge 1, 곧 g(x)=1−x≤0g(x) = 1 - x \le 0. p∗=1p^* = 1.

  • L=x2+λ(1−x)\mathcal L = x^2 + \lambda(1 - x)를 xx로 최소화: x=λ/2x = \lambda/2, d(λ)=λ−λ2/4d(\lambda) = \lambda - \lambda^2/4.
  • max⁡λ≥0d(λ)\max_{\lambda \ge 0}d(\lambda): λ∗=2\lambda^* = 2, d∗=1=p∗d^* = 1 = p^*. 강한 쌍대성.
  • 되찾기: x∗=λ∗/2=1x^* = \lambda^*/2 = 1.

7.4 최소 노름 문제

예제 7.5. min⁡12∥x∥2\min\frac12\|\mathbf x\|^2 s.t. Ax=bA\mathbf x = \mathbf b(방정식이 미지수보다 적은 경우, 해가 무수히 많을 때 가장 짧은 해).

  • L=12∥x∥2+ν⊤(Ax−b)\mathcal L = \frac12\|\mathbf x\|^2 + \boldsymbol\nu^\top(A\mathbf x - \mathbf b), ∇xL=x+A⊤ν=0\nabla_{\mathbf x}\mathcal L = \mathbf x + A^\top\boldsymbol\nu = \mathbf 0에서 x=−A⊤ν\mathbf x = -A^\top\boldsymbol\nu.
  • d(ν)=−12ν⊤AA⊤ν−b⊤νd(\boldsymbol\nu) = -\frac12\boldsymbol\nu^\top AA^\top\boldsymbol\nu - \mathbf b^\top\boldsymbol\nu, 최대화하면 ν∗=−(AA⊤)−1b\boldsymbol\nu^* = -(AA^\top)^{-1}\mathbf b.
  • x∗=A⊤(AA⊤)−1b\mathbf x^* = A^\top(AA^\top)^{-1}\mathbf b. 선형대수의 유사역행렬 해입니다.

7.5 SVM과 커널

선형 분리 가능한 데이터 (xi,yi)(\mathbf x_i, y_i), yi∈{±1}y_i \in \{\pm1\}에 대해, 두 클래스 사이 여백(margin)이 가장 큰 초평면을 찾는 서포트 벡터 머신(SVM)은

min⁡w,b12∥w∥2s.t.yi(w⊤xi+b)≥1.\min_{\mathbf w, b}\frac12\|\mathbf w\|^2 \quad \text{s.t.} \quad y_i(\mathbf w^\top\mathbf x_i + b) \ge 1.

(여백의 폭이 2/∥w∥2/\|\mathbf w\|이므로 ∥w∥\|\mathbf w\|를 최소로 합니다.) 쌍대 문제는

max⁡α≥0∑iαi−12∑i,jαiαjyiyj xi⊤xjs.t.∑iαiyi=0,\max_{\boldsymbol\alpha \ge \mathbf 0}\sum_i\alpha_i - \frac12\sum_{i,j}\alpha_i\alpha_jy_iy_j\,\mathbf x_i^\top\mathbf x_j \quad \text{s.t.} \quad \sum_i\alpha_iy_i = 0,

이고 w∗=∑iαi∗yixi\mathbf w^* = \sum_i\alpha_i^*y_i\mathbf x_i입니다.

두 가지가 중요합니다.

  1. 서포트 벡터. 상보 여유성에 따라 여백 경계에 있지 않은 점은 αi=0\alpha_i = 0입니다. 해는 경계 위의 몇 점(서포트 벡터)만으로 정해집니다.
  2. 커널 기법. 쌍대 문제에는 데이터가 내적 xi⊤xj\mathbf x_i^\top\mathbf x_j로만 나옵니다. 이것을 k(xi,xj)=ϕ(xi)⊤ϕ(xj)k(\mathbf x_i, \mathbf x_j) = \phi(\mathbf x_i)^\top\phi(\mathbf x_j)로 바꾸면, 특성 변환 ϕ\phi를 계산하지 않고도 고차원(가우스 커널이면 무한 차원) 공간에서 선형 분리를 하는 것과 같습니다.

7.6 이 장의 요약

  • 쌍대 함수 d=inf⁡xLd = \inf_{\mathbf x}\mathcal L은 항상 오목. 약한 쌍대성 d∗≤p∗d^* \le p^*.
  • 볼록 + 슬레이터 조건이면 강한 쌍대성 d∗=p∗d^* = p^*, 해의 짝은 KKT 조건.
  • 최소 노름 해 A⊤(AA⊤)−1bA^\top(AA^\top)^{-1}\mathbf b. SVM의 쌍대 문제 → 서포트 벡터와 커널.

쓰이는 곳. SVM과 커널 방법, 가우시안 과정, 최적 수송과 바서슈타인 거리(WGAN의 판별자는 쌍대 문제의 해), 강화학습의 제약 정책 최적화(라그랑주 승수를 학습), 분산 최적화(ADMM), 게임 이론의 미니맥스 정리와 GAN, 전력망 운영의 가격 결정(쌍대 변수 = 전기 가격)이 쌍대성을 씁니다.

문제

7.1 [계산] · 확인 문제

min⁡x2\min x^2 s.t. x≥3x \ge 3의 쌍대 문제를 풉니다.

값 답
λ∗\lambda^* [?]
d∗d^* [?]
정답
6
9
풀이

L=x2+λ(3−x)\mathcal L = x^2 + \lambda(3 - x), x=λ/2x = \lambda/2에서 d(λ)=3λ−λ2/4d(\lambda) = 3\lambda - \lambda^2/4. 최댓값은 λ=6\lambda = 6에서 d∗=18−9=9=p∗d^* = 18 - 9 = 9 = p^*입니다.

7.2 [계산] · 확인 문제

위 문제에서 λ=2\lambda = 2일 때의 쌍대 함숫값(최솟값의 하한)은?

정답
5
풀이

d(2)=6−1=5≤9d(2) = 6 - 1 = 5 \le 9입니다. 약한 쌍대성대로 하한입니다.

7.3 [계산] · 확인 문제

min⁡12(x2+y2)\min\frac12(x^2 + y^2) s.t. x+y=2x + y = 2의 최소 노름 해를 A⊤(AA⊤)−1bA^\top(AA^\top)^{-1}b로 구합니다.

좌표 값
xx [?]
yy [?]
정답
1
1
풀이

A=(1 1)A = (1\ 1), AA⊤=2AA^\top = 2이므로 x∗=(1,1)⊤⋅2/2=(1,1)\mathbf x^* = (1, 1)^\top\cdot2/2 = (1, 1)입니다.

7.4 [계산] · 확인 문제

SVM에서 w∗=(3,4)\mathbf w^* = (3, 4)이면 여백의 폭 2/∥w∥2/\|\mathbf w\|은?

정답
0.4
풀이

∥w∥=5\|\mathbf w\| = 5이므로 2/5=0.42/5 = 0.4입니다.

7.5 [증명]

쌍대 함수 d(λ,ν)d(\boldsymbol\lambda, \boldsymbol\nu)가 항상 오목함수임을 보입니다.

풀이

각 x\mathbf x를 고정하면 L(x,λ,ν)\mathcal L(\mathbf x, \boldsymbol\lambda, \boldsymbol\nu)는 (λ,ν)(\boldsymbol\lambda, \boldsymbol\nu)의 일차함수(따라서 오목)입니다. 오목함수들의 하한(최솟값)은 오목입니다. 이는 1장 문제 1.5(볼록함수들의 최댓값은 볼록)에서 부호를 바꾼 것입니다.