Quadratic programming

이번 글에서는 지난 글부터 다루고 있는 여러 type of optimization problem들을 계속해서 알아보는 것의 일환으로, 다항적 체계의 관점에서 선형 계획법의 연장선이라고 간주되는 Quadrtic programming에 대해 알아본다.

A quadratic program, 줄여서 QP는 다음과 같은 형태의 최적화 문제이다.

여기서 는 optimization variable이고, 는 문제를 정의하는 데이터이다.

목적함수는

로 주어진다. 첫 번째 항 는 quadratic term이고, 두 번째 항 는 linear term이다. 제약조건은 처럼 linear inequality로 주어진다.

따라서 QP는 간단히 말해

를 가지는 최적화 문제이다.

또한 QP가 convex하려면

이어야 한다. 즉, 가 positive semidefinite이어야 한다.

이번 글에서는 QP를 실제로 푸는 방법은 다루지 않는다. 대신 다음 세 가지 예시가 어떻게 QP의 일반형으로 표현되는지만 확인한다.


1. Example: portfolio optimization

첫 번째 예시는 portfolio optimization이다.

투자자가 개의 자산에 돈을 나누어 투자한다고 하자. 이때 번째 자산에 투자하는 비율이라고 하자. 그러면 전체 투자 비율의 합은 1이어야 하므로

이다. 또한 short selling을 허용하지 않는다면

이어야 한다.

각 자산의 기대수익률을 모은 벡터를 라고 하고, 자산 수익률의 covariance matrix를 라고 하자. 그러면 포트폴리오의 기대수익률은

이고, 포트폴리오의 위험은

로 나타낼 수 있다.

따라서 포트폴리오 최적화 문제는 다음과 같이 쓸 수 있다.

여기서 는 위험을 얼마나 싫어하는지를 나타내는 parameter이다.

목적함수는

의 형태이다.

QP는 보통 minimize 형태로 쓰기 때문에 위 문제를 minimize 문제로 바꾸면

이 된다.


1.1 Numerical example

세 개의 자산이 있다고 하자.

즉, 세 자산의 기대수익률은 각각 이다. 공분산 행렬의 대각성분은 각 자산의 variance를 나타내므로, 이 예시에서는 세 번째 자산이 가장 위험한 자산이다.

이때 문제는

이다.

이제 이 문제가 QP의 일반형

에 어떻게 들어가는지 확인하자.

먼저 optimization variable을

라고 둔다.

목적함수의 quadratic term은 이다. QP 일반형에서는 quadratic term이 이므로,

가 되어야 한다. 따라서

이다.

즉,

linear term은 이므로

이제 제약조건을 형태로 쓰자.

제약조건 은 두 개의 inequality로 쓸 수 있다.

또한 도 linear inequality이다.

따라서

결국 이 portfolio optimization 문제는

꼴로 쓸 수 있으므로 QP이다.


2. Example: support vector machine

두 번째 예시는 support vector machine, 줄여서 SVM이다.

SVM은 Data classification 문제에서 자주 등장한다. 데이터가 , 으로 주어졌다고 하자. 여기서 는 feature vector이고,

이다.

즉, 각 데이터는 두 class 중 하나에 속한다. 이면 positive class, 이면 negative class라고 생각할 수 있다.


2.1 Linear classifier and decision boundary

선형 SVM에서는 다음과 같은 함수를 사용한다.

여기서 는 weight vector이고, 는 bias term이다.

SVM은 의 부호를 보고 class를 분류한다.

이면 class로 분류하고,

이면 class로 분류한다.

따라서 두 class를 나누는 경계는

이다.

이 경계를 decision boundary라고 한다.

예를 들어 2-dimensional data라면 decision boundary는 직선이고, 더 높은 차원에서는 hyperplane이 된다.


2.2 Margin boundary

SVM은 단순히 데이터를 올바르게 나누는 decision boundary만 찾는 것이 아니다.

SVM은 decision boundary와 데이터 사이의 간격을 가능한 크게 만들고 싶어한다. 이 간격을 margin이라고 한다.

이를 위해 SVM에서는 decision boundary 양옆에 두 개의 margin boundary를 생각한다.

즉, SVM에서는 다음 세 개의 평행한 hyperplane을 생각할 수 있다.

