본문 바로가기

Data

[SVM] 2. svm 사이의 최대 거리값 찾기




다시 그래프로 돌아오자.

svm의 가장 기본적인 목표는 경계(decision boundary)에 가장 가까운 서로 다른 클래스 두 점의 '거리 최대값'을 찾는 것이다.

위 그래프에서 초록색 선은 x-클래스 벡터, 하늘색 선은 x+클래스 벡터이다.

뺄셈으로 두 벡터의 거리를 찾고, 벡터값을 스칼라로 바꾸기 위해 w벡터의 단위벡터값을 내적해준다. 



왜 하필 w벡터일까? SVM 조건식을 통해 도출한 X와 W의 내적값을 1과 b에 대한 상수식으로 치환하면,

아래와 같이 아주 깔끔한 식이 도출된다.


||w||가 분모에 있다는 것은 다시말해 최대값을 찾기위해서는 가장 작은 w를 찾아야한다는 얘기가 된다.

수학적 편의에 차원에서 w의 최솟값을 찾기 위해 아래와같이 식을 변형한다.



'왜 이렇게 변형해야 하는가'는 또 다른 문제이기 때문에 우선 차치하더라도,

2차원 그래프에서 2차원 함수는 최솟값을 찾기에 아주 적절한 형태를 갖추고 있다.

이와같은 변형을 2차원 함수의 볼록한 그릇같은 모양을 따서 convex optimization problem이라고 한다.

svm의 최적화 문제는 매우 다양한데, 우선 이것말고도 또 다른 최적화 방식이 있다는 것만 알아두자.




도움이 됐던 자료/강의

MIT 6.034 Artificial Intelligence, Fall 2010:  https://www.youtube.com/watch?v=_PwhiWxHK8o

Chapter 3: Support Vector machine with Math: https://medium.com/deep-math-machine-learning-ai/chapter-3-support-vector-machine-with-math-47d6193c82be

초짜 대학원생의 입장에서 이해하는 Support Vector Machine (1): http://jaejunyoo.blogspot.com/2018/01/support-vector-machine-1.html

서포트 벡터 머신 (Support Vector Machine): https://ratsgo.github.io/machine%20learning/2017/05/23/SVM/



'Data' 카테고리의 다른 글

[SVM] 1. yi(x·w+b) >= 1 도출하기  (0) 2019.03.19
[R] 인코딩 옵션 추론 및 한글 변환하기  (0) 2019.02.12
[R] factor 자료형에 대하여  (0) 2019.02.12