6장. 라그랑주 승수

다변수 미적분 · 2부. 최적화

심화 · 약 15분 · 연습문제 5

요약

제약이 있는 최적화, 등위선이 접하는 조건, 라그랑주 승수법, 여러 제약, 부등식 제약과 KKT 조건의 개요

“둘레가 정해진 직사각형 중 넓이가 가장 큰 것”, “예산 안에서 효용이 가장 큰 소비”, “확률의 합이 1이라는 조건에서 엔트로피가 가장 큰 분포”처럼, 실제 최적화 문제에는 조건(제약)이 붙습니다. 라그랑주 승수법은 제약을 없애지 않고도 이런 문제를 깔끔한 연립방정식으로 바꿉니다. 핵심 아이디어는 “최적점에서는 목적함수의 등위선과 제약 곡선이 접한다”는 그림 하나입니다.

6.1 제약이 있는 최적화

g(x,y)=cg(x, y) = c라는 조건(곡선) 위에서 f(x,y)f(x, y)를 최대 또는 최소로 하는 문제를 생각합니다.

제약을 풀어 변수 하나를 없앨 수 있으면(예: y=c−xy = c - x) 미적분학 6장으로 풀립니다. 그러나 x2+y2=1x^2 + y^2 = 1처럼 풀기 번거롭거나, 변수가 많으면 다른 방법이 필요합니다.

6.2 접하는 조건

곡선 g=cg = c를 따라 걸으며 ff의 값을 본다고 합시다. 걷는 방향이 ff의 등위선을 가로지르면 ff가 커지거나 작아지는 중이므로 최적점이 아닙니다. 최적점에서는 곡선이 ff의 등위선과 접합니다(같은 방향으로 갑니다).

두 곡선이 접하면 그 점에서의 법선이 평행합니다. ff의 등위선의 법선은 ∇f\nabla f, 곡선 g=cg = c의 법선은 ∇g\nabla g입니다(2장의 정리 2.10). 그러므로 최적점에서 ∇f=λ∇g\nabla f = \lambda\nabla g입니다.

정리 6.1 (라그랑주 승수법). ff와 gg가 미분 가능하고, 제약 g(x)=cg(\mathbf{x}) = c 위에서 ff가 a\mathbf{a}에서 극값을 가지며 ∇g(a)≠0\nabla g(\mathbf{a}) \ne \mathbf{0}이면

∇f(a)=λ ∇g(a)\nabla f(\mathbf{a}) = \lambda\,\nabla g(\mathbf{a})

인 수 λ\lambda가 있습니다. λ\lambda를 라그랑주 승수(Lagrange multiplier)라 합니다.

실제 풀이는 미지수 x,y,λx, y, \lambda에 대한 연립방정식

fx=λgx,fy=λgy,g(x,y)=cf_x = \lambda g_x, \quad f_y = \lambda g_y, \quad g(x, y) = c

를 풀고, 나온 후보들의 ff 값을 비교하는 것입니다. 같은 말로, 라그랑지언(Lagrangian) L(x,y,λ)=f(x,y)−λ(g(x,y)−c)\mathcal{L}(x, y, \lambda) = f(x, y) - \lambda(g(x, y) - c)의 임계점을 찾는 것입니다. ∂L/∂λ=0\partial\mathcal{L}/\partial\lambda = 0이 제약 자체가 됩니다.

예제 6.2. 원 x2+y2=1x^2 + y^2 = 1 위에서 f=x+2yf = x + 2y의 최댓값. ∇f=(1,2)\nabla f = (1, 2), ∇g=(2x,2y)\nabla g = (2x, 2y)이므로 1=2λx1 = 2\lambda x, 2=2λy2 = 2\lambda y에서 y=2xy = 2x. 제약에 넣으면 5x2=15x^2 = 1, x=±15x = \pm\frac1{\sqrt5}. 최댓값은 (x,y)=(15,25)(x, y) = \left(\frac1{\sqrt5}, \frac2{\sqrt5}\right)에서 55=5\frac{5}{\sqrt5} = \sqrt5입니다. (코시–슈바르츠 부등식으로도 x+2y≤1+4x2+y2=5x + 2y \le \sqrt{1 + 4}\sqrt{x^2 + y^2} = \sqrt5.)

