SlideShare a Scribd company logo
1 of 27
세 번째 ML
Support Vector Machine
(SVM)
세 번째 ML : 서포트 벡터 머신(SVM)
Source : MIT 6.034 Artificial Intelligence, Fall 2010, https://www.youtube.com/watch?v=_PwhiWxHK8o
by Pyson
어떻게 하면 데이터를 잘 분류할 수 있을까?
여기에 ‘+’ 값과 ‘-’ 값이 있습니다.
-
--
+
+
+
+
by Pyson
여러 가지 방법으로 데이터를 분류할 수 있음
선을 그어 data를 분류해 보자
-
--
+
++
+
-
--
+
++
+
-
--
+
++
+
by Pyson
그리고 참고로 Decision boundary는
Hyperplane이라고도 불림
-
-
+
+
+
+
Decision boundary
(Hyperplane)
-
앞서 그은 선(혹은 평면)을
Decision boundary(결정 경계)라 합니다.
by Pyson
n 차원의 data 가 있다고 할 때,
Hyperplane은 n-1 차원의 subspace 임
Hyperplane? 초평면?
2차원의 Hyperplane은 선(2-1차원)
3차원의 Hyperplane은 면(3-1차원)
by Pyson
그리고 각 Decision boundary와 가까이 있는 data들을
잇는 각 선(회색선)간 거리를 Margin 이라고 합시다.
-
-
+
+
+
+
Decision boundary
-
Margin
어떻게 하면 자료들을 잘 분류 할 수 있을까?
by Pyson
Margin을 최대화 하는 Decision boundary를 찾을 때,
분류가 잘 된다고 함. Why?
-
-
+
+
+
+
Decision boundary
Margin
-
SVM은 마진 최대화(Widest Margin Approach)로
주로 Data를 분류(Classify)하는 알고리즘 입니다.
by Pyson
마진이 넓으면 새로운 Data가 입력 되었을 때,
새로운 Data를 잘 분류할 수 있다 (즉, 오차가 적다)
-
-
+
+
+
+
Decision boundary
Margin
-
왜? 마진 최대화
Why? Widest Margin Approach
△
New data
by Pyson
Small margin vs Large margin
by Pyson
어떤 분류가 잘 된 분류일까?
(Large Margin) (Small Margin)
Small margin vs Large margin
Source : https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
by Pyson
만약 미래의 data가 위와 같다면
small margin이 분류가 잘 된 것임
Small margin vs Large margin
(Large Margin) (Small Margin)
Source : https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
by Pyson
반대로 미래의 data가 아래와 같다면
large margin이 분류가 잘 된 것임
Small margin vs Large margin
(Large Margin) (Small Margin)
Source : https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
by Pyson
비선형 data는 어떻게 분류할까?
아래와 같은 data는 어떻게 분류할 수
있을까?
Source : http://www.eric-kim.net/eric-kim-net/posts/1/kernel_trick.html
by Pyson
비선형 data도 kernel trick으로 분류할 수 있다.
Kernel trick
2차원 data를 3차원 data로 변경
x,y  z = x2 + y2
Source : http://www.eric-kim.net/eric-kim-net/posts/1/kernel_trick.html
by Pyson
𝑢 를 𝑤 방향으로 투영(Projection) 시켜 그었을 때,
Decision boundary를 넘으면 +, 못 넘으면 – 로 분류하자
--
+
+
+
+
𝑤
Decision boundary
어떻게 분류할까?
Decision boundary에 수직인 법선 벡터(normal vector) 𝑤,
어떤 값인지 모르는 𝑢 가 있다고 하면,
𝑢
?
by Pyson
Decision Rule :
𝑤 ⦁ 𝑢 + b ≥ 0 이면 +, 아니면 -
𝑤
Decision boundary
𝑢
?
1) C는 Decision boundary를 결정하는 어떤 상수, b = -c
내적(dot product)
벡터의 내적(dot product)으로 decision boundary를
넘는지 안 넘는지 구할 수 있다.
𝑤 ⦁ 𝑢 ≥ c1)
이면 +, 아니면 –
by Pyson
두 경계선은 아래와 같이 표현된다.
𝑦(𝑤 ⦁ 𝑥 + b) = 1
-
-
+
+
+
+
Margin
-
두 경계선을 아래와 같이 구분한다고 가정
(마진을 구하기 위해 임의로 +1, -1을 가정함)
𝑤 ⦁ 𝑥+ + b ≥ 1  𝑤 ⦁ 𝑥+ + b = 1 (+경계선)
𝑤 ⦁ 𝑥− + b ≤ -1  𝑤 ⦁ 𝑥− + b = -1 (-경계선)
두 식을 합치기 위해,
+ sample 일 때 +1, - sample 일 때 -1
을 갖는 어떤 y가 있다고 가정하자
𝑤
𝑤 ⦁ 𝑥+ + b = 1 (+경계선)
𝑤 ⦁ 𝑥− + b = -1 (-경계선)
마진을 어떻게 최대화 할까?
우선 Margin을 구해보자(1)
by Pyson
Margin =
2
𝑤
-
+
𝑤
| 𝑤 |
𝑤 ⦁ 𝑥+ + b = 1 (+경계선)
𝑤 ⦁ 𝑥− + b = -1 (-경계선)
마진을 어떻게 최대화 할까?
우선 Margin을 구해보자(2)
𝑥−
𝑥+
Margin =
𝑤
| 𝑤 |
⦁ 𝑥+ − 𝑥− =
(𝑤 ⦁ 𝑥+ −𝑤 ⦁ 𝑥−)
𝑤
=
1−𝑏 −(−1−𝑏)
𝑤
=
2
𝑤
𝑤 ⦁ 𝑥+ = (1 – b)
𝑤 ⦁ 𝑥− = (-1 - b)
𝑤 의 단위 벡터(unit vector)
𝑤
by Pyson
마진을 최대화 
1
2
𝑤 2
를 최소화
Margin =
2
𝑤
최대화
 𝑤 를 최소화

