[AI] SVM (1)

Jiyeahhh·2021년 11월 25일
0

[Study] AI

목록 보기
6/7

Linear Separators

  • Data를 분리할 linear hyperplane 찾기 (decision boundary, 결정 경계)

  • One Possible Solution


wTw^T : θ\theta , b:w0b : w_0

  • Another Possible Solution

  • Other Possible Solution


💡 그렇다면 어떤 linear separator가 가장 적합할까? (optimal)


💡 B1, B2 중에 어떤 게 더 좋을까?

B1이 더 좋음!!
⇒ How do you define better? → defined the margin

  • margin이 적으면 적을수록 성능↓

점과 선 사이의 거리

  • (x1,y1)(x_1, y_1)과 선 ax+by+c=0ax+by+c=0

    d=ax1+by1+ca2+b2d = \frac{|ax_1+by_1+c|}{\sqrt{a^2+b^2}}

  • (x1,y1,z1)(x_1, y_1, z_1)과 평면 ax+by+cz+d=0ax+by+cz+d=0

    d=ax1+by1+cz1+da2+b2+c2d = \frac{|ax_1+by_1+cz_1+d|}{\sqrt{a^2+b^2+c^2}}


Margin

  • Distance from example x to the seperator is

    r=wTx+bwr = \frac{w^Tx+b}{||w||}

  • margin이 가장 큰 hyperplane 선택

  • 가장 가까운 hyperplanesupport vector

  • separator의 Margin ρ는 classes 사이의 separation의 width 값


Maximum Margin Classification

  • Margin을 최대화하는 것은 직관에 따라 좋으며, 아마 거의 정확한(PAC, probably approximately correct) 이론

  • 오직 support vector만 중요하며 다른 training examples는 무시해도 됨
    ⇒ support vector 2개만 남겨놓고 나머지는 버림


💡 Linear separable 하지 못한 예시는?


⇒ 대표적인 예 : XOR 문제


Linear SVMs Mathematically

  • 모든 data의 거리(functional margin)가 적어도 1이라고 가정
  • 적어도 하나의 data가 1과 같다고 가정

  • 제약 조건 (training set {(xi,yix_i, y_i)})

    wTx+b1w^Tx+b≥ 1     if yi=1y_i = 1
    wTx+b1w^Tx+b≤ -1   if yi=1y_i = -1

  • 주어진 data를 학습하는 것은 w를 찾는 것과 같음
    margin이 가장 큰 w를 찾아야 함
    단, 제약 조건을 만족해야 함

  • Margin ρ

    ρ=2wρ = \frac{2}{||w||}


💡 최적화 문제
최적화 문제는 보통 최소화하는 문제이지만 우리는 margin을 최대화하는 게 목적임
⇒ 원래 margin에 역수를 취해서, w2\frac{||w||}{2}최소가 되도록 하는 ||w||를 찾기
(단, 제약조건을 만족하면서)

  • margin "ρ=2wρ = \frac{2}{||w||}" 최대화 = "Φ(w)=12wTwΦ(w) = \frac{1}{2}w^Tw"를 최소화

  • 제약조건 yi(wTx+b)1y_i(w^Tx + b) ≥ 1
    ⇒ 앞선 2개의 제약조건을 하나의 수식으로 표현함


  • 12wTw\frac{1}{2}w^TwQuadratic function (2차 함수)
    yi(wTx+b)1y_i(w^Tx + b) ≥ 1Linear (선형)

📌 Quadratic programming

  • 목적함수가 이차 함수이며, 제약조건이 선형일 때 최적화하는 문제
  • Lagrange multiplier(라그랑주 승수법)을 사용하여 해결할 수 있음

Constrained Optimization

📌 Equality constraints - Lagrange multiplier

  • f(x1,x2,...,xd)f(x_1, x_2, ..., x_d)에 대한 제약조건 gi(x)=0g_i(x) = 0, i=1,2,...,pi = 1, 2, ..., p
    ⇒ 제약조건이 여러 개(p개)일 수도 있음!

  • 라그랑주 승수법

  1. Lagrangian 정의

    L(x,λ)=f(x)+i=1pλigi(x)L(x, \lambda) = f(x) + \sum_{i=1}^{p}\lambda_ig_i(x)

λi\lambda_i는 dummy variable(가변수)로 Lagrange multiplier
⇒ 모든 constraint에 대해서 λ\lambda 를 곱하고 더하며, constraint가 n개 있으면 λ\lambda도 n개 있음!

  1. 미분 수행

    Lxi=0\frac{∂L}{∂x_i} = 0, i=1,2,...,d∀i = 1, 2, ..., d
    Lxi=0\frac{∂L}{∂x_i} = 0, i=1,2,...,p∀i = 1, 2, ..., p

d : x 개수
p : constraint 개수