가운데에 있는

이 실제 decision boundary이고, 양옆의 두 hyperplane

이 margin boundary이다.

SVM margin boundaries

이상적인 경우, class의 데이터는 오른쪽 margin boundary 바깥에 있어야 한다. 즉,

을 만족해야 한다.

반대로 class의 데이터는 왼쪽 margin boundary 바깥에 있어야 한다. 즉,

을 만족해야 한다.

이 두 조건은 하나의 식으로 합칠 수 있다.

왜 그런지 확인해보자.

먼저 이면,

이 된다.

즉, positive class의 데이터가 오른쪽 margin boundary 바깥에 있다는 뜻이다.

반대로 이면,

이므로

이 된다.

즉, negative class의 데이터가 왼쪽 margin boundary 바깥에 있다는 뜻이다.

따라서 조건

은 각 데이터가 자기 class 쪽 margin boundary 바깥에 있기를 요구하는 조건이다.


2.3 Why does SVM minimize ?

이제 margin의 폭을 생각해보자.

일반적으로 두 평행한 hyperplane

사이의 거리는

이다.

SVM의 decision boundary는

이고, 오른쪽 margin boundary는

이다.

이 둘 사이의 거리는

이다.

마찬가지로 decision boundary와 왼쪽 margin boundary

사이의 거리도

이다.

따라서 두 margin boundary 사이의 전체 폭은

이다.

SVM은 margin을 크게 만들고 싶다. 즉,

를 크게 만들고 싶다.

이는 곧

를 작게 만드는 것과 같다.

그래서 SVM의 목적함수에는

라는 term이 들어간다.

여기서 는 margin을 크게 만드는 것을 얼마나 중요하게 볼 것인지 조절하는 parameter이다.

정리하면,

따라서 SVM은 를 작게 만드는 방향으로 classifier를 찾는다.


2.4 Soft-margin SVM

지금까지의 설명은 모든 데이터가 margin boundary 바깥에 잘 놓여 있다고 가정한 것이다.

즉, 모든 데이터가

을 만족한다고 생각했다.

하지만 실제 데이터에서는 이런 조건을 완벽하게 만족하기 어려울 수 있다. 데이터에 noise가 있거나, 두 class가 완전히 분리되지 않을 수도 있다.

그래서 soft-margin SVM은 margin 조건을 어느 정도 위반하는 것을 허용한다. 대신 위반한 만큼 penalty를 준다.

각 데이터의 margin은

이다.

만약

이면 margin 조건을 만족하므로 penalty가 없다.

반대로

이면 margin이 부족하다. 부족한 정도는

이다.

따라서 하나의 데이터에 대한 penalty를 다음과 같이 정의한다.

이것이 hinge loss이다.

margin이 1 이상이면 hinge loss는 0이다. 이미 충분히 잘 분류되었기 때문이다.

반대로 margin이 1보다 작으면 hinge loss는 양수가 된다. 즉, margin을 충분히 확보하지 못한 만큼 penalty가 생긴다.

결국 soft-margin SVM은 다음 두 가지를 동시에 고려한다.

첫째, margin을 크게 만들기 위해 를 작게 만든다.

둘째, margin 조건을 위반한 데이터에 대해서는 hinge loss로 penalty를 준다.

따라서 soft-margin SVM은 다음 optimization problem으로 표현된다.

첫 번째 항

은 large margin을 만들기 위한 regularization term이다.

두 번째 항

은 margin violation에 대한 평균 penalty이다.


2.5 SVM as QP

이제 위 SVM 문제가 왜 QP인지 보자.

soft-margin SVM은

이다.

이 식은 max가 들어 있기 때문에 바로 QP 일반형처럼 보이지 않는다. 이를 QP로 바꾸기 위해 auxiliary variable 을 도입한다.

번째 데이터의 hinge loss를 대신한다고 생각하자. 즉,

가 되도록 만들면 된다.

이 조건은 다음 두 조건과 같다.

따라서 SVM은 다음과 같이 쓸 수 있다.

첫 번째 제약조건을 정리하면

이다.

따라서 SVM은

가 된다.

목적함수에는 라는 quadratic term이 있고, 제약조건은 모두 에 대한 linear inequality이다.

따라서 SVM은 QP이다.