1
2
𝑤 2 를 최소화
by Pyson
분류(Classification) 문제에서 에러는
어떻게 정의 될까?
y가 +1인 경우 +1
-1
예측 값 𝒇(𝒙)
실제 값이 + 인데 f(x) 가 – 인 경우 Error!
실제 값이 - 인데 f(x) 가 + 인 경우 Error!
y가 -1인 경우
실제 data y가 +1, -1 값으로 분류 되는 경우, 에러는?
+1
-1
1 - 𝐲 ∗ 𝒇 𝒙 , else
0, 𝐲 ∗ 𝒇 𝒙 ≥ 𝟏 True
False(Error)
𝐜 𝐱, 𝐲, 𝒇 𝒙 =
즉, y * f(x)가 +1 인 경우, 참(True)
y * f(x)가 –1 인 경우, 거짓(False)
by Pyson
Hinge loss 는 분류가 참일 때 0이고,
분류가 거짓일 때 Error 값을 가지게 됨
Hinge Loss
1 - 𝐲 ∗ 𝒇 𝒙 , else
0, 𝐲 ∗ 𝒇 𝒙 ≥ 𝟏 True
False(Error)
𝐜 𝐱, 𝐲, 𝒇 𝒙 =
𝐲 ∗ 𝒇 𝒙
𝑳𝒐𝒔𝒔
(𝐄𝐫𝐫𝐨𝐫)
by Pyson
마진을 최대화, 에러를 최소화하여
최적의 Decision Boundary를 구할 수 있음
결국, Margin을 최대화, Error를 최소화하는 문제는
min
1
2
λ 𝑤 2 +
𝑖=1
𝑛
(1 − 𝑦𝑖 ∗ 𝑓(𝑥𝑖, 𝑤𝑖))+
λ 는 regularizer로
λ 가 크면 overshoot(과적합)이 될 수 있고 (Margin이 작아짐)
λ 가 작으면, 수렴하지 않을 수 있음 (Margin이 커짐)
+는 Error가 양수일 때만 계산함(음수 일때는 0)
마진 최대화 에러 최소화
by Pyson
Gradient Descent(경사하강법)로,
Classification 문제를 최적화 할 수 있음
어떻게 주어진 식을 최적화 할까?
Gradient Descent!!!
𝑤𝑖+1 = 𝑤𝑖 − 𝛾𝛻F(𝑤𝑖)
F w = min
1
2
λ 𝑤 2 +
𝑖=1
𝑛
(1 − 𝑦𝑖 ∗ 𝑓(𝑥𝑖, 𝑤𝑖))+
𝜸 : Learning Rate
by Pyson
𝛻F 𝑤 =
𝜕𝐹
𝜕𝑤
= λ 𝑤 +
𝑖=1
𝑛
(−𝑦𝑖 ∗ 𝑥𝑖)+
따라서,
𝑤𝑖+1 = 𝑤𝑖 − 𝛾𝛻F(𝑤𝑖)
= 𝑤𝑖 + 𝛾( 𝑖=1
𝑛
𝑦𝑖 ∗ 𝑥𝑖 + − λ 𝑤 )
F w = min
1
2
λ 𝑤 2 +
𝑖=1
𝑛
(1 − 𝑦𝑖 ∗ 𝑓(𝑥𝑖, 𝑤𝑖))+
자, 미분을 해서 Gradient를 구해 봅시다.
by Pyson
# Data를 불러온다
# 𝛾, λ, 학습횟수를 정한다.
# w 값을 초기화 한다
# Gradient descent 함수를 구한다
Classification이 참인 경우
Classification이 거짓인 경우
# 루프를 반복하면서 w값을 업데이트 한다.
# 결과를 출력한다.
Pseudo Code
by Pyson
코딩 시간 !!!
by Pyson
서포트 벡터 머신
-끝-
Support Vector Machine
- 끝 -

