일변수 함수의 최대, 최소 문제

다음과 같은 일변수 함수 f(x)에서 최대, 최소 값을 찾는 문제는 아래와 같이 해결 할 수 있다.

  • 변수의 경계값에서 함수값을 구한다.
  • 변수의 경계값 내부에 극소값/극대값를 찾는다.
  • 구해진 경계값, 극소값, 극대값에서 최소값, 최대값을 선택한다.

아래 식에서 변수의 경계는 -1, 3이고, 그 때 함수값 f(-1)=3, f(2)=6 이고, 극소값은 f(0)=2 이다. 이중에서 최대인 f(2)=6 이 최대값, f(0)=2가 최소값이 된다.

f(x)=x2+2,  1x3f(x)=x^2+2, \ \ -1\leq x \leq 3

이변수 함수의 최대, 최소 문제

이변수 함수 f(x,y)의 최대값과 최소값을 구하는 방법도 일변수 함수의 최대, 최소값을 구하는 방식과 동일하다.

  • 변수의 경계값에서 함수값을 구한다.
  • 변수의 경계값 내부에 극소값/극대값를 찾는다.
  • 구해진 경계값, 극소값, 극대값에서 최소값, 최대값을 선택한다.

x2+xy+y2=1x^2+xy+y^2=1 일때, x2+y2x^2+y^2 최대값과 최소값을 구하는 문제를 생각해보자. 아래 그림에서 볼수 있는 것과 같이 원의 방정식 x2+y2x^2+y^2 은 반지름을 0에서 조금씩 확대함에 따라 x2+xy+y2=1x^2+xy+y^2=1 함수와 x2+y2=rx^2+y^2=r 이 점하는 A,B 지점이 r이 최소가 되는 지점이고, C,D 지점에서 r이 최대인 지점이 된다. 따라서 두 함수가 접할때 r을 구하면 그 r 값이 최대, 최소값이 될 것이다.

다른 각도에서 생각해보면 A,B,C,D 지점에서는 두 함수가 접하기 때문에 공통 접선을 가지게 된다. 점 A에서 곡선 x2+xy+y2=1x^2+xy+y^2=1에 접하는 접선에 수직인 직선 l1l_1x2+y2=rx^2+y^2=r에 접하는 접선에 대한 수직인 직선 l2l_2는 평행이 된다. 따라서, 두 곡선이 접하는 A 지점에서의 접선에 수직인 직선의 관계는 아래와 같이 정리된다.

l2=λl1l_2=\lambda l_1

나머지 접점 B,C,D에서도 두 직선의 관계는 동일하다. 여기서 λ\lambda는 적당한 비율이 되고, 이 관계를 벡터를 이용하면 접선에 수직인 벡터는 Gradient로 표현된다. 따라서, 위 식은 아래와 같이 표시될 수 있다.

f(x,y)=x2+xy+y2g(x,y)=x2+y2f(x,y)=λg(x,y)f(x,y) = x^2+xy+y^2\\ g(x,y) = x^2+y^2 \\ \nabla f(x,y) = \lambda \nabla g(x,y)

따라서, 경계선 g(x,y)=k에서 f(x,y)=z 의 최대, 최속값을 찾기 위해서는 아래 연립방정식을 풀어서 나오는 x, y값을 구한 뒤 f(x,y)에 대입하면 된다.

f(x,y)=λg(x,y)g(x,y)=k\nabla f(x,y) = \lambda \nabla g(x,y) \\ g(x,y)=k

이렇게 최대값, 최소값을 찾는 방법이 라그랑주 승수법이다.

라그랑주 승수법

위에서 살펴본 최대, 최소와 같은 최적점을 찾을때 사용하는 라그랑주 승수법은 등식 제한조건이 있는 최적점을 찾는 것이 아니라 최적점이 되는 조건을 찾는 방법이다. 핵심 아이디어는 "제약조건 g를 만족하는 f 최소값 또는 최대값은 f와 g가 접하는 지점에 존재 할 수도 있다"는 것이다.

집합 D={(x,y)g(x,y)=k,k is constant)}D=\left\{(x,y)|g(x,y)=k,k \ is \ constant)\right\} 이 주어지고, 두 이변수 함수 f(x,y), g(x,y)가 편미분 가능하다면, 이변수 함수 z=f(x,y)가 집합 D의 원소 (x0,y0)(x_0,y_0)에서 극값을 가질 때, 경계선 g(x,y)=k 위의 점(x0,y0)(x_0,y_0)에서 극값을 가지면 적당한 실수 λ\lambda에 대해 아래 식이 성립한다.

