본문 바로가기
데이터 과학 수학

제약 조건 속 최적의 해법, 라그랑주 승수법의 원리

by dexien 2026. 4. 4.

임계점 판정법까지 공부하고 나면 최적화 문제를 어느 정도 풀 수 있다는 자신감이 생깁니다. 그런데 현실에서는 항상 조건이 붙습니다. 예산이 정해져 있다거나, 에너지 소비량 한도가 있다거나. 아무 제약 없이 최솟값을 찾는 건 쉬운데, 제약 조건 안에서 찾으라고 하면 갑자기 막막해집니다.

저도 라그랑주 승수법을 처음 봤을 때 수식이 왜 저런 형태인지 전혀 감이 안 왔습니다. 그런데 기하학적으로 어떤 상황인지를 먼저 이해하고 나니까 수식이 왜 그렇게 생겼는지 자연스럽게 연결됐습니다. 오늘은 그 순서대로 따라가 보겠습니다.

제약 조건 속 최적의 해법 라그랑주 승수법의 원리
제약 조건 속 최적의 해법, 라그랑주 승수법의 원리

제약 조건이 있는 최적화 문제란

제약 없는 최적화는 앞서 배운 방식으로 풀 수 있습니다. 미분해서 0이 되는 지점을 찾으면 됩니다. 그런데 현실 문제는 대부분 이렇게 생겼습니다.

목적:  f(x, y) = xy 를 최대화하라
제약:  g(x, y) = x + y = 10 을 만족하면서

x + y = 10이라는 조건이 없으면 xy는 무한히 커질 수 있습니다. 하지만 x + y = 10이라는 울타리 안에서만 움직여야 한다면 이야기가 달라집니다. 가능한 x, y의 조합이 직선 하나로 제한되는 거죠. 이 직선 위에서 xy가 가장 커지는 점을 찾는 게 목표입니다.

대입해서 풀 수도 있습니다. x = 10 - y를 넣으면 f = (10-y)y = 10y - y²이 되고 미분하면 됩니다. 하지만 변수가 10개, 제약 조건이 5개라면? 대입법은 불가능합니다. 라그랑주 승수법은 변수가 아무리 많아도 같은 방식으로 풀 수 있게 해 줍니다.

목적함수의 등고선과 제약조건 직선이 접하는 지점이 최적점임을 보여주는 다이어그램
제약 조건 직선과 목적 함수 등고선이 접하는 지점이 제약 최적화의해다


기하학으로 먼저 이해하기 — 등고선과 접선

수식보다 그림으로 먼저 이해하는 게 훨씬 빠릅니다. 목적 함수 f(x, y)의 값이 같은 지점들을 이으면 등고선이 됩니다. 지도에서 같은 높이를 이은 선과 같은 개념입니다. f 값이 클수록 등고선이 바깥쪽에 위치합니다.

제약 조건 g(x, y) = 10은 좌표계 위의 직선(또는 곡선)입니다. 우리는 이 직선 위에서만 움직일 수 있습니다. 이 직선이 등고선과 그냥 교차하는 동안에는 아직 최적이 아닙니다. 더 바깥쪽 등고선으로 이동할 여지가 있으니까요. 직선이 등고선에 딱 접하는 순간, 더 이상 바깥으로 못 나갑니다. 그 점이 최적점입니다.

두 곡선이 접한다는 건 그 지점에서 두 곡선의 기울기 방향이 같다는 뜻입니다. 수학적으로는 ∇f와 ∇g가 평행하다는 의미입니다. 방향이 같고 크기만 다르니 ∇f = λ∇g라고 쓸 수 있습니다. 이 λ가 라그랑주 승수입니다.


라그랑주 함수 — 수식이 저런 형태인 이유

∇f = λ∇g 조건을 편리하게 처리하기 위해 두 함수를 하나로 합칩니다. 이게 라그랑주 함수입니다.

L(x, y, λ) = f(x, y) - λ(g(x, y) - c)

이 함수를 x, y, λ 각각에 대해 편미분 해서 0으로 놓으면 연립방정식이 나옵니다. λ로 편미분하면 자동으로 원래 제약 조건 g(x, y) = c가 나오는 구조입니다. 제약 조건을 따로 챙기지 않아도 수식 안에 내장된 셈입니다.

무제약 최적화와 라그랑주 승수법의 차이를 정리하면 이렇습니다.

