현실의 최적화에는 조건이 붙습니다. 예산은 정해져 있고, 확률은 합이 1이어야 하며, 다리의 응력은 한계를 넘으면 안 됩니다. 다변수 미적분 6장에서 등식 제약을 라그랑주 승수로 풀었습니다. 이 장에서는 “이하”처럼 부등식 제약이 붙는 경우까지 넓힌 KKT 조건을 다룹니다. SVM, 최대 엔트로피 분포, 강화학습의 제약 최적화(TRPO)를 읽으려면 이 조건이 필요합니다.
6.1 등식 제약 복습
정리 6.1 (라그랑주 승수). minf(x) s.t. hj(x)=0 (j=1,…,p)의 국소 최솟값 x∗에서 ∇hj(x∗)들이 일차독립이면, 수 ν1,…,νp가 있어
∇f(x∗)+j∑νj∇hj(x∗)=0.
(s.t.는 such that, “다음 조건 아래에서”라는 뜻입니다.) 함수 L(x,ν)=f(x)+∑jνjhj(x)를 라그랑주 함수(Lagrangian)라 합니다. 위 조건은 ∇xL=0입니다.
기하학적 뜻: 최적점에서 f의 그래디언트는 제약 곡면에 수직입니다. 그렇지 않으면 곡면을 따라 움직여 f를 더 줄일 수 있습니다.
예제 6.2 (최대 엔트로피). 확률 p1,…,pn에 대해 엔트로피 −∑pilnpi를 ∑pi=1 아래에서 최대로 합니다. L=∑pilnpi+ν(∑pi−1)을 pi로 미분하면 lnpi+1+ν=0이므로 모든 pi가 같고, pi=1/n. 균등분포가 엔트로피를 최대로 합니다(확률과 통계 11장).
6.2 부등식 제약과 KKT 조건
이제 문제는
minf(x)s.t.gi(x)≤0 (i=1,…,m),hj(x)=0 (j=1,…,p).
L(x,λ,ν)=f+∑iλigi+∑jνjhj로 둡니다.
정리 6.3 (KKT 조건). 적당한 정칙 조건 아래에서 x∗가 국소 최솟값이면 λ∗,ν∗가 있어 다음 네 조건이 성립합니다.
- 정상성(stationarity): ∇f(x∗)+∑iλi∗∇gi(x∗)+∑jνj∗∇hj(x∗)=0.
- 원문제 실행 가능성(primal feasibility): gi(x∗)≤0, hj(x∗)=0.
- 쌍대 실행 가능성(dual feasibility): λi∗≥0.
- 상보 여유성(complementary slackness): λi∗gi(x∗)=0.
이름은 이 조건을 발견한 카루시, 쿤, 터커(Karush–Kuhn–Tucker)의 머리글자입니다. 문제가 볼록이면(f,gi 볼록, hj 일차) KKT 조건은 충분조건이기도 합니다.
6.3 상보 여유성의 뜻
조건 4는 각 제약마다 둘 중 하나라는 뜻입니다.
- gi(x∗)<0: 제약이 최적점에서 “여유가 있음”(비활성, inactive). 그러면 λi∗=0이고, 그 제약은 없는 것과 같습니다.
- λi∗>0: 그러면 gi(x∗)=0, 곧 제약의 경계에 붙어 있습니다(활성, active).
λi≥0인 이유도 직관적입니다. 제약 gi≤0은 f가 줄어드는 쪽으로 가는 것을 막는 벽입니다. 정상성 조건 −∇f=λi∇gi는 “내려가고 싶은 방향이 벽 바깥을 향한다”는 뜻이고, 그러려면 λi≥0이어야 합니다.
승수의 의미(민감도). λi∗는 제약을 조금 풀었을 때(gi≤ε) 최솟값이 줄어드는 비율입니다: dεdf∗=−λi∗. 경제학에서는 자원의 잠재 가격(shadow price)이라 부릅니다.
6.4 풀이 절차
KKT 문제는 보통 “어떤 제약이 활성인가”를 경우로 나누어 풉니다.
예제 6.4. min(x−3)2+(y−2)2 s.t. x+y≤2.
- 경우 1 (비활성, λ=0): 제약 없는 최솟값 (3,2)는 x+y=5>2라 실행 불가능합니다. 탈락.
- 경우 2 (활성, x+y=2): 정상성 2(x−3)+λ=0, 2(y−2)+λ=0에서 x−3=y−2, 곧 x=y+1. x+y=2와 함께 x=1.5, y=0.5, λ=3≥0. 모든 조건 만족.
최적해 (1.5,0.5), 최솟값 1.52+1.52=4.5입니다. 점 (3,2)에서 직선 x+y=2에 내린 수선의 발이고, λ=3은 제약을 1만큼 풀면 최솟값이 약 3 줄어든다는 뜻입니다.
6.5 알고리즘
- 사영 경사하강법(projected gradient descent): 경사하강법으로 한 걸음 간 뒤, 실행 가능 집합에서 가장 가까운 점으로 되돌립니다. xk+1=ΠC(xk−η∇f(xk)). 상자 제약 [a,b]이면 사영은 값을 잘라내기(clip)만 하면 됩니다.
- 벌점법(penalty method): 제약 위반에 벌점을 줍니다. minf(x)+2μ∑imax(0,gi(x))2. μ를 키울수록 원래 문제에 가까워집니다.
- 장벽법(barrier method): 경계에 다가가면 무한대가 되는 항 −t1∑ln(−gi)을 더해 안쪽에서 접근합니다. 내부점 방법의 기초입니다.
6.6 이 장의 요약
- 라그랑주 함수 L=f+∑λigi+∑νjhj.
- KKT: 정상성, 원문제·쌍대 실행 가능성, 상보 여유성. 볼록이면 필요충분.
- 상보 여유성: 비활성 제약의 승수는 0. 승수 = 잠재 가격.
- 알고리즘: 사영 경사하강법, 벌점법, 장벽법.
쓰이는 곳. SVM의 서포트 벡터(승수가 0이 아닌 데이터 점, 7장), 최대 엔트로피 원리와 지수족 분포, 강화학습의 TRPO(KL 제약)와 제약 RL, 공정성 제약이 붙은 학습, 경제학의 효용 최대화, 공학의 구조 최적화, 통계역학의 볼츠만 분포 유도(에너지 평균 제약 아래 엔트로피 최대)가 KKT 조건을 씁니다.
문제
6.1 [계산] · 확인 문제
minx2+y2 s.t. x+2y=5의 최적해를 구합니다.
| 값 |
답 |
| x |
[?] |
| y |
[?] |
| 최솟값 |
[?] |
정답
풀이
2x+ν=0, 2y+2ν=0에서 y=2x. x+4x=5이므로 x=1, y=2, 최솟값 5입니다.
6.2 [계산] · 확인 문제
min(x−1)2 s.t. x≤3의 KKT 승수 λ∗는?
정답
풀이
제약 없는 최솟값 x=1이 x≤3을 만족하므로 제약이 비활성이고, 상보 여유성에 따라 λ∗=0입니다.
6.3 [계산] · 확인 문제
min(x−4)2 s.t. x≤1의 최적해와 승수를 구합니다.
| 값 |
답 |
| x∗ |
[?] |
| λ∗ |
[?] |
정답
풀이
제약 없는 최솟값 4는 실행 불가능하므로 활성, x∗=1. 정상성 2(x−4)+λ=0에서 λ∗=6≥0입니다.
6.4 [계산] · 확인 문제
위 문제에서 제약을 x≤1.1로 조금 풀면 최솟값은 대략 얼마나 줄어드나요? (승수로 어림)
정답
풀이
λ∗⋅0.1=0.6입니다. 실제로는 9−2.92=0.59로 거의 같습니다.
6.5 [증명]
상자 [0,1]n으로의 사영이 좌표마다 min(1,max(0,xi))임을 보입니다.
풀이
∥y−x∥2=∑(yi−xi)2은 좌표별로 분리되고 제약도 좌표별(0≤yi≤1)입니다. 그러므로 각 좌표에서 (yi−xi)2을 [0,1] 위에서 최소로 하면 되고, 그 답은 xi를 구간에 잘라 넣은 값입니다.