f(x0,y0)=λg(x0,y0)g(x0,y0)0\nabla f(x_0,y_0) = \lambda \nabla g(x_0,y_0) \\ \nabla g(x_0,y_0) \neq \vec{0}

g(x0,y0)0\nabla g(x_0,y_0) \neq \vec{0} 인 이유는 법선벡터가 영벡터이면 접하는 접선이 존재하지 않기 때문이다. 위의 식은 변수의 갯수나 제한 조건의 갯수와 상관없이 성립한다.

집합 D=(x,y,z)g(x,y,z)=k, h(x,y,z)=c, k,c is constant)D={(x,y,z)|g(x,y,z)=k,\ h(x,y,z)=c,\ k,c \ is \ constant)} 이 주어지고, 두 삼변수 함수 f(x,y,z), g(x,y,z), h(x,y,z)가 편미분 가능하다면, 삼변수 함수 w=f(x,y)가 집합 D의 원소 (x0,y0,z0)(x_0,y_0,z_0)에서 극값을 가지면 적당한 실수 λ,μ\lambda, \mu에 대해 아래 식이 성립한다.

f(x0,y0,z0)=λg(x0,y0,z0)+μh(x0,y0,z0)g(x0,y0,z0)0, h(x0,y0,z0)0\nabla f(x_0,y_0,z_0) = \lambda \nabla g(x_0,y_0,z_0) +\mu \nabla h(x_0,y_0,z_0)\\ \nabla g(x_0,y_0,z_0) \neq \vec{0}, \ \nabla h(x_0,y_0,z_0) \neq \vec{0}

예제

문제)

x28+y22=1\frac{x^2}{8}+\frac{y^2}{2}=1에서 f(x,y)=xyf(x,y)=xy 의 최대,최소를 구하라

풀이)

x28+y22=1\frac{x^2}{8}+\frac{y^2}{2}=1이 제약조건 임으로 g(x,y)=1x28y22g(x,y)=1-\frac{x^2}{8}-\frac{y^2}{2} 라고 정의하면 라그랑주 승수법을 적용하면

L=f(x,y)+λg(x,y)=xy+λ(1x28y22)L=f(x,y)+\lambda g(x,y) \\ =xy+\lambda(1-\frac{x^2}{8}-\frac{y^2}{2})
  1. x에 대한 편미분이 0인 식을 구하고
Lx=f(x,y)x+λg(x,y)x=yλ4x=0y=λ4x\frac{\partial L}{\partial x}=\frac{\partial f(x,y)}{\partial x}+\lambda \frac{\partial g(x,y)}{\partial x} \\ =y-\frac{\lambda}{4}x=0 \\ y= \frac{\lambda}{4}x
  1. y에 대한 편미분이 0인 식을 구하고
Ly=f(x,y)y+λg(x,y)y=xλy=0x=λy\frac{\partial L}{\partial y}=\frac{\partial f(x,y)}{\partial y}+\lambda \frac{\partial g(x,y)}{\partial y} \\ =x-\lambda y=0 \\ x= \lambda y
  1. λ\lambda에 대한 편미분이 0인 식을 구하고
    Lλ=g(x,y)=0=1x28y22=0\frac{\partial L}{\partial \lambda}=g(x,y)=0 \\ =1-\frac{x^2}{8}-\frac{y^2}{2}=0

세 식을 연립방정식을 풀면 임계점을 구 할 수 있다.

yλ4x=0xλy=0x=y=0,or λ=±2y-\frac{\lambda}{4}x=0 \\ x-\lambda y=0\\ \therefore x=y=0, or \ \lambda=\pm2

따라서, 임계점은 (x,y)=(0,0)과 λ=±2\lambda=\pm2 을 구할수 있다. g(x,y)에 x=λyx=\lambda y를 대입하면

1) λ=2\lambda=2 인 경우

x=2y1(2y)28y22=1y2=0x=±2,y=±1(x,y)=(±2,±1)x=2y \\ 1-\frac{(2y)^2}{8}-\frac{y^2}{2}=1-y^2=0\\ \therefore x=\pm 2, y=\pm 1\\ (x,y)=(\pm 2, \pm 1)

2) λ=2\lambda=-2 인 경우

x=2y1(2y)28y22=1y2=0x=±2,y=1(x,y)=(±2,1)x=-2y \\ 1-\frac{(-2y)^2}{8}-\frac{y^2}{2}=1-y^2=0\\ \therefore x=\pm 2, y=\mp 1\\ (x,y)=(\pm 2, \mp 1)
  1. (x,y)=(0,0)(x,y)=(0,0)인 경우, 제약조건 g(x,y)c=0g(x,y)-c=0를 만족시키지 않는다.
