[optimization] Dual Problem

YJCho·2024년 11월 4일

Optimization

목록 보기
2/2

원 문제(primal problem) : 제약 있는 최적화 문제
→ 쌍대 문제(dual problem)라고 하는 깊게 관련된 다른 문제로 표현 가능

*일반적으로 쌍대 문제의 해는 원 문제 해의 하한값
But!! 어떤 조건 하에서는 원 문제와 똑같은 해 제공함.
→ SVM에서 이 조건 만족
→ 원 문제 또는 쌍대 문제 중 선택(골라골라~)

선형 SVM 목적 함수의 쌍대 형식

  • QP 솔버로 식을 최소화하는 벡터 α^\hat{\alpha}을 찾았다면 원 문제 식 최소화하는 w^\hat{\mathbf{w}}b^\hat{b}을 계산 가능

  • 쌍대 문제에서 구한 해로 원 문제의 해 계산

    w^=i=1mα^(i)t(i)x(i)\hat{\mathbf{w}} = \sum_{i=1}^{m} \hat{\alpha}^{(i)} t^{(i)} \mathbf{x}^{(i)}
b^=1nsi=1m(t(i)w^Tx(i))α^(i)>0\hat{b} = \frac{1}{n_s} \sum_{i=1}^{m} \left( t^{(i)} - \hat{\mathbf{w}}^T \mathbf{x}^{(i)} \right)_{\hat{\alpha}^{(i)} > 0}

커널 SVM

  • 2차 다항식 매핑 함수
    Equation 5-8. Second-degree polynomial mapping
ϕ(x)=ϕ((x1x2))=(x122x1x2x22)\phi(\mathbf{x}) = \phi\left( \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} \right) = \begin{pmatrix} x_1^2 \\ \sqrt{2} x_1 x_2 \\ x_2^2 \end{pmatrix}
  • 2차 다항식 매핑을 위한 커널 트릭

Equation 5-9. Kernel trick for a 2^{nd}-degree polynomial mapping

ϕ(a)Tϕ(b)=(a122a1a2a22)T(b122b1b2b22)=a12b12+2a1b1a2b2+a22b22\phi(\mathbf{a})^T \phi(\mathbf{b}) = \begin{pmatrix} a_1^2 \\ \sqrt{2} a_1 a_2 \\ a_2^2 \end{pmatrix}^T \begin{pmatrix} b_1^2 \\ \sqrt{2} b_1 b_2 \\ b_2^2 \end{pmatrix} = a_1^2 b_1^2 + 2 a_1 b_1 a_2 b_2 + a_2^2 b_2^2
=(a1b1+a2b2)2=(a1a2)T(b1b2)2=(aTb)2= (a_1 b_1 + a_2 b_2)^2 = \begin{pmatrix} a_1 \\ a_2 \end{pmatrix}^T \begin{pmatrix} b_1 \\ b_2 \end{pmatrix}^2 = (\mathbf{a}^T \mathbf{b})^2

결론 : ϕ\phi가 2차 다항식 변환이라면 백터 접곱을 간단하게 바꿀 수 있음
→ 실제로 후련 샘플 변환할 필요 X

장점 : 계산 측에서 효율적

2차 다항식 커널 : K(a,b)=(aTb)2K(\mathbf{a}, \mathbf{b}) = (\mathbf{a}^T \mathbf{b})^2

커널

머신러닝에서 커널은 변환 ϕ\phi를 계산하지 않고도 또는 아예 모르더라도
원래 벡터에 기반하여 점곱을 계산할 수 있는 함수다.

일반적인 커널들
Equation 5-10. Common kernels

  • Linear: 선형

    K(a,b)=aTbK(\mathbf{a}, \mathbf{b}) = \mathbf{a}^T \mathbf{b}
  • Polynomial: 다항식

    K(a,b)=(γaTb+r)dK(\mathbf{a}, \mathbf{b}) = \left( \gamma \mathbf{a}^T \mathbf{b} + r \right)^d
  • Gaussian RBF: 가우스 RBF

    K(a,b)=exp(γab2)K(\mathbf{a}, \mathbf{b}) = \exp \left( -\gamma \| \mathbf{a} - \mathbf{b} \|^2 \right)
  • Sigmoid: 시그모이드

    K(a,b)=tanh(γaTb+r)K(\mathbf{a}, \mathbf{b}) = \tanh \left( \gamma \mathbf{a}^T \mathbf{b} + r \right)

커널 SVM으로 예측
Equation 5-11. Making predictions with a kernelized SVM

hw^,b^(ϕ(x(n)))=w^Tϕ(x(n))+b^=(i=1mα^(i)t(i)ϕ(x(i)))Tϕ(x(n))+b^h_{\hat{\mathbf{w}}, \hat{b}} \left( \phi(\mathbf{x}^{(n)}) \right) = \hat{\mathbf{w}}^T \phi(\mathbf{x}^{(n)}) + \hat{b} = \left( \sum_{i=1}^{m} \hat{\alpha}^{(i)} t^{(i)} \phi(\mathbf{x}^{(i)}) \right)^T \phi(\mathbf{x}^{(n)}) + \hat{b}
=i=1mα^(i)t(i)(ϕ(x(i))Tϕ(x(n)))+b^= \sum_{i=1}^{m} \hat{\alpha}^{(i)} t^{(i)} \left( \phi(\mathbf{x}^{(i)})^T \phi(\mathbf{x}^{(n)}) \right) + \hat{b}
=i=1mα^(i)t(i)K(x(i),x(n))+b^for α^(i)>0= \sum_{i=1}^{m} \hat{\alpha}^{(i)} t^{(i)} K(\mathbf{x}^{(i)}, \mathbf{x}^{(n)}) + \hat{b} \quad \text{for } \hat{\alpha}^{(i)} > 0

커널 트릭으로 사용한 편향 계산
Equation 5-12. Computing the bias term using the kernel trick

b^=1nsi=1m(t(i)w^Tϕ(x(i)))α^(i)>0=1nsi=1m(t(i)(j=1mα^(j)t(j)ϕ(x(j)))Tϕ(x(i)))α^(i)>0\hat{b} = \frac{1}{n_s} \sum_{i=1}^{m} \left( t^{(i)} - \hat{\mathbf{w}}^T \phi(\mathbf{x}^{(i)}) \right)_{\hat{\alpha}^{(i)} > 0} = \frac{1}{n_s} \sum_{i=1}^{m} \left( t^{(i)} - \left( \sum_{j=1}^{m} \hat{\alpha}^{(j)} t^{(j)} \phi(\mathbf{x}^{(j)}) \right)^T \phi(\mathbf{x}^{(i)}) \right)_{\hat{\alpha}^{(i)} > 0}
=1nsi=1m(t(i)j=1mα^(j)t(j)K(x(i),x(j)))α^(i)>0= \frac{1}{n_s} \sum_{i=1}^{m} \left( t^{(i)} - \sum_{j=1}^{m} \hat{\alpha}^{(j)} t^{(j)} K(\mathbf{x}^{(i)}, \mathbf{x}^{(j)}) \right)_{\hat{\alpha}^{(i)} > 0}
profile
호로록

0개의 댓글