라그랑주 승수법은 제약조건이 있는 최적화 문제를 풀기 위한 방법입니다. 예를 들어 다음과 같이 f(x,y)와 g(x,y)가 존재합니다.
g(x,y)=c라는 제약 조건을 만족하는 f(x,y)의 최댓값은 어떻게 구할 수 있을까요? 직관적으로 최댓값은 f(x,y)가 g(x,y)에 접할 때라는 것을 알 수 있습니다. 라그랑주 승수법은 두 함수 f, g의 Gradient 벡터를 이용해 최댓값을 찾습니다. 어떤 지점에서 Gradient 벡터는 접선 벡터에 수직인 벡터입니다. f와 g의 접점에서의 Gradient 벡터는 같은 방향이므로 다음과 같이 쓸 수 있습니다.
∇f=λ∇g(∂x∂f,∂y∂f)=λ(∂x∂g,∂y∂g)(∂x∂f,∂y∂f,∂z∂f)=λ(∂x∂g,∂y∂g,∂z∂g)
이 때 상수 λ를 라그랑주 승수라 합니다. 라그랑주 승수법은 최적화를 위해 접점을 찾는 과정이라 할 수 있습니다. 다음은 라그랑주 승수법에서 정의하는 보조 함수입니다.
L(x,y,λ)=f(x,y)−λ(g(x,y)−c)
위 식을 예시의 원과 직선, x2+y2=4, 2x+y=k 대해 적용하면 다음과 같이 쓸 수 있습니다.
L(x,y,λ)=2x+y−k−λ(x2+y2−4)
보조 함수의 관점에서 최적화 문제를 푸는 것은 ∇f−λ∇g 의 Gradient 벡터가 영벡터임을 만족하는 편미분을 푸는 것과 같습니다. 예를 들면 다음과 같습니다.
∂x∂L=∂x∂f−λ∂x∂g=0
∂y∂L=∂y∂f−λ∂y∂g=0
제약 조건이 여러개일 때 보조 함수를 일반화하면 다음과 같습니다.
L(x,y,λ1,...,λn)=f(x,y)−i=1∑Nλi(gi(x,y)−ci)
출처 및 참고