pullwall
Well done! 코딩
pullwall
전체 방문자
오늘
어제
  • 분류 전체보기 (151)
    • 개발환경 (2)
    • java study (21)
    • 백준 단계별 (51)
    • 알고리즘 (3)
    • AI (43)
    • 클라우드 (3)
      • Kubernetes in Google (3)
    • 논문 (5)
    • 리눅스 (1)
    • AWS (4)
    • 수학 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • pytorch
  • 백준
  • 선택정렬
  • Google
  • 쿠버네티스
  • 단계별
  • 알고리즘
  • 자바독학
  • 수학
  • 정렬알고리즘
  • Java
  • AWS
  • 백준 단계별
  • Kubernetes
  • dataset
  • LLM
  • 논문리뷰
  • 자바
  • 정렬
  • Ai

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pullwall

Well done! 코딩

SVM (Support Vector Machine) 이란?
AI

SVM (Support Vector Machine) 이란?

2024. 11. 27. 16:39
728x90

SVM은 전통적인 ML 기법 중 하나로 분류되며 이진 분류를 위해 사용된다.

 

https://ko.wikipedia.org/wiki/서포트_벡터_머신

 

간단히 말하면, SVM은 서로 다른 클래스를 분리하기 위한 "국경 긋기 방법"이다.

 

https://ankitnitjsr13.medium.com/math-behind-svm-support-vector-machine-864e58977fdb

 

그럼 국경 (Decision boundary) 을 어떻게 그어야 할까?

 

자기 집 앞이 DMZ가 되지 않도록 모두가 만족하게 그어야 할 것이다. 이렇게 하기 위해서는 파란색 데이터에서 국경까지의 거리와 빨간색 데이터에서 국경까지의 거리가 동일해야 한다.

 

국경 (Decision boundary) 까지의 거리를 우리는 "Margin" 이라고 명칭하고,  데이터마다 Margin이 같도록, global한 관점에서 봤을 때는 Margin이 크도록 국경을 긋게 된다.

 

 

이 국경을 좌표평면에서 수식으로 표현하면,

 

$ax+by=c$ 이고 이를 행렬로 나타내면,

 

$ \begin{bmatrix} a & b \\ \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix} =c$ 와 같이 나타낼 수 있다.

 

$\underline{w}\overset{\underset{\mathrm{def}}{}}{=}\begin{bmatrix} a \\ b \end{bmatrix}$ , 

 

$\underline{d}\overset{\underset{\mathrm{def}}{}}{=}\begin{bmatrix} x \\ y \end{bmatrix}$ 라고 한다면, 위 식은 

 

$\underline{w}^{T}\underline{d}=\left\| \underline{w} \right\|\left\| \underline{d} \right\|\cos{\theta}=c$ 로 나타낼 수 있다.

 

위 수식에서 알 수 있듯, $\underline{d}$ 의 자취는 직선이 된다.

 

다시 국경 긋기로 돌아오면, 

 

위 문제에서 margin을 최대화 하면 되는 것이고 이는 $\frac{2}{\left\|\underline{w}\right\|}$ 로 나타낼 수 있다. 이걸 최대화 하면 된다!

 

이걸 최소화 문제로 바꿔서 나타내면, $\frac{1}{2}\underline{w}^{T}\underline{w}$를 최소화 하는 문제로 바꿀 수 있고, 파란색, 빨간색 데이터가 각각의 점선 위에 위치해야 하므로..

 

  • $\underline{w}^{T}\underline{d_{i}}\geq c+1$, (i는 파란색)
  • $\underline{w}^{T}\underline{d_{i}}\leq  c-1$, (i는 빨간색)

 

위 두 수식을 영차영차 .. 잘 해서 미분을 구하고 해결하면 된다.

728x90

'AI' 카테고리의 다른 글

BLEU (Bilingual Evaluation Understudy) Score - LLM Evaluation  (0) 2024.12.05
랜덤 포레스트 (Random Forest)  (0) 2024.11.27
의사결정트리 (Decision Tree)  (1) 2024.11.27
[pytorch] 순환신경망 (Recurrent Neural Network) 예제 코드  (0) 2024.11.21
[pytorch] 합성곱 신경망 (Convolution Neural Network) 예제 코드  (0) 2024.11.20
    'AI' 카테고리의 다른 글
    • BLEU (Bilingual Evaluation Understudy) Score - LLM Evaluation
    • 랜덤 포레스트 (Random Forest)
    • 의사결정트리 (Decision Tree)
    • [pytorch] 순환신경망 (Recurrent Neural Network) 예제 코드
    pullwall
    pullwall

    티스토리툴바