계속지나가기
코딩스뮤
계속지나가기
전체 방문자
오늘
어제
  • 코딩스뮤:)
    • Algorithm
      • 백준 문제풀이
      • 프로그래머스 문제풀이
      • 알고리즘 이론
      • 자료구조
      • SW Expert Academy
    • 인공지능(AI)
      • LLMs
      • 자연어처리(NLP)
      • 컴퓨터비전(CV)
      • 딥러닝(DL)
      • 머신러닝(ML)
      • 인공지능기초수학
      • 선형대수학
    • 컴퓨터 세팅
    • Computer Science
      • 유닉스프로그래밍
      • 프로그래밍언어론
      • 디자인패턴
      • 클린코드
      • SW 영어
      • 리눅스
      • 논리회로
    • Server
      • Docker

블로그 메뉴

  • 홈
  • Who Am I(CV)
  • 태그

공지사항

인기 글

태그

  • 디지털이미지처리
  • 최대유량
  • 손실함수
  • NLP
  • 에지검출
  • LM
  • DigitalImageProcessing
  • ML
  • 파이썬 클린코드
  • machinelearning
  • 경사하강법
  • 지도학습
  • 머신러닝
  • 비지도학습
  • 기계학습
  • 네트워크플로우
  • 비용함수
  • 언어모델
  • SIFT
  • 패턴인식
  • MaximumFlow
  • 군집화
  • ComputerVision
  • networkflow
  • DIP
  • 결정경계
  • f1-score
  • 선형회귀
  • 알고리즘
  • 컴퓨터비전

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
계속지나가기

코딩스뮤

[핸즈온 머신러닝] 6장. 서포트 벡터 머신
인공지능(AI)/머신러닝(ML)

[핸즈온 머신러닝] 6장. 서포트 벡터 머신

2021. 12. 5. 20:11
반응형

6.  Support Vector Machine

목차

1. 분류 문제 최적화

2. 라지 마진이란?

3. 라지 마진 분류의 수학적 개념

4. 커널1

5. 커널2

6. 실전 SVM

 

1. 분류 문제 최적화


다른 관점에서 보는 로지스틱 회귀

    • $y=1 \to h_\theta(x) = 1$, 즉 $\theta^T x >> 0$ 이길 원함
    • $y=0 \to h_\theta(x) = 0$, 즉 $\theta^T x << 0$ 이길 원함
  • 데이터 하나에 대한 비용
    • $-(ylogh_\theta(x)+(1-y)log(1-h_\theta(x)))$
    • $=-y log \frac{1}{1+e^{-\theta^T x}} - (1-y)log(1-\frac{1}{1+e^{-\theta^T x}})$

Support Vector Machine

  • 로지스틱 회귀 vs. SVM
  • SVM Hypothesis
    • $
      h_\theta(x) =
          \begin{cases}
            1 & \text{if $\theta^T x >= 0$} \\
            0 & \text{otherwise}
          \end{cases}    
      $
    • 로지스틱 회귀에는 확률개념을 사용하지만, SVM에는 사용하지 않음
      • 로지스틱 회귀 : $H_\theta(x) = P(y=1 | x_j \theta)$
      • SVM의 경우 svm.predict(x)는 있으나 svm.decisionfunction(x) 즉, 확률을 구하는 함수는 없다

 

2. 라지 마진이란?


(리뷰)  Support Vector Machine, SVM

더보기

 

SVM 결정 경계: 선형적으로 분리 가능한 경우

  • SVM은 마진(margin)을 가장 넓게 하려고 하는 것 -> 라지마진(large margin)

    • 그림에서 첫번째 DB(Decision Boundary)보다 두번째 DB가 margin이 더 넓으므로 SVM은 두 번째 DB를 선택

 

