728x90
support vector machine

support vector machine

  • 임의 dataset의 decision boundary 설정 시, boundary와 가장 가까운 data point와의 간격(margin)을 최대로 하는 선을 정의
  • θTx=wTx+b\theta^T\vec{x}=w^T\vec{x}+b
    • θ0=b\theta_0=b로 해석
    • wTx=θ1x1+...+θnxnw^T\vec{x}=\theta_1x_1+...+\theta_nx_n
    • y = -1 or 1로 나타남(binary classification)
  • 벡터 p=xnx\vec{p}=x_n-x에 대해
    • wTwp=1w[wTxn+b(wxT+b)]=1w\frac{\vec{w}^T}{||w||}\vec{p}=\frac{1}{||w||}[\vec{w}^Tx_n+b-(wx^T+b)]=\frac{1}{||w||}
    • wTxn+b=1|\vec{w}^Tx_n+b|=1인 조건 하에 1w\frac{1}{||w||}를 최대화
      • wTxn+b=yn(wTxn+b)|\vec{w}^Tx_n+b|=y_n(\vec{w}^Tx_n+b), wTxn+b\vec{w}^Tx_n+b의 부호에 의해 +1 혹은 -1로 값이 결정됨
      • 벡터 w\vec{w}에 대해 w2=wTw||\vec{w}||^2=w^Tw
      • 1w\frac{1}{||w||}의 최대화 = w||w||의 최소화, 즉 미분값을 최소화하게 되므로 w=12wTw||w||=\frac{1}{2}w^Tw

Lagrange multiplier

  • f(x,y)=ax+by=kf(x, y) = ax + by = k, g(x,y)=x2+y2=r2g(x, y) = x^2+y^2 = r^2인 함수 f, g를 가정
    • f와 g가 접하게 되면 gradient가 동일 : f=λg\nabla f = \lambda\nabla g
    • λ\lambda : lagrange multiplier
    • L(x,y,λ)=f(x,y)λ(g(x,y)+c)L(x,y,\lambda) = f(x,y) - \lambda(g(x,y) + c)
  • L=Lx=fxλgx=0\nabla L=\frac{\partial L}{\partial x} = \frac{\partial f}{\partial x} - \lambda\frac{\partial g}{\partial x} = 0
    • fx=λgx\frac{\partial f}{\partial x}=\lambda\frac{\partial g}{\partial x}
  • SVM 계산에 있어 f=12wTwf=\frac{1}{2}w^Tw, g=yn(xTxn+b)10g=y_n(x^Tx_n+b)-1\geq0
    • L(w,b,λ)=12wTw+λi[yi(wTxi+b)1]L(w,b,\lambda) = \frac{1}{2}w^Tw+\sum\lambda_i[-y_i(w^Tx_i+b)-1]
    • Lw=0=wλiyixiw=λiyixi\frac{\nabla L}{\partial w}=0=w-\sum\lambda_iy_ix_i\\\rArr w=\sum\lambda_iy_ix_i로 SVM weight w 계산
    • Lb=0=λiyi\frac{\nabla L}{\partial b}=0=\sum\lambda_iy_i
  • L(w,b,λ)=12wTw+λi[yi(wTxi+b)1]L(w,b,\lambda) = \frac{1}{2}w^Tw+\sum\lambda_i[-y_i(w^Tx_i+b)-1]에서
    • w=λiyixiw=\sum\lambda_iy_ix_i
    • λiyi=0\sum\lambda_iy_i=0
    • L(w,b,λ)=λi+12wTwλiyiwTxi=λi12wTwL(w,b,\lambda)=\sum\lambda_i+\frac{1}{2}w^Tw-\sum\lambda_iy_iw^Tx_i\\=\sum\lambda_i-\frac{1}{2}w^Tw

How to solve SVM

  • SVM : y(wTxi+b)1y(w^Tx_i+b)\geq1일 때 12wTw\frac{1}{2}w^Tw의 최소값을 계산하는 것
  • Lagre multiplier : L(w,b,λ)=12wTwλ[yi(wiTxi+b)1]L(w, b, \lambda) = \frac{1}{2}w^Tw-\sum\lambda[y_i(w_i^Tx_i+b)-1]
    • supλL(x,λ)sup_\lambda L(x, \lambda) : λ\lambda에 대해 가질 수 있는 L의 최댓값을 찾는 것
  • SVM의 해 p=infλsupλL(x,λ)p^*=inf_\lambda sup_\lambda L(x, \lambda) : L이 가질 수 있는 최댓값 중 하한선
    • supλL(x,λ)sup_\lambda L(x, \lambda)\sum식이 음수일 땐 12wTw\frac{1}{2}w^Tw지만, 양수일 땐 무한으로 발산
    • sup값이 가질 수 있는 하한선은 즉 12wTw\frac{1}{2}w^Tw이 됨
  • Lagrange dual function : g(λ)=infw,bL(w,b,λ)g(\lambda)=inf_{w,b}L(w,b,\lambda)인 함수 g를 정의
    • λ0\lambda \geq0일 때 g(λ)pg(\lambda)\leq p^* : g=inf LL(x,λ)g=inf\ L\leq L(x, \lambda)이기 때문
    • pp^*를 구하기 어렵다면 g(λ)g(\lambda)를 구한 후 p=supλg(λ)p^*=sup_\lambda g(\lambda)를 계산하는 방법도 있음
  • g(λ)=infw,bL(w,b,λ)g(\lambda)=inf_{w,b}L(w,b,\lambda)
    • Lw=wλiyixi=0\frac{\partial L}{\partial w}=w-\sum\lambda_i y_ix_i=0
    • Lb=λiyi=0\frac{\partial L}{\partial b}=\sum\lambda_iy_i=0
    • g(λ)=12wTw+λig(\lambda)=-\frac{1}{2}w^Tw+\sum\lambda_i
728x90

+ Recent posts