[ML] SVM

이정연·3일 전

ML

목록 보기
6/7

공부 기록

1. 마진과 서포트 벡터

  • 분류 학습의 가장 기본적인 아이디어: 클래스를 잘 나누는 결정 경계/초평면 찾는 것 ⇒ 새로운 데이터에 대해서도 견고한 경계
  • 서포트 벡터: 결정 경계와 가장 가까운 값
  • 마진: 결정 경계(직선)와 서포트 벡터(점) 사이의 거리 → 점과 직선 사이의 거리
    • 결정 경계에서 양쪽 서포트 벡터로의 거리는 같다 (→ 하나만 구해서 x2 해도 됨)
    • 마진은 클수록 좋음 → 데이터가 잘 벌어져 있다 → 분류를 잘한다

⇒ 마진을 최대화 하는 결정 경계를 구해보자

2. 수학적 모델링

  • 초평면

    • 어떤 n차원 공간에서 한 차원 낮은 n-1 차원의 subspace ex1) 3차원 공간에서 초평면: 면, 2차원 공간에서 초평면: 선 ex2) *전제: 벡터의 크기(길이)가 1이여함
      • 법선 벡터 w=[w1,w2]Tw = [w_1, w_2]^T 에 대해 원점과의 거리가 dd인 직선의 방정식 → 법선 벡터는 직선과 수직임 (2차원)
      • 법선 벡터 w=[w1,w2,w3]Tw = [w_1, w_2, w_3]^T 에 대해 원점과의 거리가 dd인 직선의 방정식 → 법선 벡터는 평면과 수직 (3차원
    • 일반적으로 선형방정식으로 묘사 됨 (*차원에 따라 ww의 개수는 달라짐)
      WTx+b=0W^Tx+b =0
      • w=[w_1, w_2, w_3]^T: 법선 벡터 → 초평면의 방향 결정 (수직 방향)
      • b: 초평면과 원점과의 거리 (법선 벡터의 크기가 1일 때만 성립)
    • 이때 점 x에서 초평면까지의 거리 d → 점과 직선 사이의 거리 공식
      d=∣wTx+b∣∣∣w∣∣d= \frac{|w^Tx+b|}{||w||}
  • 초평면만 주어지면 거리 구할 수 있는 이유 (수업 필기 내용)

    ⇒ 만약 선형 분류가 가능하다고 가정한다면 위와 같은 초평면 (wT+b=0)\mathbf {(w^T+b=0)} 이 존재한다.

    yi=1y_i =1 이면 (wT+b>0)\mathbf {(w^T+b>0)} 이고, yi=0y_i =0 이면 (wT+b<0)\mathbf {(w^T+b<0)} 이다.

    ⇒ 초평면의 양쪽을 가장 가까운 샘플인 서포트 벡터와 거리를 같게 가정함 (δ\delta는 거리에 해당함)

    스케일링 (양변을 δ\delta로 나눔)

    • 등호는 서포트 벡터에서 성립함
    • 선형 분리가 가능하다고 가정했으므로 이런 부등식을 만족시키는 wnewT,bneww^T_{new}, b_{new}가 항상 존재함
  • 그림

    • 임의의 점 x에서 초평면까지의 거리 d
      xx
    • 마진: 초평면과 서포트벡터 사이의 거리 → 최대화 해야함
      dx0=∣wTx0+b∣∣∣w∣∣=1∣∣w∣∣d_{x_0}=\frac{|w^Tx_0+b|}{||w||} =\frac{1}{||w||}
      dx1=∣wTx1+b∣∣∣w∣∣=1∣∣w∣∣d_{x_1}=\frac{|w^Tx_1+b|}{||w||} =\frac{1}{||w||}
      margin=2∣∣w∣∣margin = \frac {2}{||w||}
  • 최적화 문제

    • 최적화 문제로 바꾸려면 마진에 역수 취하면 됨 → 최소화 문제로 바뀜 !image.png
      • 제곱한 이유: 해를 구하기 더 쉽기 때문
    • 라그랑주 함수는 그냥 참고용
  • 닫힌해 항상 존재 → 데이터만 같다면 항상 같은 해 도출

  • S.V 만 안바뀌면 SVM은 항상 고정

  • S.V 바뀌면 SVM도 바뀜

3. 변형

;우리에게 주어진 데이터가 선형 분리 안될 때

소프트 마진(↔ 하드 마진)

  • 몇몇의 샘플들에 대해서는 조건식을 만족하지 않아도 되도록 함
  • 조건식을 만족하지 않는 경우 yi=0→wTx+b>0y_i =0 → w^Tx + b > 0

  • 위에 손실 함수 미분 불가능 → 대리 손실 찾아야함 ⇒ 볼록이고 연속인 함수 사용

커널 트릭

  • 차원 뻥튀기 → 고차원 공간에서 선형적으로 분리할 수 있다고 가정하고, 고차원 내적을 직접 계산하지 않고 원래 차원에서 간접적으로 계산
K(x,x′)=ϕ(x)Tϕ(x′)K(x,x') = \phi(x)^T\phi(x')

4. 서포트 벡터 회귀

  • 초평면을 회귀식으로 사용 !image.png

!image.png

profile
아 몰라몰라 안해안해

0개의 댓글