📝 Example

  • f(x,y)=x+2yf(x,y) = x +2y최소화

  • constraint : x2+y24=0x^2+y^2-4=0


  1. Lagrangian 정의

    L(x,y,λ)=x+2y+λ(x2+y24)L(x, y, \lambda) = x + 2y + \lambda(x^2+y^2-4)

  2. 미분 수행

    Lx=1+2λx=0\frac{∂L}{∂x} = 1 + 2\lambda x = 0
    Ly=1+2λy=0\frac{∂L}{∂y} = 1 + 2\lambda y = 0
    Lλ=x2+y24=0\frac{∂L}{∂\lambda} = x^2+y^2 - 4 = 0

  3. 결과


📌 Inequality constraints - KKT

  • f(x1,x2,...,xd)f(x_1, x_2, ..., x_d)에 대한 제약조건 hi(x)0h_i(x) ≤ 0, i=1,2,...,qi = 1, 2, ..., q

  • Lagrangian

    L=f(x)+i=11λihi(x)L = f(x) + \sum_{i=1}^{1}\lambda_ih_i(x)

  • 다음과 같은 제약조건을 만족해야함 (Karush-Kuhn-Tucker 조건 (KKT))

    Lxi=0\frac{∂L}{∂x_i} = 0, i=1,2,...,d∀i = 1, 2, ..., d
    hi(x)0h_i(x) ≤ 0, i=1,2,...,q∀i = 1, 2, ..., q
    λi0\lambda_i ≥ 0, i=1,2,...,q∀i = 1, 2, ..., q
    λihi(x)=0\lambda_ih_i(x) = 0, i=1,2,...,q∀i = 1, 2, ..., q

  • KKT 조건을 직접 푸는 건 어려움


📝 Example

  • f(x,y)=(x1)2+(y3)2f(x,y) =(x-1)^2+(y-3)^2최소화

  • constraint : x+y2x+y≤2, and yxy≥x
    x+y20,xy0x+y-2≤0, x-y≤0


  1. Lagrangian 정의

    L=(x1)2+(y3)2+λ1(x+y2)+λ2(xy)L = (x-1)^2+(y-3)^2+\lambda_1(x+y-2)+\lambda_2(x-y)

  2. KKT 제약조건

    Lx=2(x1)+λ1+λ2=0\frac{∂L}{∂x} = 2(x-1)+\lambda_1+\lambda_2 = 0
    Ly=2(y3)+λ1λ2=0\frac{∂L}{∂y} = 2(y-3)+\lambda_1-\lambda_2 = 0
    λ1(x+y2)=0\lambda_1(x+y-2) = 0
    λ2(xy)=0\lambda_2(x-y)=0
    λ10,λ20,x+y2,yx\lambda_1≥0, \lambda_2≥0, x+y≤2, y≥x


💡 Case 1: λ1=0,λ2=0\lambda_1=0, \lambda_2=0

2(x1)=02(x-1)=0
2(y3)=02(y-3)=0

  • x = 1, y= 3이므로 제약조건 x+y2x+y≤2 만족 X

💡 Case 2: λ1=0,λ20\lambda_1=0, \lambda_2≠0

xy=0x-y=0
2(x1)+λ2=02(x-1)+\lambda_2=0
2(y3)λ2=02(y-3)-\lambda_2 =0

  • x = 2, y = 2, λ_2 = -2이므로 제약조건 λ20,x+y2\lambda_2≥0, x+y≤2 만족 X

💡 Case 3: λ10,λ2=0\lambda_1≠0, \lambda_2=0

x+y2=0x+y-2=0
2(x1)+λ1=02(x-1)+\lambda_1=0
2(x+1)+λ1=0-2(x+1)+\lambda_1 =0

  • x = 0, y = 2, λ_1 = 2이므로 제약조건 만족 ❗

💡 Case 4: λ10,λ20\lambda_1≠0, \lambda_2≠0

x+y2=0x+y-2=0
xy=0x-y=0
2(x1)+λ1+λ2=02(x-1)+\lambda_1+\lambda_2=0
2(y3)+λ1λ2=02(y-3)+\lambda_1-\lambda_2 =0

  • x = 1, y = 1, λ_1 = 2, λ_2 = -2이므로 제약조건 만족 X

  • 그러므로 정답은 x = 0, y = 2

Cont'd

💡 그럼 이제 우리한테 주어진 문제를 풀어보자!


  1. Lagrangian 정의

  2. Karush-Kuhn-Tucker (KKT) conditions

  • dual problem

  • w=λiyixiw = \sum\lambda_iy_ix_i, b=ykwTxkb = y_k-w^Tx_k

  • λ의 대부분이 0 값을 가지며, λ가 0이 아닌 데이터들이 support vector가 됨!

  • 새로운 data f(x)=λiyixiTx+bf(x)=\sum\lambda_iy_i{x_i}^Tx+b

  • xiTxj{x_i}^Tx_j 중요 ❗

profile
람차람차

0개의 댓글