1080201-\frac{0}{8}-\frac{0}{2} \neq 0

따라서, 임계후보는 4 점 {(2,1),(2,1),(2,1),(2,1)}\left \{(2,1), (2,-1), (-2,1), (-2,-1)\right \}이 되고, 각 임계후보에서 f(x,y)f(x,y)의 최대, 초소값 후보가 된다.

f(2,1)=2f(2,1)=2f(2,1)=2f(2,1)=2maxf(x,y)=2, minf(x,y)=2f(2,1)=2 \\ f(2,-1)=-2 \\ f(-2,1)=-2 \\ f(-2,-1)=2 \\ \therefore \max f(x,y)=2, \ \min f(x,y)=-2

따라서, g(x,y)g(x,y) 에서 f(x,y)f(x,y) 최대값은 2, 최소값은 -2이다.

그래프에서 살펴보면 g(x,y)g(x,y)는 타원이 되고, f(x,y)f(x,y)xx 값에 따라 반비례 그래프가 된다.

f(x,y)f(x,y) 가 변함에 따라 g(x,y)g(x,y)와 접하는 4개의 점에서 최대,최소값을 가진다.

확장된 최적화 문제

위의 내용을 입력이 N차원이고, 제약조건이 M개에 대한 최적화 문제로 확장하면 다음과 같이 정리된다. 입력변수가 xRN\mathbf x\in \mathbb{R}^N 인 N차원 벡터에 대한 목적함수의 일반식은 아래와 같이 표현되고

L(x,λ)=f(x)+j=1Mλjgj(x)L(\mathbf {x}, \mathbf \lambda) = f(\mathbf{x})+\sum_{j=1}^M \lambda_j g_j(\mathbf{x})

그레이언트 벡터를 영벡터로 만드는 최적화 필요 조건이 N+MN+M 개가 된다.

Lx1=fx1+j=1Mλjgjx1=0Lx2=fx2+j=1Mλjgjx2=0LxN=fxN+j=1MλjgjxN=0Lλ1=g1=0LλM=gM=0\frac{\partial L}{\partial x_1} = \frac{\partial f}{\partial x_1} + \sum_{j=1}^M \lambda_j\frac{\partial g_j}{\partial x_1} = 0 \\ \frac{\partial L}{\partial x_2} = \frac{\partial f}{\partial x_2} + \sum_{j=1}^M \lambda_j\dfrac{\partial g_j}{\partial x_2} = 0 \\ \vdots \\ \frac{\partial L}{\partial x_N} = \frac{\partial f}{\partial x_N} + \sum_{j=1}^M \lambda_j\dfrac{\partial g_j}{\partial x_N} = 0 \\ \frac{\partial L}{\partial \lambda_1} = g_1 = 0 \\ \vdots \\ \frac{\partial L}{\partial \lambda_M} = g_M = 0

따라서, N+M 연립방정식을 풀면 x1,x2,x3,...,xn,λ1,λ2,...,λNx_1, x_2, x_3,...,x_n, \lambda_1,\lambda_2,...,\lambda_N 미지수를 구할수 있고, 이 중에서 x1,x2,x3,...,xnx_1, x_2, x_3,...,x_n 에서 최소값, 최대값을 가진다.

부등식 제한조건이 있는 최적화 문제

라그랑주 승수법은 등식 제한조건이 있는 최적화 문제에 적용할 수 있다. 이번에는 부등식 제한조건이 있는 최적화를 살펴보자

