본문 바로가기
AI 수학/최적화

[KKT 조건 - 1] 등식과 부등식 제약조건이 있는 최적화 문제

by 깊은대학 2021. 1. 14.

제약조건이 없는 일반적인 최적화 문제는 다음과 같다.

 

p=minxf(x)

 

여기서 x는 최적화 변수이고, f(x)는 목적함수(objective function)이다. x가 로컬(local) 최소점이 되기 위한 필요조건(necessary condition)은 x=x에서 f의 그래디언트(gradient)가 0이 되는 것이다.

 

xf(x)=0

 

 

 

등식 제약조건이 있는 일반적인 최적화 문제는 다음과 같다.

 

p=minxf(x)subject to   hj(x)=0,  j=1,...,k

 

여기서 hj(x)는 등식 제약함수(equality constraint function)이다. 제약함수는 편의상 다음과 같이 벡터 형태로 표현하기도 한다.

 

h(x)=[h1(x)hk(x)]=0

 

여기서 부등식과 등식은 벡터 함수 h(x)의 성분별로 적용된다.

라그랑지 곱수법을 이용하면 등식 제약조건이 있는 최적화 문제를 다음과같이 제약조건이 없는 최적화 문제로 바꿀 수 있다.

 

p=minx,λ1,...,λkL(x,λ1,λ2,...,λk)=minx,λL(x,λ)

 

여기서 λ=[λ1...λk]T를 라그랑지 곱수(Lagrange multiplier)라고 한다. L은 라그랑지안(Lagrangian)이라고 하며 다음과 같이 정의한다.

 

L(x,λ)=f(x)+j=1kλjhj(x)=f(x)+λTh(x)

 

함수 f(x)x에서 로컬 최소값이 되기 위한 필요조건은 x=xλ=λ에서 L의 그래디언트(gradient)가 0이 되는 것이다.

 

xL(x,λ)=0λL(x,λ)=0 (or hj(x)=0, j=1,...,k)

 

 

 

등식과 부등식 제약조건이 있는 일반적인 최적화 문제는 다음과 같다.

 

p=minxf(x)subject to   gi(x)0,  i=1,...,m  hj(x)=0,  j=1,...,k

 

여기서 gi(x)를 부등식 제약함수(inequality constraint function), hj(x)를 등식 제약함수라고 한다. 부등식, 등식 제약함수는 편의상 다음과 같이 벡터 형태로 표현하기도 한다.

 

g(x)=[g1(x)gm(x)]0h(x)=[h1(x)hk(x)]=0

 

여기서 부등식과 등식은 벡터 함수 g(x),h(x)의 성분별로 적용된다.

 

 

만약 제약조건을 만족하는 x값이 존재하지 않는다면 최적화 문제는 실행 불가능(infeasible)이라고 하는데, 그 때의 최소값은 p=가 된다.

부등식 제약조건이 있는 경우 등식 제약조건만 있을 때와 비슷한 방법으로 라그랑지 곱수를 도입하여 다음과 같이 라그랑지안 함수를 만들 수 있다.

 

L(x,μ,λ)=f(x)+j=1mμjgj(x)+j=1kλjhj(x)=f(x)+μTg(x)+λTh(x)

 

등식 제약조건만 있을 때는 최적화 변수 x와 라그랑지 곱수에 대해서 라그랑지안의 그래디언트를 계산했지만 부등식 제약조건이 포함되면 이를 고려한 추가적인 수식이 더 필요한데, 이를 KKT(Karush-Kuhn-Tucker) 조건이라고 한다.

KKT 조건은 선형 및 비선형 최적화 문제에서 최적해를 구하기 위한 핵심적인 조건이다.

KKT 조건은

          1. 선형 프로그래밍(LP, linear programming)문제에서는 최적화의 필요충분조건이다.

          2. 컨벡스(볼록, convex) 최적화 문제에서는 최적화의 필요충분조건이다.

          3. 비컨벡스(non-convex) 최적화 문제에서는 최적화의 필요조건이다.

여기서 비컨벡스 최적화 문제는 딥러닝 모델의 학습에서 일반적으로 나타나는 최적화 문제다.

 

 

 

댓글