항목 무제약 최적화 라그랑주 승수법
탐색 범위 전체 공간 제약 조건 위
수학 도구 f'= 0 L 편미분 = 0
추가 변수 없음 λ (승수) 추가
해의 의미 전체 공간의 극점 제약 조건 내 최적점

실제 숫자로 한 번 풀어보기

앞서 든 예시를 실제로 풀어보겠습니다. f(x, y) = xy를 최대화, 제약 g(x, y) = x + y = 10입니다.

① L = xy - λ(x + y - 10)

② 편미분:
  ∂L/∂x = y - λ = 0  →  y = λ
  ∂L/∂y = x - λ = 0  →  x = λ
  ∂L/∂λ = -(x + y - 10) = 0  →  x + y = 10

③ y = λ, x = λ이므로 x = y
  x + y = 10에 대입 → x = y = 5

④ 최적해: x = 5, y = 5, λ = 5
  최댓값: f(5, 5) = 25

x + y = 10 조건 아래에서 xy가 가장 커지는 건 x = y = 5일 때입니다. 산술-기하 평균 부등식으로도 같은 결론이 나오는데, 라그랑주 승수법은 이걸 체계적으로 도출해 냅니다. 변수가 수십 개여도 같은 절차로 풀 수 있다는 게 핵심입니다.

라그랑주 승수법을 L함수 구성부터 최적해 도출까지 4단계로 보여주는 플로우차트
라그랑주 승수법은 L 함수 구성 편미분 연립방정식 풀기 최적해 도출의 네 단계로 진행된다


λ(람다)의 경제적 의미 — 잠재 가격

풀이 과정에서 λ = 5가 나왔습니다. 이게 뭘 의미할까요. 경제학에서는 이 λ를 잠재 가격(Shadow Price)이라고 부릅니다. 제약 조건이 한 단위 완화될 때 목적 함수가 얼마나 변하는지를 나타냅니다.

위 예시에서 λ = 5라는 건, x + y의 한도를 10에서 11로 늘리면 최댓값이 25에서 약 30으로 늘어난다는 의미입니다. 예산을 1 더 투입했을 때 얻는 이득이 5라는 뜻이죠. 기업이 어느 자원에 추가 투자해야 할지 결정할 때 이 λ값을 비교합니다. λ가 큰 제약 조건일수록 그 한도를 늘렸을 때 효과가 크다는 신호입니다.


SVM에서 라그랑주 승수법이 쓰이는 방식

머신러닝의 SVM(서포트 벡터 머신)은 데이터를 두 그룹으로 나누는 경계선을 찾는 알고리즘입니다. 이때 목표는 경계선과 가장 가까운 데이터 포인트 사이의 거리(마진)를 최대화하는 겁니다. 그런데 동시에 모든 데이터가 올바른 쪽에 있어야 한다는 제약 조건이 붙습니다.

마진 최대화 + 분류 제약 조건. 전형적인 제약 최적화 문제입니다. 여기에 라그랑주 승수법을 적용하면 복잡한 원 문제(Primal Problem)가 훨씬 풀기 쉬운 듀얼 문제(Dual Problem)로 변환됩니다. 이 과정에서 λ > 0인 데이터 포인트들, 즉 경계에 걸쳐 있는 데이터들이 서포트 벡터가 됩니다. 나머지 데이터는 λ = 0이라 계산에서 사라집니다.

수식에서 추상적으로 보이던 λ가 실제로는 "이 데이터 포인트가 경계 결정에 얼마나 기여하는가"를 나타내는 값이었던 겁니다. 이걸 알고 SVM 코드를 보면 support_vectors_ 라는 속성이 왜 존재하는지 바로 이해가 됩니다.

SVM에서 결정 경계선과 마진 서포트 벡터의 관계를 보여주는 분류 다이어그램
SVM에서 마진 경계에 위치한 서포트 벡터만 λ가 0보다 크며 결정 경계 계산에 기여한다

제약 조건이 처음에는 문제를 어렵게 만드는 것처럼 보입니다. 그런데 라그랑주 승수법으로 보면 제약 조건이 오히려 해의 범위를 좁혀줘서 더 빠르게 최적점을 찾게 해주는 도구가 됩니다. 미분, 행렬, 임계점, 그리고 라그랑주 승수법까지 이어지는 흐름이 결국 하나의 방향을 가리키고 있다는 걸 느낄 수 있을 겁니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름