최적화 이론 (Optimization Theory)

최적화 이론(Optimization Theory)은 주어진 조건 아래에서 어떤 값을 가장 크게 또는 가장 작게 만드는 방법을 연구하는 수학 분야입니다. "가장 좋은 답"을 체계적으로 찾는 학문이라고 할 수 있습니다.

이런 곳에 쓰여요

  • 인공지능: 딥러닝 모델이 학습할 때 손실함수를 최소화하는 과정이 바로 최적화입니다.
  • 경제학: 기업이 이윤을 최대화하거나 비용을 최소화할 때 최적화 기법을 사용합니다.
  • 물류: 택배 회사가 가장 짧은 경로로 배송하는 문제가 조합 최적화입니다.
  • 로켓 과학: 연료를 가장 적게 써서 목표 궤도에 도달하는 궤적 설계에 사용됩니다.

선수 지식: 미적분학, 선형대수학

난이도: ★★★★☆ (대학교)

최적화 문제의 정의

기본 구조

최적화 문제(Optimization Problem)란 목적함수(Objective Function)제약조건(Constraints) 하에서 최소화 또는 최대화하는 문제입니다. 표준 형식은 다음과 같습니다.

$$\begin{aligned} \min_{x \in \mathbb{R}^n} \quad & f(x) \\ \text{s.t.} \quad & g_i(x) \le 0, \quad i = 1, \ldots, m \\ & h_j(x) = 0, \quad j = 1, \ldots, p \end{aligned}$$

여기서 $f(x)$는 목적함수, $g_i(x) \le 0$은 부등식 제약조건(Inequality Constraint), $h_j(x) = 0$은 등식 제약조건(Equality Constraint)입니다. 모든 제약조건을 만족하는 $x$의 집합을 실행가능 영역(Feasible Region)이라 합니다.

쉽게 이해하기: "시험 점수(목적함수)를 최대한 높이되, 하루 공부 시간은 8시간 이하(부등식 제약)이고, 총 공부 시간은 일주일에 40시간(등식 제약)이어야 한다"와 같은 문제입니다.

최적해와 전역/지역 최적

실행가능 영역 내의 모든 점 $x$에 대해 $f(x^*) \le f(x)$를 만족하는 $x^*$를 전역 최적해(Global Optimum)라 합니다. 반면, $x^*$의 근방에서만 최소인 점을 지역 최적해(Local Optimum)라 합니다.

$x$ $f(x)$ 지역 최적 지역 최적 전역 최적
다봉 함수에서 지역 최적해와 전역 최적해

볼록집합과 볼록함수 (Convex Sets and Functions)

볼록집합의 정의

볼록집합(Convex Set)이란 집합 내의 임의의 두 점을 잇는 선분이 항상 집합 안에 포함되는 집합을 말합니다. 수학적으로, 집합 $C$가 볼록이면:

$$x_1, x_2 \in C, \; 0 \le \theta \le 1 \implies \theta x_1 + (1-\theta) x_2 \in C$$
볼록집합 ✓ 비볼록집합 ✗
볼록집합은 두 점을 잇는 선분이 항상 집합 내부에 있다

볼록함수의 정의

볼록함수(Convex Function)란 함수의 그래프 위의 임의의 두 점을 잇는 선분이 항상 그래프 위에 있거나 같은 함수를 말합니다.

$$f(\theta x_1 + (1-\theta) x_2) \le \theta f(x_1) + (1-\theta) f(x_2), \quad 0 \le \theta \le 1$$

볼록함수의 대표적인 예시는 다음과 같습니다.

볼록 최적화의 핵심 성질

정리: 볼록함수의 모든 지역 최적해는 전역 최적해이다.

이 성질이 볼록 최적화(Convex Optimization)가 중요한 이유입니다. 볼록 문제에서는 "더 좋은 답이 다른 곳에 숨어 있을까?"라는 걱정을 할 필요가 없습니다.

무제약 최적화

필요조건 (1차 조건)

제약조건이 없는 최적화 문제 $\min_{x} f(x)$에서, $x^*$가 지역 최적해이면 반드시 다음을 만족합니다.

$$\nabla f(x^*) = 0$$

$\nabla f$는 그래디언트(Gradient)로, 각 변수에 대한 편미분을 모아 놓은 벡터입니다. 이 조건을 만족하는 점을 정류점(Stationary Point)이라 합니다.

충분조건 (2차 조건)

$\nabla f(x^*) = 0$을 만족하는 점이 지역 최소인지 확인하려면, 헤시안 행렬(Hessian Matrix) $H(x^*) = \nabla^2 f(x^*)$을 검사합니다.

$$H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}$$
2차 충분조건: $\nabla f(x^*) = 0$이고 $\nabla^2 f(x^*)$이 양정부호(Positive Definite)이면, $x^*$는 엄밀한 지역 최솟값이다.

예시: $f(x,y) = x^2 + 4y^2 - 2x + 8y$에서 $\nabla f = (2x-2, 8y+8) = (0,0)$을 풀면 $x^* = 1, y^* = -1$입니다. 헤시안 $H = \begin{pmatrix} 2 & 0 \\ 0 & 8 \end{pmatrix}$의 고유값이 $2, 8$으로 모두 양수이므로, $(1,-1)$은 지역(그리고 전역) 최솟값입니다.

경사하강법 (Gradient Descent)

기본 아이디어

경사하강법(Gradient Descent)은 현재 위치에서 함수값이 가장 빨리 감소하는 방향, 즉 음의 그래디언트(Negative Gradient) 방향으로 조금씩 이동하는 반복 알고리즘입니다.

$$x_{k+1} = x_k - \alpha \nabla f(x_k)$$

여기서 $\alpha > 0$는 학습률(Learning Rate) 또는 스텝 크기(Step Size)라 합니다.