이상치(outlier)가 존재할 때 라지 마진 분류기

  • [파란선] C가 매우 큰 경우
    • $C = \frac{1}{\lambda}$이므로, 규제가 적어 DB가 좀 더 모델에 fit, 즉 과대적합(overfitting) 되는 경우
  • [초록선] C가 작은 경우
    • $C = \frac{1}{\lambda}$이므로, 규제가 커 DB가 좀 더 모델에 덜 fit되는 경우. 즉 이상치는 적당히 무시 가능

 

 

 

3. 라지 마진 분류의 수학적 개념


(리뷰)  벡터 내적(vector inner product)

더보기

 

SVM 결정 경계

 

$min_\theta\frac{1}{2m} \sum_{j=1}^{n} \theta_j^2$

  • if n = 2
    • $= \frac{1}{2} (\theta_1^2+\theta_2^2)= \frac{1}{2}(\sqrt{\theta_1^2+\theta_2^2})^2  = \frac{1}{2} ||\theta||^2$
    • $y^i = 1 \to \theta^T x^i >= 1$
    • $y^i = 0 \to \theta^T x^i <= -1$
    • 여기서 $\theta^T x^i  = p^i \cdot ||\theta|| $
  • if n = 1
    • $= \frac{1}{2} ||\theta||^2$
    • $y^i = 1 \to p^i \cdot ||\theta|| >= 1$
    • $y^i = 0 \to p^i \cdot ||\theta|| <= -1$
    • $p^i : x^i$를 벡터 $\theta$에 프로젝션한 것(단순화를 위해 $\theta_0 = 0$으로 가정)

 

 

 

4. 커널1


비선형 결정 경계(Non-linear decision boundary)

  • $\theta_0 + \theta_1x_1 + \theta_2x_2 + \theta_3x_1x_2 + \theta_4x_1^2 + \theta_5x_2^2$
    • y =1 로 예측
    • $
      h_\theta(x) =
          \begin{cases}
            1 & \text{if $\theta_0 + \theta_1x_1 + \dots x >= 0$}\\
            0 & \text{otherwise}
          \end{cases}    
      $
    • $\theta_0 + \theta_1f_1 + \theta_2f_2 + \theta_3f_3 + \dots $
  • 더 좋은 다른 특성들이 있을까? $f_1, f_2, f_3, \dots$
    • Yes! Kernel~

 

커널(Kernel)

  • 데이터 x가 주어졌을 때, 랜드마크 $l^1, l^2, l^3$와 가까운 정도로 새로운 특성을 계산할 수 있음
  • 가까운 정도 즉, 유사도(Similarity)를 구하자

 

커널과 유사도(Kernel & Simirality)

($l^{(i)} \to f_i$ : landmark와 x로 계산한 값이 f)

$$f_1 = similarity(x, l^{(1)}) = exp( - \frac{|| x - l^{(1)} ||^2}{2 \sigma^2} )$$

  • x가 $l^{(1)}$과 거의 근접하다면,
    • $x = l^{(1)}$
    • $x - l^{(1)} = 0$, 즉 $f_1 = exp( - \frac{0}{2 \sigma^2}) = e^0 = 1 $
  • x가 $l^{(1)}$ 멀다면,
    • $x - l^{(1)} = \infty$
    • $f_1 = exp( - \frac{\infty^2}{2 \sigma^2}) = e^{-\infty} = 0$

 

Simirality(Kernel)로 Gaussian을 사용한 예시

 

  • $\sigma$ 가 작아질수록 분포가 좁고 경사가 급격한 그래프가 나옴

 

$h_\theta(x) = \theta_0 + \theta_1f_1 + \theta_2f_2 + \theta_3f_3 >= 0$ 경우 1을 예측함

  • 이때 $f_i = x_i l^{(i)} $ 임
  • $\theta_0 = -0.5, \theta_1 = 1, \theta_2 = 1, \theta_3 =0$ 라고 가정하자
  •  
  • case1 : 임의의 데이터 x가 $l^{(1)}$에 가까운 경우
    • $f_1 = 1, f_2 = f_3 = 0$
    • $h_\theta(x) = -0.5 + 1*1 + 1*0 + 0*0 = 0.5 >= 0$이므로 1로 예측
  • case2 : 임의의 데이터 x가 모든 랜드마크와 먼 경우
    • $f_1 = f_2 = f_3 = 0$
    • $h_\theta(x) = -0.5 + 1*0 + 1*0 + 0*0 = -0.5 <= 0$이므로 0으로 예측
  • 즉 landmark와 가까울 수록 $h_\theta(x)$ 값이 커져 1로 예측을, 작아질수록 0으로 예측하게 된다

 

 

