이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

10. 비선형 서포트 벡터 머신 (Non-linear SVM)

  • 2020.11.25 19:56
  • 학부 수업/머신러닝

지난 글에서 선형 SVM인 하드 마진 SVM과 소프트 마진 SVM을 다뤘다.
이번에는 선형으로 분류할 수 없는 문제를 해결하는 비선형 SVM인 커널 SVM을 알아보자.

커널 SVM은 커널 함수Kernel Function$(\phi)$를 통해 데이터의 차원을 올려서 분류를 수행한다.

출처: https://www.r-bloggers.com/2019/10/support-vector-machines-with-the-mlr-package/

즉, 커널 SVM도 결정 경계는 선형이다.

다만 데이터 $X$를 Feature Map의 내적을 통해 차원 증가 시켜서, 데이터의 Original Space가 아닌 분류가 쉬운 고차원의 Feature Space에서 분류를 수행하는 것이다.

커널 함수

데이터의 차원을 증가시키는 커널 함수는 효율적인 방법이 있다.

$$ \phi(x_1, x_2) = (x_1, x_2, x_1^2, x_2^2, x_1x_2) $$

2D 데이터를 5D데이터로 변환했다.

커널 매핑

커널의 계산 효율성을 위해 $\phi(X)$와 $\phi(Y)$를 따로 계산하여 내적하는 것보다, 둘의 내적을 바로 구하는 것이 효율적이다. 이 함수를 커널 함수라 한다.

$$\begin{align*}K(X,Y) = (X, Y)^2 &= <(x_1, x_2), (y_1, y_2)>^2\\
&= <x_1y_1 + x_2y_2>^2\\
&= x_1^2y_1^2 + x_2^2y_2^2 + 2x_1x_2y_1y_2\\
&= <\phi(X), \phi(Y)>^2 \end{align*}$$

커널 함수의 종류

커널 SVM을 위한 몇가지 함수가 나와있는데, 특별히 어떤 데이터에 어떤 커널이 좋은지는 알려져있지 않으므로 실험이 필요하다.

  • Linear Kernel
    $$K(x_1, x_2) = <x_1, x_2> $$
  • Polynomial Kernel
    $$K(x_1, x_2) = (a<x_1, x_2> + b)^d $$
  • Sigmoid Kernel
    $$K(x_1, x_2) = \tanh (a<x_1, x_2> + b) $$
  • Gaussian Kernel (RBF Kernel)
    $$K(x_1, x_2) = \exp(\frac{-||x_1 - x_2||_2^2}{2\sigma^2})$$

이진 분류기로 다중 분류하기

SVM은 이진 분류밖에 할 수 없다. 이런 분류기로 여러 클래스를 분류하려면 하나-나머지 방법이나 하나-하나 방법을 쓸 수 있다.

  • 하나-나머지 방법: 클래스 A와 나머지, 클래스 B와 나머지 등을 분류하는 분류기들을 만들고, $x$에 대한 이항 분류 값이 가장 큰 모델의 결과를 예측값으로 삼는다.
  • 하나-하나 방법: 클래스 A와 B, B와 C 등을 분류하는 분류기들을 만들고, 투표를 통해 가장 많이 분류된 결과를 최종 결과 삼는다.

'학부 수업 > 머신러닝' 카테고리의 다른 글

12. 차원 축소 (Dimension Reduction)  (0) 2020.12.16
11. 군집화 (Clustering)  (0) 2020.12.15
9. 서포트 벡터 머신 (Support Vector Machine: SVM)  (2) 2020.11.25
8. 의사 결정 트리 (Decision Tree)  (0) 2020.10.23
7. 판별 분석 (Discriminant Analysis)  (0) 2020.10.21

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 12. 차원 축소 (Dimension Reduction)

    12. 차원 축소 (Dimension Reduction)

    2020.12.16
  • 11. 군집화 (Clustering)

    11. 군집화 (Clustering)

    2020.12.15
  • 9. 서포트 벡터 머신 (Support Vector Machine: SVM)

    9. 서포트 벡터 머신 (Support Vector Machine: SVM)

    2020.11.25
  • 8. 의사 결정 트리 (Decision Tree)

    8. 의사 결정 트리 (Decision Tree)

    2020.10.23
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (282)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (48)
      • 회고 & 계획 (20)
      • 내 이야기 (9)
      • 리뷰 (3)
      • 군대에 간 공돌이 (10)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바