예제 6.3. 둘레가 PP인 직사각형의 넓이 최대: f=xyf = xy, g=2x+2y=Pg = 2x + 2y = P. y=2λy = 2\lambda, x=2λx = 2\lambda이므로 x=y=P/4x = y = P/4, 정사각형입니다.

6.3 라그랑주 승수의 뜻

정리 6.4. 최적값을 제약의 상수 cc의 함수 f∗(c)f^*(c)로 보면 df∗dc=λ\dfrac{df^*}{dc} = \lambda입니다.

곧 λ\lambda는 “제약을 조금 느슨하게 하면 최적값이 얼마나 좋아지는가”입니다. 경제학에서는 자원의 그림자 가격, 물리에서는 제약을 유지하는 힘(예: 줄의 장력)입니다. 예제 6.2에서 원의 반지름을 바꾸면 f∗=5rf^* = \sqrt5 r이고, c=r2c = r^2이므로 df∗dc=52r\frac{df^*}{dc} = \frac{\sqrt5}{2r}, r=1r = 1에서 52\frac{\sqrt5}2인데, 실제로 λ=12x=52\lambda = \frac{1}{2x} = \frac{\sqrt5}{2}입니다.

6.4 여러 제약

제약이 g1=c1,…,gm=cmg_1 = c_1, \dots, g_m = c_m이면

∇f=λ1∇g1+⋯+λm∇gm.\nabla f = \lambda_1\nabla g_1 + \cdots + \lambda_m\nabla g_m.

예제 6.5 (최대 엔트로피). 확률 p1,…,pnp_1, \dots, p_n(∑pi=1\sum p_i = 1)에서 엔트로피 H=−∑piln⁡piH = -\sum p_i\ln p_i를 최대로 합니다. ∂H∂pi=−ln⁡pi−1=λ\frac{\partial H}{\partial p_i} = -\ln p_i - 1 = \lambda이므로 모든 pip_i가 같은 값 e−1−λe^{-1-\lambda}이고, 합이 1이므로 pi=1/np_i = 1/n입니다. 아무 정보가 없을 때 가장 “고른” 분포는 균등분포입니다. 평균이라는 제약을 하나 더 넣으면 같은 계산에서 pi∝e−βxip_i \propto e^{-\beta x_i} 꼴(볼츠만 분포, 소프트맥스)이 나옵니다.

6.5 부등식 제약과 KKT 조건

제약이 g(x)≤cg(\mathbf{x}) \le c(부등식)이면 두 경우가 있습니다.

  • 최적점이 영역 안쪽(g<cg < c)이면 제약이 없는 것과 같아서 ∇f=0\nabla f = \mathbf{0}.
  • 최적점이 경계(g=cg = c)이면 라그랑주 조건, 그리고 최소화일 때 λ≥0\lambda \ge 0(제약이 실제로 막고 있다는 방향 조건).

두 경우를 한꺼번에 쓴 것이 KKT 조건(Karush–Kuhn–Tucker)입니다. ∇f+λ∇g=0\nabla f + \lambda\nabla g = \mathbf{0}, λ≥0\lambda \ge 0, g≤cg \le c, λ(g−c)=0\lambda(g - c) = 0. 마지막 식(상보성)은 “제약이 걸려 있지 않으면 승수는 0”이라는 뜻입니다. 서포트 벡터 머신(SVM)에서 “서포트 벡터”는 바로 λ>0\lambda > 0인, 경계에 걸린 데이터점입니다.

6.6 이 장의 요약

  • 최적점에서 등위선과 제약이 접합니다: ∇f=λ∇g\nabla f = \lambda\nabla g.
  • 라그랑지언 L=f−λ(g−c)\mathcal{L} = f - \lambda(g - c)의 임계점을 찾습니다.
  • λ\lambda = 제약을 느슨하게 할 때 최적값의 변화율. 부등식 제약은 KKT 조건.

