Support Vector Machine-2

김민재·2024년 6월 10일
0

ML

목록 보기
14/17

지난글에 간단히 SVM이 무엇인지, 우리가 문제를 어떻게 formulation해야 하는지를 살펴보았다.

기존의 constrained optimization문제를 unconstrained optimization으로 풀수있게 해주는 놀라운 발견을 예시로 잠시 살펴보겠다.

쉽게 생각하기 위해 1D 그래프를 보자.
f(x)f(x)의 minimum을 찾으려 한다. 그럴때 왼쪽의 경우에는 unconstrained optimization 문제이고, 내 interval (,+)(-\infin,+\infin)안에 있으므로 Interior optima라고 한다.

그런데, 어느순간 우리가 xxaa보다 절대 작아지지 않는다는 조건을 얻었다고 하자.
그렇다면 우리는 x<ax < a는 관심없는 영역이기때문에, Infeasible domain이라 하고, x>ax>a 의 영역을 feasible domain이라 한다.
그럼 우린 이제 feasible domain만 생각하면 되기때문에 언제나 fminf_{\min}f(a)f(a)가 된다.
\to 즉, constrained optimization 문제는 내 optimum이 bound에 존재하기 때문에 이를 Boundary optima라고 부른다.

\Rightarrow Unconstrained 문제는 interior optima를 가지고, constrained 문제는 boundary optima를 가진다.

그렇다면 이번글에서, constrained optimization 문제를 unconstrained optimization 문제로 풀수있게 해주는 놀라운 발견인 KKT condition를 보자.


Augmented target function and Lagrange Multiplier

constrained가 없으면 최적해는 Convex Set의 내부에 존재하고, constrained가 존재하면 최적해는 constrained에 해당하는 hyperplane위에 존재하게 된다.

xx^*가 주어진 구속조건 h1(x),h2(x),,hm(x)h_1(x),h_2(x),\cdots,h_m(x)를 만족하는 최적해일때, 다음이 성립한다.

f(x)+λ1h1(x)++λmhm(x)=f(x)+i=1mλihi(x)=0T\nabla f(x^*)+\lambda _1^*\nabla h_1(x^*)+\cdots+\lambda_m^*\nabla h_m(x^*)=\nabla f(x^*)+\sum_{i=1}^m \lambda_i^*\nabla h_i(x^*) = 0^T

그리고 λi\lambda_i^*Lagrange Multiplier 이라고 한다.

그래서 이게 뭔데요 하고 느낄수있지만, Lagrange Multiplier와 구속조건의 term들을 target function에 포함시키게 된다면 , Constrained optimization을 Unconstrained optimization으로 바꿔 풀수있다.

Augmented target function

l(x,λ):=f(x)+i=1mλihi(x)where   l:Rn×RmRl(x,\lambda) := f(x) + \sum_{i=1}^m\lambda_ih_i(x) \qquad\text{where }\;l : \mathbb{R}^n \times\mathbb{R}^m \to\mathbb{R}

위 식의 ll이 바로 augmented 목적함수이다.

그렇다면 원래의 xx에 대한 함수에서 우리가 Lagrange Multiplier을 추가해 x,λx,\lambda에 대한 식으로 변하고, 그렇다면 최적해는 x,λx^*,\lambda^*가 된다.

  1. x:x^* : a local constrained minimum of original ff \to Primal variable
  2. λ:\lambda^*: the corresponding vector of Lagrange Multipliers \to Dual variable

그렇다면 우리는 최적해를 구하기 위해 gradient를 구해야 할것이고, gradient를 구하면,

l(x,λ)=(xl(x,λ)λl(x,λ))=(f(x)+i=1mλihi(x)h(x))=0T\nabla l(x^*,\lambda^*) = \binom{\frac{\partial}{\partial x}l(x^*,\lambda^*)}{\frac{\partial}{\partial \lambda}l(x^*,\lambda^*)} = \binom{\nabla f(x^*)+\sum_{i=1}^m \lambda_i^*\nabla h_i(x^*)}{h(x^*)} = 0^T

이 된다. 이러한 식을 Dual과 Primal에 대한 문제를 푼다하여 Primal Dual Problem이라 한다.

그리고 중요한것 한가지가 있는데, ll을 만들때 구속조건은 항상 negative null form으로 써줘야 한다.

이해가 잘 안될수도있으니, 역시나 예제를 살펴보자


Example

minxf(x1,x2)=(x12)2+(x22)2sub. toh1(x1,x2)=x12+x22=1\underset{x}{\min} \quad f(x_1,x_2) = (x_1-2)^2+(x_2-2)^2\\ \text{sub. to} \quad h_1(x_1,x_2)=x_1^2+x_2^2=1

이 문제를 풀려면, 위의 과정을 그대로 진행하면 된다.

  1. Augmented target function 만들기
    l(x,λ)=(x12)2+(x22)2+λ(x12+x221)l(x,\lambda) = (x_1-2)^2+(x_2-2)^2 + \lambda (x_1^2+x_2^2-1)