5. 커널2


랜드마크 선택하기

  •  
  • $ l^{(1)},  l^{(2)},  l^{(3)} $을 어떻게 구할까?
  • 방법1: 데이터 자체를 landmark로 선택하는 방법
    • 이 경우 데이터의 개수가 m개 이면, landmark역시 1~m개가 존재 

 

커널을 사용한 SVM

  • $(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), \dots, (x^{(m)}, y^{(m)})$가 주어졌을 때,
    • $l^{(1)} = x^{(1)}, l^{(2)} = x^{(2)}, \dots, l^{(m)} = x^{(m)}$로 정함
  • 데이터 샘플 x가 주어졌을 때,
    • $f_1 = similarity(x,l^{(1)} )$
    • $f_2 = similarity(x,l^{(2)} )$
    • $\dots$
    • $f_m = similarity(x,l^{(m)} )$
  • 즉 vector f는 $f =  \begin{bmatrix} f_0 \\ f_1 \\ \dots \\ f_m  \end{bmatrix}$임 
  • 학습 예제 $(x^{(i)}, y^{(i)})$에 대해,
    • $f_1^{(i)} = similarity(x^{(i)},l^{(1)} )$
    • $f_2^{(i)} = similarity(x^{(i)},l^{(2)} )$
    • $\dots$
    • $f_i^{(i)} = similarity(x^{(i)},l^{(i)} )=1$, $x^{(i)} = l^{(i)}이므로$
    • $\dots$
    • $f_m^{(i)} = similarity(x^{(i)},l^{(1)} )$
  • 즉, $x^{(i)} \in R^{m+1}, f^{(i)}  = \begin{bmatrix} f_1^{(i)} \\ f_2^{(i)} \\ \dots \\ f_m^{(i)}  \end{bmatrix}$
    • $f_i^{(i)}$의 의미는 첫번째 랜드마크와의 유사도를 측정한 값
    • 주의! $f_0^{(i)}=1$ : bias term 는 빼고 계산
  • 가설(hypothesis)
    • x가 주어지면, 특성 $f \in R^{m+1}$을 계산하고 $\theta^Tf >= 0 \to y =1$로 예측
  • 학습
    • $min_\theta C \sum_{i=1}^{m} y^{(i)} cost_1(\theta^T f^{(i)}) + (1-y^{(i)}) cost_0 (\theta^T f^{(i)})) + \frac{1}{2} \sum_{j=1}^{m} \theta_j^2$
    • 원래 $\theta^T x$에 x자리에는 새로 배운 커널 함수 f가 들어가게 됨

 

SVM의 파라미터

  • $C(=\frac{1}{\lambda})$
    • C가 크면, bias 는 작고, variance는 크다. 즉, 규제($lambda$)가 크므로 H가 예민, 과대적합(overfitting) 위험이 있음
    • C가 작으면, bias 는 크고, variance는 작다. 즉, 규제($lambda$)가 작으므로 H가 둔감, 과소적합(underfitting) 위험이 있음
  • $\sigma$
    • $\sigma$가 크면: 특성 $f_i$는 더 완만하게 변화함
      • 즉 bias는 높으며 variance 는 작다(둔감)
      •  
    • $\sigma$가 작으면: 특성 $f_i$는 더 급격하게 변화함
      • 즉 bias는 작으며 variance 는 높다(예민)

 

6. 실전 SVM


파라미터 $\theta$를 구하기 위해 SVM 소프트웨어 패키지 사용 가능

 