More Related Content

What's hot

[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신Haesun Park
 
사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디Haesun Park
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
 
Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)홍배 김
 
Code로 이해하는 RNN
Code로 이해하는 RNNCode로 이해하는 RNN
Code로 이해하는 RNNSANG WON PARK
 
Anomaly Detection with GANs
Anomaly Detection with GANsAnomaly Detection with GANs
Anomaly Detection with GANs홍배 김
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learningYongdae Kim
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련Haesun Park
 
Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5SANG WON PARK
 
3.neural networks
3.neural networks3.neural networks
3.neural networksHaesun Park
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명홍배 김
 
신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약고포릿 default
 
집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01Kwang Woo NAM
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리Haesun Park
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networksHaesun Park
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun Park
 
4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)Haesun Park
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 

What's hot (20)

[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
 
사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리
 
Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)
 
Code로 이해하는 RNN
Code로 이해하는 RNNCode로 이해하는 RNN
Code로 이해하는 RNN
 
Anomaly Detection with GANs
Anomaly Detection with GANsAnomaly Detection with GANs
Anomaly Detection with GANs
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learning
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
 
Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5
 
3.neural networks
3.neural networks3.neural networks
3.neural networks
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
 
신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약
 
집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01집단지성 프로그래밍 06-의사결정트리-01
집단지성 프로그래밍 06-의사결정트리-01
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 6장 결정 트리
 
4.convolutional neural networks
4.convolutional neural networks4.convolutional neural networks
4.convolutional neural networks
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 
4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 

Similar to Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)

Probability with MLE, MAP
Probability with MLE, MAPProbability with MLE, MAP
Probability with MLE, MAPJunho Lee
 
04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )Jeonghun Yoon
 
[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론jaypi Ko
 
03. linear regression
03. linear regression03. linear regression
03. linear regressionJeonghun Yoon
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3Haesun Park
 
ESM Mid term Review
ESM Mid term ReviewESM Mid term Review
ESM Mid term ReviewMario Cho
 
데이터처리와 통계 기본 머신러닝
데이터처리와 통계 기본 머신러닝데이터처리와 통계 기본 머신러닝
데이터처리와 통계 기본 머신러닝Sunggon Song
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)Jeonghun Yoon
 