2.6 Numerical example

간단하게 1-dimensional data 5개를 보자.

모델은

이고, 이라고 하자.

그러면 SVM 문제는

이다.

auxiliary variable 를 도입하면

각 데이터에 대해 제약조건을 쓰면 다음과 같다.

첫 번째 데이터는 이므로

두 번째 데이터는 이므로

세 번째 데이터는 이므로

네 번째 데이터는 이므로

다섯 번째 데이터는 이므로

따라서 QP는

이제 이 문제를 QP 일반형의 로 직접 써보자.

optimization variable은

이다.

목적함수는

이다.

QP 일반형의 목적함수

와 비교하면, 이차항은 에만 존재한다.

따라서

이어야 하므로

이다.

나머지 변수에 대한 quadratic term은 없으므로

linear term은

이므로

이제 제약조건을 형태로 정리한다.

이고,

이다.

또한

이고,

이다.

마지막으로

이다.

여기에 을 추가하면,

따라서 이 SVM 예시는

꼴로 정확히 표현된다.


3. Example: LASSO

세 번째 예시는 LASSO이다.

LASSO는 regression 문제에서 자주 사용된다. 기본적인 least squares 문제는

이다.

여기서 는 data matrix이고, 는 response vector이다. 는 우리가 찾고 싶은 regression coefficient vector이다.

least squares는 prediction error를 줄이는 방향으로 를 선택한다. 즉,

를 작게 만드는 를 찾는다.

LASSO는 여기에 -penalty를 추가한다.

여기서

이다.

즉, LASSO는 다음 두 가지를 동시에 고려한다.

첫 번째 항은 data를 잘 설명하게 만들고, 두 번째 항은 coefficient들의 크기가 너무 커지지 않도록 막는다.


3.1 Why L1 penalty?

LASSO의 핵심은 -penalty이다.

이므로, 이 항은 coefficient들의 절댓값 합을 작게 만들려고 한다.

가 클수록 coefficient들은 더 강하게 0 쪽으로 밀린다. 특히 -penalty는 어떤 coefficient를 정확히 0으로 만드는 효과가 있다. 그래서 LASSO는 feature selection에 사용된다.

예를 들어 이 되면, 번째 feature는 예측에 사용되지 않는 것과 같다. 따라서 LASSO는 regression을 하면서 동시에 중요한 feature만 남기는 역할을 할 수 있다.

다만 이 글의 목적은 LASSO를 푸는 것이 아니라, LASSO가 QP 형태로 바뀐다는 것을 확인하는 것이다.


3.2 LASSO as QP

LASSO가 QP처럼 바로 보이지 않는 이유는 absolute value가 들어 있기 때문이다.

는 그대로는 quadratic function도 아니고 linear function도 아니다. 하지만 auxiliary variable을 도입하면 absolute value를 linear constraint로 표현할 수 있다.

새로운 변수 를 도입해서

가 되도록 하자.

이 조건은 다음 두 조건과 같다.

따라서 에 등장하는 absolute value는 선형제약으로 표현할 수 있다.

즉,

를 직접 다루는 대신, auxiliary variable 를 도입하고 목적함수에

를 넣으면 된다.

이제 LASSO는 다음과 같이 쓸 수 있다.

여기서 least squares term 에 대한 quadratic function이고, 제약조건은 모두 linear inequality이다. 따라서 LASSO는 QP이다.


3.3 Numerical example

두 개의 feature가 있는 regression 문제를 보자.

그러면 LASSO 문제는

이다.

먼저

이므로

따라서

이를 전개하면

이고,

이다. 따라서

양변에 를 곱하면

상수항 는 최적해의 위치에 영향을 주지 않으므로 QP 형태를 확인할 때는 생략해도 된다.

따라서 LASSO는 다음 문제와 같은 형태이다.

이제 absolute value를 없애기 위해 auxiliary variable 를 도입한다.

가 되도록 하면 된다. 이는 각각

그리고

와 같다.

따라서 LASSO는 다음 QP로 바뀐다.

이제 이를 로 쓰자.

optimization variable은

이다.

목적함수

와 비교하면

이고,

제약조건은

이다. 이를 형태로 쓰면

따라서

따라서 이 LASSO 문제도

꼴로 표현된다.