x=argminxf(x)s.t.  {gj(x)=0    (j=1,,N),hk(x)0    (j=1,,M)\mathbf x^{\ast} = \text{arg} \min_\mathbf{x} f(\mathbf{x}) \\ s.t. \; \begin{cases} g_j(\mathbf {x}) = 0 \;\; (j=1, \ldots, N),\\ h_k(\mathbf {x}) \leq 0 \;\; (j=1, \ldots, M) \end{cases}

부등식 제한조건이 있는 최적화 문제도 라그랑주 승수법을 적용한 목적함수을 적용할 수 있다.

argminx,λ,μL(x,λ,μ)L(x,λ,μ)=f(x)+j=1Nλjgj(x)+k=1Mμkhk(x)arg \min_{\mathbf x, \lambda, \mu}L(\mathbf {x}, \mathbf \lambda, \mathbf \mu) \\ L(\mathbf {x}, \mathbf \lambda, \mathbf \mu) = f(\mathbf{x}) + \sum_{j=1}^N \lambda_j g_j(\mathbf{x}) + \sum_{k=1}^M \mu_k h_k(\mathbf{x})

이 경우는 KKT(Karush-Kuhn-Tucker) 조건이라하며 4개의 조건으로 구성된다. KKT 조건은 최소점을 찾는데 필요한 1차 충분조건 (First Order Sufficient Condition)이다.

  1. 모든 입력변수(독립변수)에 대한 편미분값이 0 이다.
L(x,λ,μ)xi=0,    i=1,2,3,...,N\frac{\partial L(\mathbf{x}, \mathbf{\lambda}, \mathbf{\mu})}{\partial x_i} = 0, \; \; i=1,2,3,...,N
  1. 주어진 문제 f(x)f(\mathbf x)의 제약조건의 만족한다.

    gj(x)=0    (j=1,,N),hk(x)0    (j=1,,M)g_j(\mathbf {x}) = 0 \;\; (j=1, \ldots, N),\\ h_k(\mathbf {x}) \leq 0 \;\; (j=1, \ldots, M)
  2. 부등식 라그랑주 승수는 음수가 아니어야 하고, 등식 라그랑주 승수는 0이 아니여야 한다.

λj0  j=1,2,3,...,Nμk0,  j=1,2,3,...,M\lambda_j \neq 0 \; j=1,2,3,...,N \\ \mu_k \geq 0, \; j=1,2,3,...,M
  1. 부등식 라그랑주 승수와 제한조건의 곱은 0이다.
kMμjhk(x)=0,    j=1,2,3,...,M\sum_k^M\mu_j h_k(\mathbf x) = 0 , \; \; j=1,2,3,...,M

벡터표현

이것의 벡터 형식은 아래와 같다.

x=argminx,λ,μL(x,λ,μ)L(x,λ,μ)=f(x)+λTg(x)+μTh(x)\mathbf x^{\ast} =\text{arg} \min_{\mathbf x, \lambda, \mu} L(\mathbf {x}, \mathbf \lambda, \mathbf \mu) \\L(\mathbf {x}, \mathbf \lambda, \mathbf \mu) = f(\mathbf x)+\mathbf \lambda^T g(\mathbf x)+\mathbf \mu^T h(\mathbf x)
  1. xL(x,λ,μ)=0\nabla_\mathbf x L(\mathbf x, \lambda, \mu)= \mathbf 0
  2. g(x)=0,  h(x)0g(\mathbf x) = \mathbf 0, \; h(\mathbf x) \leq \mathbf 0
  3. λ0,  μ0\mathbf \lambda \neq \mathbf 0, \;\mathbf \mu \geq \mathbf 0
  4. μTh(x)=0\mathbf \mu^T h(\mathbf x)=\mathbf 0

첫번째 조건을 다시 표현하면 아래와 같고,

x[f(x)+λTg(x)+μTh(x)]=0xf(x)=λTxg(x)μTxh(x)\nabla_\mathbf x \left [f(\mathbf x)+\mathbf \lambda^T g(\mathbf x)+\mathbf \mu^T h(\mathbf x)\right]=\mathbf 0\\ \nabla_\mathbf x f(\mathbf x)=-\mathbf \lambda^T \nabla_\mathbf x g(\mathbf x) - \mathbf \mu^T \nabla_\mathbf x h(\mathbf x)

이 식의 기하학적 의미는 f(x)f(\mathbf x)의 기울기가 g(x)g(\mathbf x)h(x)h(\mathbf x)의 기울기의 선형결합과 같다는 것을 의미한다. 즉, f(x)f(\mathbf x)가 진행하는 방향과 같은 힘이 g(x)g(\mathbf x)h(x)h(\mathbf x)의 합함 힘으로 균형을 이루고 있다는 것을 의미한다. 제약조건이 없는 문제에서는 f(x)f(\mathbf x)의 기울기가 0인 지점이 최소점이 되지만 제약제조건이 있는 조건에서는 기울기가 0이 아닌 지점에서 다른 힘과의 균형을 이루는 지점에서 최소값이 된다. 따라서, 제약조건이 있는 문제를 푸는 것은 목적함수가 진행하는 방향에 균형을 맞출수 있는 제약조건 함수의 λ,μ\lambda, \mu을 찾는 문제로 해석될 수 있다.

SOSC(Second Order Sufficient Condition) 체크

  1. HL(x,λ,μ)>0H_{L(\mathbf x, \lambda, \mu)}>\mathbf 0

  2. g(x)xx=0\frac{\partial g(\mathbf x)}{\partial \mathbf x} \partial \mathbf x^*=0

  3. h(x)xx=0\frac{\partial h(\mathbf x)}{\partial \mathbf x} \partial \mathbf x^*=0

첫번째 조건은 헤시안이 양수라는 것은 양정수 벡터라는 것이다.

0개의 댓글