Python Machine Learning - ML02 Linear Regression(선형회귀)
Python Machine Learning - ML02 Linear Regression(선형회귀)Python Machine Learning - ML02 Linear Regression(선형회귀)
Python Machine Learning - ML02 Linear Regression(선형회귀)건환 손
 
Machine learning bysogood
Machine learning bysogoodMachine learning bysogood
Machine learning bysogoodS.Good Kim
 
Multinomial classification and application of ML
Multinomial classification and application of MLMultinomial classification and application of ML
Multinomial classification and application of ML희수 박
 
Linear regression
Linear regressionLinear regression
Linear regression전 희천
 
[Probability for machine learning]
[Probability for machine learning][Probability for machine learning]
[Probability for machine learning]강민국 강민국
 
머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)ssusercdf17c
 
python 수학이해하기
python 수학이해하기python 수학이해하기
python 수학이해하기Yong Joon Moon
 

Similar to Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신) (17)

Probability with MLE, MAP
Probability with MLE, MAPProbability with MLE, MAP
Probability with MLE, MAP
 
Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)
 
04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )
 
[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론
 
03. linear regression
03. linear regression03. linear regression
03. linear regression
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3
 
ESM Mid term Review
ESM Mid term ReviewESM Mid term Review
ESM Mid term Review
 
데이터처리와 통계 기본 머신러닝
데이터처리와 통계 기본 머신러닝데이터처리와 통계 기본 머신러닝
데이터처리와 통계 기본 머신러닝
 
SVM
SVMSVM
SVM
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)
 
Python Machine Learning - ML02 Linear Regression(선형회귀)
Python Machine Learning - ML02 Linear Regression(선형회귀)Python Machine Learning - ML02 Linear Regression(선형회귀)
Python Machine Learning - ML02 Linear Regression(선형회귀)
 
Machine learning bysogood
Machine learning bysogoodMachine learning bysogood
Machine learning bysogood
 
Multinomial classification and application of ML
Multinomial classification and application of MLMultinomial classification and application of ML
Multinomial classification and application of ML
 
Linear regression
Linear regressionLinear regression
Linear regression
 
[Probability for machine learning]
[Probability for machine learning][Probability for machine learning]
[Probability for machine learning]
 
머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)
 
