티스토리 뷰

머신러닝/모형과 이론

SVM : Support Vector Machine - 개요

김수한무거북이WA!두루미 2019. 11. 16. 21:21

SVM은 원래의 훈련(or 학습) 데이터를 비선형 매핑을 통해 고차원으로 변환하며,

이 새로운 차원에서 초평면(Hyperplane)을 최적으로 분리하는 선형분리를 찾음으로써

최적의 의사결정영역(Decision Boundary)을 찾아.

데이터의 차원을 높이는 이유는 비선형 분리가 되어 있는 두 클래스를 차원을 높여서

적절한 비선형 매칭을 이용해 초평면으로 분리하기 위해서야.

또한 SVM은 복잡한 비선형 의사결정 영역을 모형화할 수 있기 때문에

매우 정확하며, 다른 모델들보다 과적합이 되는 경향이 적어.

SVM에서 중요한 요소는 마진(margin), 서포트 벡터(support vector), 커널(kernel)이 있어.

아래에서는 마진과 서포트 벡터, 커널을 언급하려고 해.

 

1. 마진

마진은 하나의 데이터 포인트(support vector)와 초평면(hyperplane) 사이의 거리를 의미해.

엄밀히 말하면 각각의 클래스의 데이터 벡터들로부터 주어진 초평면까지의 거리 중 가장 짧은 것을 말해.

SVM에서는 이 마진이 클수록 분별을 잘하는 분류기로 보고 있어.

아래의 그림에서 γ가 마진이야.

예를 들면 빨간선과 파란선 이렇게 두 개의 마진이 있을 때 파란선의 마진(선과 점 사이의 최소의 거리)이

더 크기에 파란선이 더 분별을 잘 한다고 볼 수 있어.

분류기와 서포트 벡터 간의 거리(마진)을 두는 이유는 학습오차와 일반화오차 중 일반화오차 부분

즉, 데이터 속에서 내제하는 기본적은 오차부분정도를 표현하기 위해 존재해

좀 더 풀어서 말하자면, 일반적으로 학습데이터에 과적합 될수록 높은 복잡도의 비선형 분류기가 되는데

이렇게 학습데이터에 과적합 될수록 기본적 오차까지 학습되기 때문에 오히려 오차가 커져버리는 현생이 생기는데

이 부분은 학습데이터에 일정 정도의 오차를 내서 과적합의 문제를 해결하고 최적의 분류기를 만들어

이렇게 SVM에서는 마진을 두면서 일반화 오류를 줄이고 데이터 판별의 정확도를 높여

마진은 여러개의 초평면 후보가 있을 때, 벡터공간에서 가장 합리적인 판별경계를 찾을 수 있는 기준이야.

 

 

 

2. 서포트 벡터

초평면과의 거리가 가장 짧은 데이터 벡터가 서포트 벡터인데

서포트 벡터와 마진은 초평면에 따라 달라져.

아래의 초록점 2개와 빨간점 1개와 같이 초평면(2개의 실선 사이의 점선)과의 거리가

가장 짧은 데이터 벡터인 서포트 벡터야.

 

이 서포터 벡터로 인해서 SVM이 갖는 장점은 새로운 서포트 벡터가 들어왔을 때,

전체 서포트 벡터와의 내적거리를 안보고 서포트 벡터와의 내적거리만 구하면 되므로

계산 비용을 줄일 수 있는 효과가 있어.

 

 

 

3. 커널

선형 분리가 불가능한 저차원의 데이터를 고차원 공간의 값으로 매핑시켜서

초평면으로 분류 가능한 선형문제로 변환을 시켜 분류를 가능하게 할 수 있게해.

저차원에서 과적합을 하면서 분류하는 것이 아니라 차원을 높여서 깔끔하게 분류하는 것이 커널이야.

예시는 아래의 그림을 참조해

 

 

 

 

 

# SVM의 종류는 추후에 추가하려해

 

 

# 글을 작성하면서 참조한 사이트

https://excelsior-cjh.tistory.com/66?category=918734

 

Support Vector Machine (SVM, 서포트 벡터 머신)

1. Support Vector Machine, SVM이란? Support Vector Machine(SVM)은 원 훈련(또는 학습)데이터를 비선형 매핑(Mapping)을 통해 고차원으로 변환한다. 이 새로운 차원에서 초평면(hyperplane)을 최적으로 분리하..

excelsior-cjh.tistory.com

https://excelsior-cjh.tistory.com/165?category=918734

 

서포트 벡터머신, SVM - (2)

이번 SVM 관련 포스팅은 '오일식 저, 패턴인식' 교재와 '핸즈온 머신러닝' 그리고 'ratsgo' 블로그를 참고하여 작성하였습니다. SVM에 대해 간략하게 알고 싶으신 분들은 여기를 참고하시면 됩니다. SVM 이란? SVM..

excelsior-cjh.tistory.com

https://gentlej90.tistory.com/43

 

SVM (Support Vector Machine) Part 1

SVM (Support Vector Machine)은 Logistic Regression , Neural Network, Bayes classifier 같은 Linear classifier(초평면을 이용하는 분류기를 말함) 들 중에 하나이다. 분류상으로는 당연히Supervised Learning..

gentlej90.tistory.com

https://m.blog.naver.com/PostView.nhn?blogId=tjdudwo93&logNo=221051481147&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

SVM(Suppot Vector Machine)으로 분류(Classification)하기

-서포트 벡터 머신(Support Vector Machine)- ▶서포트 벡터 머신(SVM)이란? 서포트 벡터 머신(SV...

blog.naver.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함