우리가 정할 것

  • 파라미터 C
  • 커널 종류(유사도 함수, similarity fuction)
    • no kernel(linear kernel)
      • $\theta^T x >= 0 \to y=1$ 로 예측
      • n이 상대적으로 크고, m이 작을 때 사용
    • Gaussian Kernel
      • $f_i = exp( - \frac{|| x - l^{(i)} ||^2}{2 \sigma^2} )$, 여기서 $l^{(i)} = x^{(i)}$임
      • n이 상대적으로 작고, m이 클 때 사용
      • $\sigma$를 정해야 함

커널 유사도(Kernel Similarity) 함수

  • def kernel(x1, x2): 
    • $f = exp( - \frac{|| x1 -x2 ||^2}{2 \sigma^2} )$
    • return f
  • 주의: 가우시안 커널 사용 전에 특성 정규화(feature scaling)을 수행할 것
    • feature scaling = normalization
    • $||x-l||^2 = (x_1 - l_1)^2 + (x_2 - l_2)^2 + \dots + (x_n - l_n)^2 $

 

다른 커널 사용하기

  • 조언
    • 모든 유사도 함수 $similarity(x,l)$이 유효한 커널 역할을 하는 것이 아님
    • 커널 함수가 머서의 정리(Mercer's Theorem)라는 조건을 만족해야 SVM 패키지의 최적화가 발산하지 않고 제대로 작동함
  • 자주 사용되는 커널
    • 다항 커널(polynomial kernel)
    • 기타 커널
      • String kernel, chi-square kernel, histogram kernel, histogram intersection kernel, ...

 

멀티 클래스 분류(Multi-class classification)

  • 대부분의 SVM 패키지들은 이미 멀티 클래스 분류 기능을 내장함
  • 해당 기능이 없을 경우 일대다(one-vs-all) 방법을 사용하야 $\theta^{(1)}, \theta^{(2)}, \dots, \theta^{(k)}$ 계산
    • K개 SVM을 학습시키고, i=1,2, ..., k에 대해 y=i 여부를 체크
    • $(\theta^{(i)})^Tx$값이 가장 큰 클래스 i를 선택

 

로지스틱 회귀 vs. SVM vs. Neural Network(NN)

n: 특성 개수( $x \in R^{n+1}$), m: 학습 예제 개수

  • n이 클 때(m에 비해 상대적으로)
    • 로지스틱 회귀 또는 커널이 없는 SVM(linear Kernel)
    • n > 10,000 and 10 < m < 1,000
  • n이 작고 m이 적당할 때
    • 가우시안 커널을 사용한 SVM
    • 1 < n < 1,000 and 10 < m < 1,000
  • n이 작고, m이 클 때
    • 더 많은 특성 추가 후, 로지스틱 회귀 또는 커널 없는 SVM
    • 1 < n < 1,000 and m > 50,000

추가로, 대부분의 경우 인공신경망(NN)은 잘 작동되지만, 학습이 느리다는 단점을 가지고 있다

 

반응형

'인공지능(AI) > 머신러닝(ML)' 카테고리의 다른 글

앙상블(Ensemble) 기법  (1) 2022.07.15
[핸즈온 머신러닝] 5. 정규화  (0) 2021.12.05
[핸즈온 머신러닝] 4장. 로지스틱 회귀(분류)  (0) 2021.12.03
[핸즈온 머신러닝] 3장. 다항 선형 회귀  (0) 2021.12.01
[핸즈온 머신러닝] 2장. 단항 선형 회귀  (0) 2021.11.18
    '인공지능(AI)/머신러닝(ML)' 카테고리의 다른 글
    • 앙상블(Ensemble) 기법
    • [핸즈온 머신러닝] 5. 정규화
    • [핸즈온 머신러닝] 4장. 로지스틱 회귀(분류)
    • [핸즈온 머신러닝] 3장. 다항 선형 회귀
    계속지나가기
    계속지나가기
    NLP Engineer

    티스토리툴바