python 수학이해하기
python 수학이해하기python 수학이해하기
python 수학이해하기
 

Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)

  • 1. 세 번째 ML Support Vector Machine (SVM) 세 번째 ML : 서포트 벡터 머신(SVM) Source : MIT 6.034 Artificial Intelligence, Fall 2010, https://www.youtube.com/watch?v=_PwhiWxHK8o
  • 2. by Pyson 어떻게 하면 데이터를 잘 분류할 수 있을까? 여기에 ‘+’ 값과 ‘-’ 값이 있습니다. - -- + + + +
  • 3. by Pyson 여러 가지 방법으로 데이터를 분류할 수 있음 선을 그어 data를 분류해 보자 - -- + ++ + - -- + ++ + - -- + ++ +
  • 4. by Pyson 그리고 참고로 Decision boundary는 Hyperplane이라고도 불림 - - + + + + Decision boundary (Hyperplane) - 앞서 그은 선(혹은 평면)을 Decision boundary(결정 경계)라 합니다.
  • 5. by Pyson n 차원의 data 가 있다고 할 때, Hyperplane은 n-1 차원의 subspace 임 Hyperplane? 초평면? 2차원의 Hyperplane은 선(2-1차원) 3차원의 Hyperplane은 면(3-1차원)
  • 6. by Pyson 그리고 각 Decision boundary와 가까이 있는 data들을 잇는 각 선(회색선)간 거리를 Margin 이라고 합시다. - - + + + + Decision boundary - Margin 어떻게 하면 자료들을 잘 분류 할 수 있을까?
  • 7. by Pyson Margin을 최대화 하는 Decision boundary를 찾을 때, 분류가 잘 된다고 함. Why? - - + + + + Decision boundary Margin - SVM은 마진 최대화(Widest Margin Approach)로 주로 Data를 분류(Classify)하는 알고리즘 입니다.
  • 8. by Pyson 마진이 넓으면 새로운 Data가 입력 되었을 때, 새로운 Data를 잘 분류할 수 있다 (즉, 오차가 적다) - - + + + + Decision boundary Margin - 왜? 마진 최대화 Why? Widest Margin Approach △ New data
  • 9. by Pyson Small margin vs Large margin
  • 10. by Pyson 어떤 분류가 잘 된 분류일까? (Large Margin) (Small Margin) Small margin vs Large margin Source : https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
  • 11. by Pyson 만약 미래의 data가 위와 같다면 small margin이 분류가 잘 된 것임 Small margin vs Large margin (Large Margin) (Small Margin) Source : https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
  • 12. by Pyson 반대로 미래의 data가 아래와 같다면 large margin이 분류가 잘 된 것임 Small margin vs Large margin (Large Margin) (Small Margin) Source : https://stats.stackexchange.com/questions/31066/what-is-the-influence-of-c-in-svms-with-linear-kernel
  • 13. by Pyson 비선형 data는 어떻게 분류할까? 아래와 같은 data는 어떻게 분류할 수 있을까? Source : http://www.eric-kim.net/eric-kim-net/posts/1/kernel_trick.html
  • 14. by Pyson 비선형 data도 kernel trick으로 분류할 수 있다. Kernel trick 2차원 data를 3차원 data로 변경 x,y  z = x2 + y2 Source : http://www.eric-kim.net/eric-kim-net/posts/1/kernel_trick.html
  • 15. by Pyson 𝑢 를 𝑤 방향으로 투영(Projection) 시켜 그었을 때, Decision boundary를 넘으면 +, 못 넘으면 – 로 분류하자 -- + + + + 𝑤 Decision boundary 어떻게 분류할까? Decision boundary에 수직인 법선 벡터(normal vector) 𝑤, 어떤 값인지 모르는 𝑢 가 있다고 하면, 𝑢 ?
  • 16. by Pyson Decision Rule : 𝑤 ⦁ 𝑢 + b ≥ 0 이면 +, 아니면 - 𝑤 Decision boundary 𝑢 ? 1) C는 Decision boundary를 결정하는 어떤 상수, b = -c 내적(dot product) 벡터의 내적(dot product)으로 decision boundary를 넘는지 안 넘는지 구할 수 있다. 𝑤 ⦁ 𝑢 ≥ c1) 이면 +, 아니면 –
  • 17. by Pyson 두 경계선은 아래와 같이 표현된다. 𝑦(𝑤 ⦁ 𝑥 + b) = 1 - - + + + + Margin - 두 경계선을 아래와 같이 구분한다고 가정 (마진을 구하기 위해 임의로 +1, -1을 가정함) 𝑤 ⦁ 𝑥+ + b ≥ 1  𝑤 ⦁ 𝑥+ + b = 1 (+경계선) 𝑤 ⦁ 𝑥− + b ≤ -1  𝑤 ⦁ 𝑥− + b = -1 (-경계선) 두 식을 합치기 위해, + sample 일 때 +1, - sample 일 때 -1 을 갖는 어떤 y가 있다고 가정하자 𝑤 𝑤 ⦁ 𝑥+ + b = 1 (+경계선) 𝑤 ⦁ 𝑥− + b = -1 (-경계선) 마진을 어떻게 최대화 할까? 우선 Margin을 구해보자(1)
  • 18. by Pyson Margin = 2 𝑤 - + 𝑤 | 𝑤 | 𝑤 ⦁ 𝑥+ + b = 1 (+경계선) 𝑤 ⦁ 𝑥− + b = -1 (-경계선) 마진을 어떻게 최대화 할까? 우선 Margin을 구해보자(2) 𝑥− 𝑥+ Margin = 𝑤 | 𝑤 | ⦁ 𝑥+ − 𝑥− = (𝑤 ⦁ 𝑥+ −𝑤 ⦁ 𝑥−) 𝑤 = 1−𝑏 −(−1−𝑏) 𝑤 = 2 𝑤 𝑤 ⦁ 𝑥+ = (1 – b) 𝑤 ⦁ 𝑥− = (-1 - b) 𝑤 의 단위 벡터(unit vector) 𝑤
  • 19. by Pyson 마진을 최대화  1 2 𝑤 2 를 최소화 Margin = 2 𝑤 최대화  𝑤 를 최소화  1 2 𝑤 2 를 최소화
  • 20. by Pyson 분류(Classification) 문제에서 에러는 어떻게 정의 될까? y가 +1인 경우 +1 -1 예측 값 𝒇(𝒙) 실제 값이 + 인데 f(x) 가 – 인 경우 Error! 실제 값이 - 인데 f(x) 가 + 인 경우 Error! y가 -1인 경우 실제 data y가 +1, -1 값으로 분류 되는 경우, 에러는? +1 -1 1 - 𝐲 ∗ 𝒇 𝒙 , else 0, 𝐲 ∗ 𝒇 𝒙 ≥ 𝟏 True False(Error) 𝐜 𝐱, 𝐲, 𝒇 𝒙 = 즉, y * f(x)가 +1 인 경우, 참(True) y * f(x)가 –1 인 경우, 거짓(False)
  • 21. by Pyson Hinge loss 는 분류가 참일 때 0이고, 분류가 거짓일 때 Error 값을 가지게 됨 Hinge Loss 1 - 𝐲 ∗ 𝒇 𝒙 , else 0, 𝐲 ∗ 𝒇 𝒙 ≥ 𝟏 True False(Error) 𝐜 𝐱, 𝐲, 𝒇 𝒙 = 𝐲 ∗ 𝒇 𝒙 𝑳𝒐𝒔𝒔 (𝐄𝐫𝐫𝐨𝐫)
  • 22. by Pyson 마진을 최대화, 에러를 최소화하여 최적의 Decision Boundary를 구할 수 있음 결국, Margin을 최대화, Error를 최소화하는 문제는 min 1 2 λ 𝑤 2 + 𝑖=1 𝑛 (1 − 𝑦𝑖 ∗ 𝑓(𝑥𝑖, 𝑤𝑖))+ λ 는 regularizer로 λ 가 크면 overshoot(과적합)이 될 수 있고 (Margin이 작아짐) λ 가 작으면, 수렴하지 않을 수 있음 (Margin이 커짐) +는 Error가 양수일 때만 계산함(음수 일때는 0) 마진 최대화 에러 최소화
  • 23. by Pyson Gradient Descent(경사하강법)로, Classification 문제를 최적화 할 수 있음 어떻게 주어진 식을 최적화 할까? Gradient Descent!!! 𝑤𝑖+1 = 𝑤𝑖 − 𝛾𝛻F(𝑤𝑖) F w = min 1 2 λ 𝑤 2 + 𝑖=1 𝑛 (1 − 𝑦𝑖 ∗ 𝑓(𝑥𝑖, 𝑤𝑖))+ 𝜸 : Learning Rate
  • 24. by Pyson 𝛻F 𝑤 = 𝜕𝐹 𝜕𝑤 = λ 𝑤 + 𝑖=1 𝑛 (−𝑦𝑖 ∗ 𝑥𝑖)+ 따라서, 𝑤𝑖+1 = 𝑤𝑖 − 𝛾𝛻F(𝑤𝑖) = 𝑤𝑖 + 𝛾( 𝑖=1 𝑛 𝑦𝑖 ∗ 𝑥𝑖 + − λ 𝑤 ) F w = min 1 2 λ 𝑤 2 + 𝑖=1 𝑛 (1 − 𝑦𝑖 ∗ 𝑓(𝑥𝑖, 𝑤𝑖))+ 자, 미분을 해서 Gradient를 구해 봅시다.
  • 25. by Pyson # Data를 불러온다 # 𝛾, λ, 학습횟수를 정한다. # w 값을 초기화 한다 # Gradient descent 함수를 구한다 Classification이 참인 경우 Classification이 거짓인 경우 # 루프를 반복하면서 w값을 업데이트 한다. # 결과를 출력한다. Pseudo Code
  • 27. by Pyson 서포트 벡터 머신 -끝- Support Vector Machine - 끝 -