Convex optimization & Quadratic programming

 

last update datetime: Feb 06, 2020 1:34 AM

Optimization problem

일단 최적화 이론부터 잠시 살펴보자.

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled.png

출처: https://wikidocs.net/17203

Mathematical optimization problem은. 최적화 해야할 variable이 있고, objecctive function f가 있는 상태에서, inequality constraint function, equality constraint function 등이 존재하는 경우 이다. 이 제약조건을 만족하는 경우에서 objective function f 를 최소로 만드는 x’ 를 찾는것이다.

Convex Optimization problem

위 inequality constraint function이 convex function 이고, equality constraint function이 affine function인 경우에 convex optimization problem 이라고 할 수 있다.

Convex set

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%201.png

결국 Set 이 오목한 구간이 없고, 볼록하기만 해야한다. 그걸 위 수식으로 나타낼 수 있다.

Convex function

convex funcion 또한 동일하다. domain이 convex set에 있어야 하므로 볼록 함수가 되야한다.

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%202.png

Convex function은 볼록함수이기 때문에, local minimum이 항상 global minimum 이다.

Canonical problems

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%203.png

convex optimization problem에서 object function 과 constraint function의 유형에 따라 optimization problem을 다양한 범주로 나누고, 위와 같은 포함 관계를 가진다.

여기서 Linear programming과 quadratic programming을 알아보자.

Linear programming

General LP

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%204.png

objective function과 constraint function이 모두 affine function일 경우, 이 문제를 linear program 이라고 부른다.

이 문제는 기하학적으로, polyhedron 형태의 fessible set에 대해, affine function(c^Tx + d)을 최소화 시키는 x’ 으로도 해석된다.

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%205.png

General form 보다 조금 더 scope 이 작은 standard form도 존재한다.

Standard form

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%206.png

constraint 를 equation 만 가능하게하고, target variable은 non-negative variable 만 가능하도록 제한한다.

또한, 모든 general LP 는 다음 과정으로 standard LP 로 변형시킬 수 있다고 한다.

Convert general form to standard form

  1. slack variable을 사용하여 inequality constraint 를 equality constraint 로 변환

    https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%207.png

  2. variable x 를 두 개의 non-negative variable로 치환. x=(x^+) − (x^−)이고, (x^+), (x^−) ⪰0.

    https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%208.png

  3. 아래 행렬 정의

    https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%209.png

  4. 수식을 위 행렬로 변환

    https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%2010.png

Quadratic programming

quadratic programming 은 objective function이 이차식(convex quadratic)이고, constraint function이 모두 affine funtion인 convex optimization problem 이다.

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%2011.png

linear programming 때와 비슷하게, 기하학적 polyhedron 형태의 fesible set 에서 objective function을 최소화 시키는 x’ 을 찾는것으로 해석된다.

linear program 때는 affine 변환에 사용되는 방향을 수선의 방향으로 설정해서 찾았다면, Qp 에서는 x’ 에서의 미분값의 수직 방향으로 하는듯하다.

https://strutive07.github.io/assets/images/Convex_optimization_Quadratic_programming/Untitled%2012.png

Reference

https://www.youtube.com/watch?v=GZb9647X8sg

위키독스

초짜 대학원생의 입장에서 이해하는 Support Vector Machine (1)

라그랑주 승수법 (Lagrange Multiplier Method)