목적함수를 찾았으니, 이제 gradient를 구하면된다.

  1. gradient 찾기
    (xl(x,λ)λl(x,λ))=(x((x12)2+(x22)2+λ(x12+x221))λ((x12)2+(x22)2+λ(x12+x221)))\binom{\frac{\partial}{\partial x}l(x,\lambda)}{\frac{\partial}{\partial \lambda}l(x,\lambda)} = \binom{\frac{\partial}{\partial x}\left ( (x_1-2)^2+(x_2-2)^2 + \lambda (x_1^2+x_2^2-1)\right )}{\frac{\partial}{\partial \lambda}((x_1-2)^2+(x_2-2)^2 + \lambda (x_1^2+x_2^2-1))}
    즉,
    x1,x2,λ\frac{\partial}{\partial x_1}, \frac{\partial}{\partial x_2}, \frac{\partial}{\partial \lambda}
    이렇게 3개를 구하고 연립방정식을 풀면된다!

KKT Condition: Equality Constraints와 Inequality Constraints가 모두 존재할 때 optimum의 조건

아래와 같이 equality,Inequality constraint가 둘다 존재할때는

Augmented target function을 다음처럼 정의할 수 있고,

l(x,λ,α):=f(x)+i=1mλihi(x)+j=1lαjgj(x)l(x,\lambda,\alpha):=f(x)+\sum_{i=1}^m\lambda_i h_i(x)+\sum_{j=1}^l \alpha_j g_j(x)

이때의 optimum xx^*KKT Condition을 만족한다.

f(x)+i=1mλihi(x)+j=1lαjgj(x)=0T(stationary)hi=0,  gj0(primal feasibility)αj0,  (λi0)(dual feasibility)αjgj=0(complementary slackness)\begin{aligned} &\nabla f(x^*) + \sum_{i=1}^{m} \lambda_i^* \nabla h_i(x^*) + \sum_{j=1}^{l} \alpha_j^* \nabla g_j(x^*) = 0^T \quad \text{(stationary)} \\ &h_i = 0, \; g_j \leq 0 \quad \text{(primal feasibility)} \\ &\alpha_j \geq 0, \; (\lambda_i \neq 0) \quad \text{(dual feasibility)} \\ &\alpha_j g_j = 0 \quad \text{(complementary slackness)} \end{aligned}

그렇다면 이제 원래의 문제로 돌아와서, SVM일때의 구속조건은

t(i)(w0+wTx(i))1t^{(i)}\left(w_0 + w^T x^{(i)} \right)\ge 1

이므로 SVM의 Augmented target function을 정의하면,

l(w,w0,α):=12wTwi=1mα(i)(t(i)(w0+wTx(i))1)l(w, w_0, \alpha) := \frac{1}{2} w^T w - \sum_{i=1}^{m} \alpha^{(i)} \left( t^{(i)} (w_0 + w^T x^{(i)}) - 1 \right)

이 되고, optimum은 KKT Condition을 만족해야 한다.


Kernel Trick

예전에 봤던 이러한 exclusive XOR문제는 single perceptron으로 절대 구분할 수 없다!
WHY? \to VC dimension이 2이기 때문이다.

근데 이것을 single perceptron으로 구분하게 하는 방법이 존재하는데, 이게 Kernel method이다.

(이 예제에서는 x1,x2x_1, x_2의 부호를 곱하는 방법으로 구분 가능)

다음처럼 2차원 벡터를 3차원으로 mapping하는 함수

ϕ(x)=ϕ([x1x2])=(x122x1x2x22)\phi(x) = \phi \left( \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \right) = \begin{pmatrix} x_1^2 \\ \sqrt{2} x_1 x_2 \\ x_2^2 \end{pmatrix}

가 있다고 하자.

그렇다면 2차원 벡터 a,ba, b에 대해 위의 mapping을 거친 후에 dot product를 계산하면,

ϕ(a)Tϕ(b)=(a12,2a1a2,a22)(b122b1b2b22)=a12b12+2a1b1a2b2+a22b22=(a1b1+a2b2)2=([a1a2][b1b2])2=(aTb)2\begin{aligned} \phi(a)^T \phi(b) &= \left( a_1^2, \sqrt{2}a_1a_2, a_2^2 \right) \begin{pmatrix} b_1^2 \\ \sqrt{2}b_1b_2 \\ b_2^2 \end{pmatrix} = a_1^2b_1^2 + 2a_1b_1a_2b_2 + a_2^2b_2^2 \\ &= (a_1b_1 + a_2b_2)^2 = \left( \begin{bmatrix} a_1 & a_2 \end{bmatrix} \begin{bmatrix} b_1 \\ b_2 \end{bmatrix} \right)^2 = (a^T b)^2 \end{aligned}

\to mapping된 벡터의 dot product가 원래 벡터의 dot product에 제곱을 한것과 같다!

이를 전에 구한 Augmented target function에 대입하면, 여전히 convex한 함수이므로 똑같이 w,w0,αw^*,w_0^*,\alpha^*를 구할 수 있다.
그리고 이 방법을 Kernel Trick이라 한다.

  • 일반적으로 많이 쓰는 kernel은 다음과 같다.

0개의 댓글