비유: 안개 낀 산에서 내려가고 싶다고 상상해 보십시오. 앞이 안 보이므로, 발밑의 경사가 가장 급한 방향으로 한 걸음씩 내딛습니다. 이것이 경사하강법의 원리입니다.
$x_0$ $x_1$ $x^*$ 경사하강법의 반복 과정 등고선을 따라 최솟값으로 수렴
경사하강법은 등고선을 가로질러 최솟값으로 수렴한다

학습률의 영향

학습률 $\alpha$의 선택은 수렴 속도와 안정성에 큰 영향을 줍니다.

수렴성 분석

$f$가 볼록이고 그래디언트가 립시츠 연속(Lipschitz Continuous)일 때, 즉 $\|\nabla f(x) - \nabla f(y)\| \le L\|x-y\|$를 만족하면, 학습률 $\alpha = 1/L$에서 경사하강법의 수렴 속도는 다음과 같습니다.

$$f(x_k) - f(x^*) \le \frac{L\|x_0 - x^*\|^2}{2k}$$

즉 $O(1/k)$의 속도로 수렴하며, 이를 차선 수렴(Sublinear Convergence)이라 합니다.

$f$가 강볼록(Strongly Convex)이면, 즉 $\nabla^2 f(x) \succeq \mu I$이면 선형 수렴(Linear Convergence)을 달성합니다.

$$f(x_k) - f(x^*) \le \left(\frac{L-\mu}{L+\mu}\right)^k \left(f(x_0) - f(x^*)\right)$$

뉴턴법과 준뉴턴법