쓰이는 곳. 서포트 벡터 머신, 최대 엔트로피 모델과 소프트맥스의 유도, 강화학습의 제약 정책 최적화(TRPO의 KL 제약), 경제학의 효용 최대화, 물리의 제약 운동(라그랑주 역학)과 통계역학의 볼츠만 분포가 라그랑주 승수를 씁니다.

문제

6.1 [계산] · 확인 문제

원 x2+y2=1x^2 + y^2 = 1 위에서 f=3x+4yf = 3x + 4y의 최댓값은?

정답
5
풀이

3=2λx3 = 2\lambda x, 4=2λy4 = 2\lambda y에서 y=43xy = \frac43x. x2+169x2=1x^2 + \frac{16}9x^2 = 1이므로 x=35x = \frac35, y=45y = \frac45이고 f=95+165=5f = \frac95 + \frac{16}5 = 5입니다.

6.2 [계산] · 확인 문제

x+y=10x + y = 10일 때 f=x2+y2f = x^2 + y^2을 최소로 하는 점과 최솟값, 라그랑주 승수를 씁니다.

항목 값
xx [?]
yy [?]
최솟값 [?]
λ\lambda [?]
정답
5
5
50
10
풀이

2x=λ2x = \lambda, 2y=λ2y = \lambda이므로 x=y=5x = y = 5, f=50f = 50, λ=10\lambda = 10. 확인: 제약을 x+y=cx + y = c로 두면 f∗=c2/2f^* = c^2/2이고 df∗dc=c=10=λ\frac{df^*}{dc} = c = 10 = \lambda입니다.

6.3 [계산] · 확인 문제

겉넓이가 24인 직육면체(뚜껑 있음) 가운데 부피가 가장 큰 것의 부피는?

힌트 1

대칭성으로 정육면체가 답이라 짐작하고 라그랑주 조건으로 확인합니다. f=xyzf = xyz, g=2(xy+yz+zx)=24g = 2(xy + yz + zx) = 24.

정답
8
풀이

yz=λ⋅2(y+z)yz = \lambda\cdot2(y + z), xz=λ⋅2(x+z)xz = \lambda\cdot2(x + z), xy=λ⋅2(x+y)xy = \lambda\cdot2(x + y). 첫째와 둘째를 빼면 z(y−x)=2λ(y−x)z(y - x) = 2\lambda(y - x)이므로 x=yx = y이거나 z=2λz = 2\lambda이고, 같은 계산으로 x=y=zx = y = z가 나옵니다. 6x2=246x^2 = 24에서 x=2x = 2, 부피 8입니다.

6.4 [계산]

확률 p1,p2,p3p_1, p_2, p_3(∑pi=1\sum p_i = 1)의 엔트로피 −∑piln⁡pi-\sum p_i\ln p_i의 최댓값은? (소수 넷째 자리까지)

정답
1.0986
풀이

예제 6.5로 pi=1/3p_i = 1/3에서 최대이고 값은 ln⁡3≈1.0986\ln 3 \approx 1.0986입니다.

6.5 [증명]

라그랑주 승수법으로 산술·기하 평균 부등식 xy≤x+y2\sqrt{xy} \le \frac{x + y}{2}(x,y>0x, y > 0)를 보입니다.

힌트 1

x+y=2sx + y = 2s로 고정하고 xyxy를 최대로 합니다.

풀이

x+y=2sx + y = 2s일 때 f=xyf = xy를 최대로 합니다. y=λy = \lambda, x=λx = \lambda이므로 x=y=sx = y = s에서 최대 s2s^2입니다(경계 x→0x \to 0에서는 f→0f \to 0). 그러므로 xy≤s2=(x+y2)2xy \le s^2 = \left(\frac{x + y}2\right)^2이고 제곱근을 취하면 부등식이 나옵니다. 등호는 x=yx = y일 때입니다.