뉴턴법 (Newton's Method)

뉴턴법(Newton's Method)은 2차 도함수 정보(헤시안)까지 활용하여 더 빠르게 수렴하는 방법입니다.

$$x_{k+1} = x_k - [\nabla^2 f(x_k)]^{-1} \nabla f(x_k)$$

뉴턴법은 최적점 근처에서 이차 수렴(Quadratic Convergence)을 보입니다. 즉, 반복할 때마다 유효 자릿수가 대략 두 배씩 늘어납니다.

경사하강법 vs 뉴턴법:
  • 경사하강법은 1차 정보만 사용하므로 계산이 가벼우나, 수렴이 느릴 수 있습니다.
  • 뉴턴법은 2차 정보를 사용하므로 수렴이 빠르지만, 헤시안 계산과 역행렬 연산의 비용이 큽니다 ($O(n^3)$).

준뉴턴법 (Quasi-Newton Methods)

준뉴턴법(Quasi-Newton Method)은 헤시안을 직접 계산하지 않고 근사(Approximation)하여 사용합니다. 가장 유명한 방법이 BFGS(Broyden-Fletcher-Goldfarb-Shanno) 알고리즘입니다.

$$B_{k+1} = B_k + \frac{y_k y_k^\top}{y_k^\top s_k} - \frac{B_k s_k s_k^\top B_k}{s_k^\top B_k s_k}$$

여기서 $s_k = x_{k+1} - x_k$, $y_k = \nabla f(x_{k+1}) - \nabla f(x_k)$입니다. BFGS는 헤시안 역행렬의 근사를 $O(n^2)$에 갱신하므로 대규모 문제에서도 실용적입니다.

메모리 제한이 있는 대규모 문제에서는 L-BFGS(Limited-memory BFGS)가 널리 사용됩니다. 최근 $m$개(보통 $m \approx 10$)의 벡터 쌍 $(s_k, y_k)$만 저장하여 $O(mn)$의 메모리와 계산량으로 동작합니다.

라그랑주 승수법 (Lagrange Multipliers)

등식 제약 최적화

등식 제약조건 $h(x) = 0$ 하에서 $f(x)$를 최소화하는 문제를 생각합니다. 라그랑주 함수(Lagrangian)를 다음과 같이 정의합니다.

$$\mathcal{L}(x, \lambda) = f(x) + \lambda^\top h(x)$$

여기서 $\lambda$는 라그랑주 승수(Lagrange Multiplier)입니다.

라그랑주 필요조건: 최적점 $(x^*, \lambda^*)$에서 다음이 성립한다. $$\nabla_x \mathcal{L}(x^*, \lambda^*) = \nabla f(x^*) + \lambda^{*\top} \nabla h(x^*) = 0$$ $$h(x^*) = 0$$

기하학적 해석

등식 제약조건 $h(x) = 0$이 정의하는 곡면 위에서 $f$의 최적점에서는, $f$의 그래디언트와 $h$의 그래디언트가 평행합니다. 즉, 제약 곡면을 따라서는 $f$를 더 줄일 수 없다는 뜻입니다.

$h(x)=0$ $x^*$ $\nabla f$ $\nabla h$ $f = c_1$ $f = c_2$ $f = c_3$ 라그랑주 승수법의 기하학적 해석
최적점에서 목적함수와 제약함수의 그래디언트가 평행하다

예시

$f(x,y) = x^2 + y^2$를 $h(x,y) = x + y - 1 = 0$ 하에서 최소화합니다.

라그랑주 함수: $\mathcal{L} = x^2 + y^2 + \lambda(x + y - 1)$

필요조건:

$$\frac{\partial \mathcal{L}}{\partial x} = 2x + \lambda = 0, \quad \frac{\partial \mathcal{L}}{\partial y} = 2y + \lambda = 0, \quad x + y = 1$$

$2x = 2y$이므로 $x = y = 1/2$, $\lambda = -1$입니다. 최솟값은 $f(1/2, 1/2) = 1/2$입니다.

KKT 조건 (Karush-Kuhn-Tucker)

부등식 제약이 포함된 경우

라그랑주 승수법을 부등식 제약조건까지 확장한 것이 KKT 조건(Karush-Kuhn-Tucker Conditions)입니다. 일반적인 최적화 문제의 라그랑주 함수는 다음과 같습니다.

$$\mathcal{L}(x, \lambda, \mu) = f(x) + \sum_{i=1}^{m} \mu_i g_i(x) + \sum_{j=1}^{p} \lambda_j h_j(x)$$
KKT 필요조건: 적절한 정칙 조건(Constraint Qualification) 하에서, 최적해 $x^*$에서 $\mu^*, \lambda^*$가 존재하여 다음을 만족한다.
  1. 정류성(Stationarity): $\nabla f(x^*) + \sum \mu_i^* \nabla g_i(x^*) + \sum \lambda_j^* \nabla h_j(x^*) = 0$
  2. 원초 실행가능성(Primal Feasibility): $g_i(x^*) \le 0$, $h_j(x^*) = 0$
  3. 쌍대 실행가능성(Dual Feasibility): $\mu_i^* \ge 0$
  4. 상보 이완성(Complementary Slackness): $\mu_i^* g_i(x^*) = 0$

상보 이완성의 의미

상보 이완성 $\mu_i^* g_i(x^*) = 0$은 두 가지 경우를 뜻합니다.

볼록 최적화 문제에서는 KKT 조건이 필요충분조건입니다. 즉, KKT 조건을 만족하는 점은 반드시 전역 최적해입니다.

쌍대성 (Duality)

라그랑주 쌍대함수

라그랑주 함수를 $x$에 대해 최소화한 것을 라그랑주 쌍대함수(Lagrange Dual Function)라 합니다.

$$g(\mu, \lambda) = \inf_{x} \mathcal{L}(x, \mu, \lambda)$$

쌍대함수는 항상 원래 문제의 최적값의 하한을 제공합니다. 이를 약쌍대성(Weak Duality)이라 합니다.

약쌍대성과 강쌍대성

약쌍대성(Weak Duality): 쌍대 문제의 최적값 $d^*$와 원초 문제의 최적값 $p^*$ 사이에 항상 $d^* \le p^*$가 성립한다. 그 차이 $p^* - d^*$를 쌍대 간극(Duality Gap)이라 한다.
강쌍대성(Strong Duality): 볼록 최적화 문제에서 슬레이터 조건(Slater's Condition)이 만족되면 $d^* = p^*$이다. 즉, 쌍대 간극이 0이다.

슬레이터 조건이란 실행가능 영역의 내부에 모든 부등식 제약을 엄격하게 만족하는 점이 존재한다는 것입니다. 즉, $g_i(x) < 0$을 모든 $i$에 대해 만족하는 $x$가 존재해야 합니다.

쌍대 문제의 활용

쌍대성이 중요한 이유는 다음과 같습니다.

선형계획법 (Linear Programming)

표준형

선형계획법(Linear Programming, LP)은 목적함수와 제약조건이 모두 선형(1차)인 최적화 문제입니다.

$$\begin{aligned} \min_{x} \quad & c^\top x \\ \text{s.t.} \quad & Ax \le b \\ & x \ge 0 \end{aligned}$$

여기서 $c \in \mathbb{R}^n$은 비용 벡터, $A \in \mathbb{R}^{m \times n}$은 제약 행렬, $b \in \mathbb{R}^m$은 제약 상한입니다.

예시: 어떤 공장에서 제품 A와 제품 B를 생산합니다. 제품 A는 개당 3만원, 제품 B는 개당 5만원의 이익이 납니다. 원료 제한과 기계 시간 제한이 있을 때, 이익을 최대화하는 생산량을 구하는 문제가 선형계획법입니다.

실행가능 영역의 기하

LP의 실행가능 영역은 볼록 다면체(Convex Polytope)이며, 선형 목적함수의 최적값은 반드시 다면체의 꼭짓점(Vertex)에서 달성됩니다.

$x_1$ $x_2$ $g_1$ $g_2$ $g_3$ 최적점 $c^\top x = \text{const}$ 실행가능 영역
선형계획법에서 최적점은 실행가능 영역의 꼭짓점에 위치한다

심플렉스법 (Simplex Method)

조지 단치그(George Dantzig)가 1947년에 발명한 심플렉스법(Simplex Method)은 다면체의 꼭짓점을 따라 이동하면서 목적함수를 개선하는 알고리즘입니다.

  1. 실행가능 꼭짓점에서 출발합니다.
  2. 인접한 꼭짓점 중 목적함수 값이 더 좋은 곳으로 이동합니다.
  3. 더 이상 개선할 수 없으면 현재 꼭짓점이 최적해입니다.

최악의 경우 지수 시간이 걸릴 수 있으나, 실제로는 매우 효율적으로 동작합니다. 다항 시간 알고리즘으로는 카르마르카르(Karmarkar)의 내부점법(Interior Point Method)이 있습니다.

이차계획법 (Quadratic Programming)

정의

이차계획법(Quadratic Programming, QP)은 목적함수가 이차(2차)이고 제약조건이 선형인 최적화 문제입니다.

$$\begin{aligned} \min_{x} \quad & \frac{1}{2} x^\top Q x + c^\top x \\ \text{s.t.} \quad & Ax \le b \end{aligned}$$

여기서 $Q$는 대칭 행렬입니다. $Q$가 양의 반정부호(Positive Semidefinite)이면 볼록 QP이고, 효율적으로 풀 수 있습니다.

활용 예시

반정부호 계획법 (Semidefinite Programming)

정의

반정부호 계획법(Semidefinite Programming, SDP)은 변수가 행렬이고, 그 행렬이 양의 반정부호(Positive Semidefinite)라는 제약을 가지는 최적화 문제입니다.

$$\begin{aligned} \min_{X} \quad & \langle C, X \rangle \\ \text{s.t.} \quad & \langle A_i, X \rangle = b_i, \quad i = 1, \ldots, m \\ & X \succeq 0 \end{aligned}$$

여기서 $\langle C, X \rangle = \text{tr}(C^\top X)$는 행렬 내적이고, $X \succeq 0$는 $X$가 양의 반정부호임을 뜻합니다.

LP, QP, SDP의 관계

SDP는 LP와 QP를 포함하는 더 넓은 범위의 문제입니다.

$$\text{LP} \subset \text{QP} \subset \text{SDP}$$

SDP는 제어이론, 조합 최적화의 완화(Relaxation), 양자 정보 이론 등에서 중요하게 활용됩니다.

정수계획법과 조합 최적화

정수계획법 (Integer Programming)

정수계획법(Integer Programming, IP)은 변수의 일부 또는 전부가 정수여야 하는 최적화 문제입니다. 변수가 0 또는 1만 취하는 경우를 이진 계획법(Binary Programming)이라 합니다.

$$\begin{aligned} \min_{x} \quad & c^\top x \\ \text{s.t.} \quad & Ax \le b \\ & x \in \mathbb{Z}^n \end{aligned}$$

정수 제약이 추가되면 문제가 극도로 어려워집니다. 일반적으로 정수계획법은 NP-난해(NP-hard)입니다.

대표적인 조합 최적화 문제

풀이 방법

응용

머신러닝 (Machine Learning)

머신러닝에서 모델 학습은 곧 최적화 문제입니다. 손실함수(Loss Function)를 최소화하여 모델의 파라미터를 결정합니다.

제어이론 (Control Theory)

동적 시스템의 제어 문제는 최적 제어(Optimal Control)로 정식화됩니다.

$$\min_{u(\cdot)} \int_0^T L(x(t), u(t)) \, dt + \Phi(x(T))$$ $$\text{s.t.} \quad \dot{x}(t) = f(x(t), u(t))$$

여기서 $x(t)$는 상태, $u(t)$는 제어 입력입니다. 폰트리아긴 최대 원리(Pontryagin's Maximum Principle)동적 프로그래밍(Dynamic Programming)이 주요 풀이 도구입니다.

경제학 (Economics)

경제학에서 최적화는 핵심 방법론입니다.

볼록성 심화 (Advanced Convexity)

분리 정리 (Separating Hyperplane Theorem)

두 볼록집합이 서로 만나지 않으면, 이들을 분리하는 초평면이 존재합니다. 이를 분리 정리(Separating Hyperplane Theorem)라 합니다.

정리 (분리 정리): 두 볼록집합 $C_1, C_2 \subset \mathbb{R}^n$이 $C_1 \cap C_2 = \emptyset$이면, 벡터 $a \ne 0$와 스칼라 $b$가 존재하여 다음이 성립한다. $$a^\top x \le b, \quad \forall x \in C_1, \qquad a^\top x \ge b, \quad \forall x \in C_2$$

이 정리는 볼록 최적화에서 쌍대성 이론의 기초가 되며, 서포트 벡터 머신(SVM)의 이론적 근거이기도 합니다.

지지 초평면 정리 (Supporting Hyperplane Theorem)

볼록집합의 경계 위의 임의의 점에서 집합 전체를 한쪽에 포함하는 초평면이 존재합니다.

$$x_0 \in \text{bd}(C) \implies \exists a \ne 0 : a^\top x \le a^\top x_0, \quad \forall x \in C$$
$C_1$ $C_2$ $a^\top x = b$ $a$
분리 초평면 정리: 두 볼록집합을 분리하는 초평면이 반드시 존재한다

볼록 결합과 볼록 껍질 (Convex Combination and Convex Hull)

볼록 결합(Convex Combination)이란 점들 $x_1, \ldots, x_k$에 대해 다음과 같은 조합을 말합니다.

$$x = \sum_{i=1}^{k} \theta_i x_i, \quad \theta_i \ge 0, \quad \sum_{i=1}^{k} \theta_i = 1$$

점들의 집합 $S$에 대한 볼록 껍질(Convex Hull) $\text{conv}(S)$은 $S$의 모든 볼록 결합의 집합이며, $S$를 포함하는 가장 작은 볼록집합입니다.

카라테오도리 정리 (Carathéodory's Theorem): $\mathbb{R}^n$에서 집합 $S$의 볼록 껍질 내의 임의의 점은 $S$의 원소 중 최대 $n+1$개의 볼록 결합으로 표현할 수 있다.

볼록 쌍대성 (Convex Duality)

볼록함수 $f$의 켤레 함수(Conjugate Function) 또는 르장드르 변환(Legendre Transform)은 다음과 같이 정의됩니다.

$$f^*(y) = \sup_{x} \left( y^\top x - f(x) \right)$$

켤레 함수의 주요 성질은 다음과 같습니다.

대표적인 켤레 함수의 예시는 다음과 같습니다.

경사하강법 심화

수렴률 분석의 상세

경사하강법의 수렴 속도를 정밀하게 분석하기 위해 함수의 성질에 따른 분류가 중요합니다.

조건수(Condition Number): 강볼록 함수에서 $\kappa = L/\mu$를 조건수라 합니다. 조건수가 클수록 수렴이 느려집니다. 등고선이 매우 길쭉한 타원 모양일 때 조건수가 큽니다.
함수 유형수렴률반복 횟수 ($\epsilon$ 정밀도)
볼록, $L$-립시츠 그래디언트$O(1/k)$$O(1/\epsilon)$
$\mu$-강볼록, $L$-립시츠$O\!\left(\left(\frac{\kappa-1}{\kappa+1}\right)^k\right)$$O(\kappa \log(1/\epsilon))$

가속 경사하강법 — 네스테로프 가속 (Nesterov's Accelerated Gradient)

유리 네스테로프(Yurii Nesterov)는 1983년에 볼록함수에 대한 최적의 1차 방법을 제시하였습니다. 네스테로프 가속 경사하강법(Nesterov's Accelerated Gradient Descent, NAG)의 갱신 규칙은 다음과 같습니다.

$$\begin{aligned} y_{k+1} &= x_k - \alpha \nabla f(x_k) \\ x_{k+1} &= y_{k+1} + \frac{k-1}{k+2}(y_{k+1} - y_k) \end{aligned}$$

NAG는 볼록함수에서 $O(1/k^2)$의 수렴 속도를 달성하며, 이는 1차 방법의 최적 수렴률(Optimal Rate)임이 증명되어 있습니다.

네스테로프의 하한 정리: 볼록이고 $L$-립시츠 그래디언트를 가지는 함수에 대해, 임의의 1차 방법의 수렴률 하한은 $\Omega(1/k^2)$이다. 따라서 NAG는 최적 방법이다.

모멘텀 방법 (Momentum Method)

폴리악(Polyak)의 중량 볼 방법(Heavy Ball Method)은 관성을 이용하여 수렴을 가속합니다.

$$x_{k+1} = x_k - \alpha \nabla f(x_k) + \beta (x_k - x_{k-1})$$

여기서 $\beta \in [0,1)$는 모멘텀 계수입니다. 물리적으로 이해하면, 무거운 공이 경사면을 굴러 내려갈 때 관성에 의해 골짜기를 빠르게 통과하는 것과 같습니다.

방법볼록 수렴률강볼록 수렴률
경사하강법 (GD)$O(1/k)$$O\!\left(\left(\frac{\kappa-1}{\kappa+1}\right)^k\right)$
네스테로프 가속 (NAG)$O(1/k^2)$$O\!\left(\left(\frac{\sqrt{\kappa}-1}{\sqrt{\kappa}+1}\right)^k\right)$
모멘텀 (Heavy Ball)$O\!\left(\left(\frac{\sqrt{\kappa}-1}{\sqrt{\kappa}+1}\right)^k\right)$

조건수 $\kappa$가 클 때, 가속 방법은 표준 경사하강법에 비해 $\sqrt{\kappa}$배 빠르게 수렴합니다.

확률적 경사하강법 (Stochastic Gradient Descent)

기본 SGD

목적함수가 합의 형태 $f(x) = \frac{1}{n}\sum_{i=1}^{n} f_i(x)$일 때 (예: 머신러닝에서 각 데이터 샘플의 손실), 전체 그래디언트를 계산하는 비용이 큽니다. 확률적 경사하강법(Stochastic Gradient Descent, SGD)은 매 반복에서 무작위로 하나의 $f_i$를 선택하여 그래디언트를 추정합니다.

$$x_{k+1} = x_k - \alpha_k \nabla f_{i_k}(x_k), \quad i_k \sim \text{Uniform}\{1,\ldots,n\}$$

핵심 성질은 $\mathbb{E}[\nabla f_{i_k}(x_k)] = \nabla f(x_k)$, 즉 불편 추정량(Unbiased Estimator)이라는 점입니다. 다만 분산이 존재하므로, 학습률을 점진적으로 감소시켜야 수렴합니다.

로빈스-몬로 조건 (Robbins-Monro): 학습률 $\alpha_k$가 다음을 만족하면 SGD가 수렴한다. $$\sum_{k=1}^{\infty} \alpha_k = \infty, \qquad \sum_{k=1}^{\infty} \alpha_k^2 < \infty$$ 예를 들어 $\alpha_k = c/k$이면 이 조건을 만족합니다.

미니배치 SGD (Mini-batch SGD)

실제로는 하나의 샘플 대신 미니배치(Mini-batch) $B_k \subset \{1,\ldots,n\}$를 사용하여 분산을 줄입니다.

$$x_{k+1} = x_k - \alpha_k \cdot \frac{1}{|B_k|} \sum_{i \in B_k} \nabla f_i(x_k)$$

미니배치 크기 $|B_k|$가 커지면 분산은 $1/|B_k|$에 비례하여 감소합니다.

Adam (Adaptive Moment Estimation)

Adam은 킹마와 바(Kingma & Ba, 2015)가 제안한 적응적 학습률 방법으로, 1차 모멘트(평균)와 2차 모멘트(비중심 분산)를 지수 이동 평균으로 추정합니다.

$$\begin{aligned} m_k &= \beta_1 m_{k-1} + (1-\beta_1) g_k \\ v_k &= \beta_2 v_{k-1} + (1-\beta_2) g_k^2 \\ \hat{m}_k &= \frac{m_k}{1-\beta_1^k}, \qquad \hat{v}_k = \frac{v_k}{1-\beta_2^k} \\ x_{k+1} &= x_k - \frac{\alpha}{\sqrt{\hat{v}_k} + \epsilon} \hat{m}_k \end{aligned}$$

여기서 $g_k = \nabla f_{i_k}(x_k)$이고, 기본 하이퍼파라미터는 $\beta_1 = 0.9$, $\beta_2 = 0.999$, $\epsilon = 10^{-8}$입니다.

AdaGrad

AdaGrad(Duchi et al., 2011)는 각 파라미터별로 과거 그래디언트의 누적 제곱합에 반비례하여 학습률을 조절합니다.

$$x_{k+1,j} = x_{k,j} - \frac{\alpha}{\sqrt{G_{k,jj} + \epsilon}} g_{k,j}, \qquad G_k = \sum_{t=1}^{k} g_t g_t^\top$$

희소한(Sparse) 그래디언트를 가지는 문제에서 효과적이나, 학습률이 단조 감소하여 학습이 너무 일찍 멈출 수 있다는 단점이 있습니다.

RMSProp

RMSProp(Hinton, 2012)은 AdaGrad의 학습률 소멸 문제를 해결하기 위해 지수 이동 평균을 사용합니다.

$$v_k = \gamma v_{k-1} + (1-\gamma) g_k^2, \qquad x_{k+1} = x_k - \frac{\alpha}{\sqrt{v_k + \epsilon}} g_k$$

일반적으로 $\gamma = 0.9$을 사용합니다. RMSProp는 Adam의 2차 모멘트 부분과 동일한 구조입니다.

최적화 알고리즘별 수렴 경로 비교 $x^*$ SGD 모멘텀 Adam
SGD는 진동하고, 모멘텀은 부드럽고, Adam은 가장 효율적으로 수렴한다

내부점 방법 (Interior Point Methods)

장벽 함수 (Barrier Function)

내부점 방법(Interior Point Method)은 부등식 제약 $g_i(x) \le 0$을 목적함수에 장벽(Barrier)으로 포함시켜 제약 없는 문제로 변환하는 접근법입니다.

로그 장벽 함수(Logarithmic Barrier Function)를 사용한 근사 문제는 다음과 같습니다.

$$\min_x \quad t \cdot f(x) - \sum_{i=1}^{m} \ln(-g_i(x))$$

여기서 $t > 0$는 장벽 매개변수입니다. $t$가 커질수록 근사 문제의 해가 원래 문제의 해에 가까워집니다.

중심 경로 (Central Path)

$t$를 변화시킬 때 근사 문제의 해 $x^*(t)$가 그리는 궤적을 중심 경로(Central Path)라 합니다. 내부점 방법은 이 중심 경로를 따라 이동하면서 최적해에 접근합니다.

내부점 방법의 복잡도: $m$개의 부등식 제약이 있는 볼록 최적화 문제에서, $\epsilon$ 정밀도의 해를 구하는 데 필요한 뉴턴 반복 횟수는 $O(\sqrt{m} \log(m/\epsilon))$이다.

알고리즘 절차

  1. 실행가능 영역의 내부점 $x_0$에서 출발하고, $t := t_0 > 0$, $\mu > 1$로 설정합니다.
  2. 중심화 단계(Centering Step): 뉴턴법으로 $\min_x \; t \cdot f(x) - \sum \ln(-g_i(x))$를 풀어 $x^*(t)$를 구합니다.
  3. $m/t < \epsilon$이면 종료합니다 (쌍대 간극 $\le m/t$).
  4. $t := \mu \cdot t$로 갱신하고 2단계로 돌아갑니다.

원-쌍대 방법 (Primal-Dual Methods)

원-쌍대 내부점 방법

원-쌍대 내부점 방법(Primal-Dual Interior Point Method)은 원초 변수 $x$와 쌍대 변수 $(\lambda, \mu)$를 동시에 갱신하는 방법입니다. KKT 조건을 변형한 다음 시스템을 뉴턴법으로 풉니다.

$$r_t(x, \mu, \lambda) = \begin{pmatrix} \nabla f(x) + \sum \mu_i \nabla g_i(x) + \sum \lambda_j \nabla h_j(x) \\ -\text{diag}(\mu) g(x) - (1/t)\mathbf{1} \\ h(x) \end{pmatrix} = 0$$

여기서 두 번째 방정식의 $(1/t)\mathbf{1}$은 상보 이완성 조건을 완화한 것입니다. $t \to \infty$이면 정확한 KKT 조건에 수렴합니다.

장벽 방법과의 비교

교대 방향 승수법 (ADMM)

교대 방향 승수법(Alternating Direction Method of Multipliers, ADMM)은 증강 라그랑주 방법의 변형으로, 분리 가능한 구조를 가진 문제에 효과적입니다.

문제 $\min_{x,z} f(x) + g(z), \; \text{s.t.} \; Ax + Bz = c$에 대해, ADMM의 갱신 규칙은 다음과 같습니다.

$$\begin{aligned} x_{k+1} &= \arg\min_x \left( f(x) + \frac{\rho}{2}\|Ax + Bz_k - c + u_k\|^2 \right) \\ z_{k+1} &= \arg\min_z \left( g(z) + \frac{\rho}{2}\|Ax_{k+1} + Bz - c + u_k\|^2 \right) \\ u_{k+1} &= u_k + Ax_{k+1} + Bz_{k+1} - c \end{aligned}$$

여기서 $\rho > 0$는 페널티 매개변수, $u_k$는 스케일링된 쌍대 변수입니다. ADMM은 분산 최적화, LASSO 회귀, 합의 최적화(Consensus Optimization) 등에 널리 사용됩니다.

반정부호 계획법 심화

SDP 완화 (SDP Relaxation)

NP-난해 조합 최적화 문제의 근사해를 구하는 강력한 도구가 SDP 완화(SDP Relaxation)입니다. 기본 아이디어는 정수 변수 $x_i \in \{-1, +1\}$를 행렬 변수 $X = xx^\top$로 치환하고, $\text{rank}(X) = 1$ 제약을 완화하여 $X \succeq 0$으로 대체하는 것입니다.

MAX-CUT 문제와 게만스-윌리엄슨 알고리즘

MAX-CUT 문제는 그래프의 정점을 두 집합으로 분할하여, 집합 사이를 지나는 간선의 가중치 합을 최대화하는 NP-난해 문제입니다. 정수 계획법 형태로 쓰면:

$$\max_{x \in \{-1,1\}^n} \frac{1}{4} \sum_{(i,j) \in E} w_{ij}(1 - x_i x_j)$$

이를 SDP로 완화하면:

$$\begin{aligned} \max_{X} \quad & \frac{1}{4} \langle L, X \rangle \\ \text{s.t.} \quad & X_{ii} = 1, \; i = 1,\ldots,n \\ & X \succeq 0 \end{aligned}$$

여기서 $L$은 가중 라플라시안 행렬입니다.

게만스-윌리엄슨 정리 (Goemans-Williamson, 1995): SDP 완화의 해에서 무작위 초평면 반올림(Random Hyperplane Rounding)을 적용하면, 기댓값이 최적값의 $\alpha_{\text{GW}} \approx 0.878$ 이상인 해를 얻는다. 이 비율은 Unique Games Conjecture 하에서 최적 근사비이다.

원뿔 최적화 (Conic Optimization)

원뿔 계획법의 일반 형태

원뿔 계획법(Conic Programming)은 볼록 원뿔 $\mathcal{K}$ 위의 제약을 가지는 최적화 문제입니다.

$$\begin{aligned} \min_x \quad & c^\top x \\ \text{s.t.} \quad & Ax = b \\ & x \in \mathcal{K} \end{aligned}$$

원뿔의 종류에 따라 다양한 문제 유형이 나타납니다.

포함 관계: $\text{LP} \subset \text{SOCP} \subset \text{SDP}$. 문제의 원뿔이 더 일반적일수록 표현력은 강해지지만, 계산 비용이 증가합니다.

2차 원뿔 계획법 (SOCP)

2차 원뿔 계획법(Second-Order Cone Programming, SOCP)은 다음 형태의 제약을 가집니다.

$$\|A_i x + b_i\|_2 \le c_i^\top x + d_i$$

이는 2차 원뿔(Second-Order Cone) 또는 로렌츠 원뿔(Lorentz Cone) $\mathcal{Q}^n = \{(x,t) : \|x\|_2 \le t\}$ 위의 제약입니다.

SOCP의 응용 예시는 다음과 같습니다.

원뿔 최적화의 계층 구조 SDP SOCP LP 표현력 증가 계산 비용 증가
LP $\subset$ SOCP $\subset$ SDP: 더 일반적인 원뿔일수록 표현력이 강하다

조합 최적화 심화

분기한정법 (Branch and Bound)

분기한정법(Branch and Bound)은 정수계획법을 정확하게 푸는 대표적인 알고리즘입니다. 해 공간을 체계적으로 분할(Branch)하고, 각 부분 문제의 하한(Bound)을 구하여 가능성이 없는 가지를 가지치기(Pruning)합니다.

  1. 완화(Relaxation): 정수 제약을 완화한 LP를 풀어 하한을 구합니다.
  2. 분기(Branching): LP 해에서 정수가 아닌 변수 $x_j = f$를 선택하여, $x_j \le \lfloor f \rfloor$와 $x_j \ge \lceil f \rceil$로 두 개의 하위 문제를 만듭니다.
  3. 한정(Bounding): 하위 문제의 LP 완화 최적값이 현재까지의 최적 정수해보다 나쁘면 가지치기합니다.
  4. 모든 가지를 탐색할 때까지 반복합니다.

동적 프로그래밍 (Dynamic Programming)

동적 프로그래밍(DP)은 문제를 하위 문제로 분할하고, 하위 문제의 해를 재활용하여 전체 문제를 효율적으로 풀어내는 기법입니다. 벨만 방정식(Bellman Equation)이 핵심입니다.

$$V(S) = \min_{a \in A(S)} \left\{ c(S, a) + V(T(S, a)) \right\}$$

여기서 $V(S)$는 상태 $S$에서의 최적 비용, $A(S)$는 가능한 행동, $T(S,a)$는 전이 함수입니다.

배낭 문제의 DP 풀이를 예로 들면, 아이템 $i$의 무게 $w_i$, 가치 $v_i$, 배낭 용량 $W$에 대해:

$$\text{dp}[i][w] = \max\left(\text{dp}[i-1][w], \; \text{dp}[i-1][w-w_i] + v_i\right)$$

시간 복잡도는 $O(nW)$로, 이를 의사 다항 시간(Pseudo-polynomial Time)이라 합니다.

근사 알고리즘과 근사비

NP-난해 문제에 대해 다항 시간 내에 최적해에 가까운 해를 보장하는 근사 알고리즘(Approximation Algorithm)이 중요합니다.

문제근사비알고리즘
MAX-CUT$0.878$게만스-윌리엄슨 (SDP)
정점 덮개(Vertex Cover)$2$LP 완화 반올림
TSP (메트릭)$3/2$크리스토피데스 알고리즘
집합 덮개(Set Cover)$O(\ln n)$탐욕 알고리즘

확률적 최적화 (Stochastic Optimization)

기본 구조

확률적 최적화(Stochastic Optimization)는 불확실성이 있는 상황에서의 최적 의사결정을 다룹니다. 목적함수나 제약조건이 확률변수 $\xi$에 의존합니다.

$$\min_x \; \mathbb{E}_\xi[f(x, \xi)]$$

기회 제약 최적화 (Chance-Constrained Optimization)

기회 제약(Chance Constraint)은 확률적 제약이 높은 확률로 만족되기를 요구합니다.

$$\Pr[g(x, \xi) \le 0] \ge 1 - \epsilon$$

여기서 $\epsilon$은 허용되는 위반 확률입니다. 예를 들어, 발전량 계획에서 "수요를 95% 이상의 확률로 충족해야 한다"는 제약을 $\epsilon = 0.05$로 모형화합니다.

$\xi$가 정규분포 $\mathcal{N}(\bar{\xi}, \Sigma)$이고 $g$가 $\xi$에 대해 선형이면, 기회 제약은 SOCP로 변환할 수 있습니다.

강건 최적화 (Robust Optimization)

강건 최적화(Robust Optimization)는 불확실성의 확률 분포를 가정하지 않고, 불확실성 집합 $\mathcal{U}$ 내의 최악의 경우에 대해 최적화합니다.

$$\min_x \max_{\xi \in \mathcal{U}} f(x, \xi)$$

불확실성 집합의 형태에 따라 변환 결과가 달라집니다.

다목적 최적화 (Multi-Objective Optimization)

파레토 최적 (Pareto Optimality)

여러 목적함수를 동시에 최적화하는 문제를 다목적 최적화(Multi-Objective Optimization)라 합니다.

$$\min_x \; \left(f_1(x), f_2(x), \ldots, f_p(x)\right)$$

일반적으로 모든 목적을 동시에 최적화하는 해는 존재하지 않으며, 대신 파레토 최적(Pareto Optimal) 해의 집합을 구합니다.

정의 (파레토 최적): 해 $x^*$가 파레토 최적이란, 어떤 목적함수를 개선하려면 반드시 다른 목적함수가 악화되어야 한다는 뜻이다. 즉, 모든 $i$에 대해 $f_i(x) \le f_i(x^*)$이고, 어떤 $j$에 대해 $f_j(x) < f_j(x^*)$인 실행가능 해 $x$가 존재하지 않는다.

파레토 최적 해의 집합이 목적함수 공간에서 이루는 곡면을 파레토 전선(Pareto Front)이라 합니다.

파레토 전선 (Pareto Front) $f_1$ $f_2$ 파레토 전선 비파레토 해 이 점에 의해 지배되는 영역
파레토 전선 위의 점들은 서로 지배 관계가 없는 최적 해이다

풀이 방법

비선형 계획법 (Nonlinear Programming)

순차 이차 계획법 (SQP)

순차 이차 계획법(Sequential Quadratic Programming, SQP)은 비선형 제약 최적화 문제를 반복적으로 QP 부분 문제로 근사하여 푸는 방법입니다.

일반 비선형 계획 문제:

$$\min_x f(x), \quad \text{s.t.} \; c_i(x) = 0, \; c_j(x) \le 0$$

각 반복에서 라그랑주 함수의 2차 근사로부터 다음 QP 부분 문제를 풉니다.

$$\begin{aligned} \min_d \quad & \nabla f(x_k)^\top d + \frac{1}{2} d^\top B_k d \\ \text{s.t.} \quad & c_i(x_k) + \nabla c_i(x_k)^\top d = 0 \\ & c_j(x_k) + \nabla c_j(x_k)^\top d \le 0 \end{aligned}$$

여기서 $B_k$는 라그랑주 함수의 헤시안 또는 그 근사이고, $d$는 탐색 방향입니다. $x_{k+1} = x_k + \alpha_k d_k$로 갱신합니다.

SQP의 수렴성: $B_k$가 라그랑주 헤시안의 좋은 근사이고, 적절한 정칙 조건이 만족되면 SQP는 초선형(Superlinear) 수렴을 달성합니다. BFGS를 사용하여 $B_k$를 갱신하는 것이 일반적입니다.

증강 라그랑주 방법 (Augmented Lagrangian Method)

증강 라그랑주 방법(ALM)은 라그랑주 함수에 제약 위반에 대한 2차 페널티 항을 추가합니다.

$$\mathcal{L}_\rho(x, \lambda) = f(x) + \lambda^\top h(x) + \frac{\rho}{2}\|h(x)\|^2$$

순수 페널티 방법과 달리, $\rho$를 무한대로 보내지 않아도 수렴하며 수치적 조건이 양호합니다.

응용 심화

포트폴리오 최적화 (Portfolio Optimization)

마코위츠 평균-분산 모형(Mean-Variance Model)은 기대 수익률과 위험(분산)의 최적 균형을 찾습니다.

$$\begin{aligned} \min_w \quad & \frac{1}{2} w^\top \Sigma w \\ \text{s.t.} \quad & \mu^\top w \ge r_{\text{target}} \\ & \mathbf{1}^\top w = 1, \quad w \ge 0 \end{aligned}$$

여기서 $w$는 자산 비중 벡터, $\Sigma$는 자산 수익률의 공분산 행렬, $\mu$는 기대 수익률 벡터, $r_{\text{target}}$은 목표 수익률입니다.

실무에서는 다음과 같은 확장이 사용됩니다.

제어 이론에서의 최적화

선형 시스템 $\dot{x} = Ax + Bu$의 LQR(Linear Quadratic Regulator) 문제는 다음과 같습니다.

$$\min_{u(\cdot)} \int_0^\infty \left( x^\top Q x + u^\top R u \right) dt$$

이 문제의 해는 리카티 방정식(Riccati Equation)을 풀어 얻습니다.

$$A^\top P + PA - PBR^{-1}B^\top P + Q = 0$$

최적 제어 입력은 $u^*(t) = -R^{-1}B^\top P x(t)$입니다.

모델 예측 제어(MPC, Model Predictive Control)는 매 시점에서 유한 구간의 최적 제어 문제를 풀어 실시간 제어를 수행합니다. 각 시점에서 QP 또는 비선형 계획 문제를 풀어야 하므로 고속 최적화 솔버가 필수적입니다.

신경망 학습과 최적화

딥러닝에서 신경망의 학습은 대규모 비볼록 최적화 문제입니다.

$$\min_\theta \; \frac{1}{n}\sum_{i=1}^{n} \ell(f_\theta(x_i), y_i)$$

여기서 $\theta$는 네트워크 파라미터, $\ell$은 손실함수입니다. 주요 최적화 관련 현상은 다음과 같습니다.

실무 권장 설정 (딥러닝):
  • 옵티마이저: AdamW ($\beta_1=0.9$, $\beta_2=0.999$)
  • 학습률: 코사인 감쇠 + 워밍업
  • 미니배치 크기: GPU 메모리가 허용하는 최대 크기 (혼합 정밀도 활용)
  • 그래디언트 클리핑: 최대 노름 1.0

요약 비교표

문제 유형목적함수제약조건대표 알고리즘복잡도
LP선형선형심플렉스법, 내부점법다항 시간
QP이차선형활성 집합법, 내부점법다항 시간 (볼록)
SDP선형 (행렬)선형 + PSD내부점법다항 시간
볼록 최적화볼록볼록경사하강법, 뉴턴법다항 시간
SOCP선형2차 원뿔내부점법다항 시간
비볼록 최적화일반일반SGD, 메타휴리스틱NP-hard (일반)
정수계획법선형선형 + 정수분기한정법NP-hard
다목적 최적화벡터일반NSGA-II, 가중합문제 의존
확률적 최적화기대값확률적SAA, 강건 최적화문제 의존

참고 문헌 및 관련 페이지