Support Vector Machine
: 기본 이해와 OpenCV 실습
Hansol Kang
2
Overview
§ SVM과 관련된 일화
§ SVM의 개념과 이론
§ OpenCV를 이용한 SVM
3
SVM과 관련된 일화
§ SVM Vs. NN https://wedatalab.tistory.com/89
4
SVM의 개념과 이론
§ SVM은 최대 마진 분류기
§
1
2
3
Hyper Plane
Support Vector
Margin
즉, 이상적인 분류기는 Margin이 최대화 되는 Hyper Plane을 찾는 것
§
§
§
5
SVM의 개념과 이론
§ SVM은 최대 마진 분류기
§
§ 𝑎𝑥 + 𝑏𝑦 + 𝑐 = 0
§ 𝑎 𝑏 )
𝑥
𝑦 + 𝑐 = 0
§
§ 𝑤! 𝑤" )
𝑥
𝑦 + 𝑏 = 0
§ +
𝒘𝑻
) +
𝑿 + 𝒃 = 𝟎
§
§ +
𝑤$
) ̅
𝑥" = −𝑏
§ +
𝑤$ ) ̅
𝑥! = −𝑏
§ +
𝑤$
) ( ̅
𝑥" − ̅
𝑥!) = 0
§ +
𝒘𝑻
!
𝑤
!
#
$
𝑋
+
𝑏
=
0
+
𝑤$
!
𝒙𝟏
!
𝒙𝟐
!
𝒙𝟐 − !
𝒙𝟏
6
SVM의 개념과 이론
§ SVM은 최대 마진 분류기
§
§
§ +
𝑤$ ) 4
𝑋 + 𝑏 = 1, +
𝑤$ ) 4
𝑋 + 𝑏 = −1
§
§ +
𝑤$ ) 4
𝑋 + 𝑏 ≥ 1
§ +
𝑤$
) 4
𝑋 + 𝑏 ≤ −1
§
§ 𝑦%(+
𝑤$
) +
𝑥% + 𝑏) ≥ 1
!
𝑤
!
#
$
𝑋
+
𝑏
=
−
1
!
𝑤
!
#
$
𝑋
+
𝑏
=
0
!
𝑤
!
#
$
𝑋
+
𝑏
=
1
+
𝑤$
7
SVM의 개념과 이론
§ SVM은 최대 마진 분류기
§
§ +
𝑤$
) 4
𝑋 + 𝑏 ≥ 1, +
𝑤$
) 4
𝑋 + 𝑏 ≤ −1
§
§ 𝑦%(+
𝑤$
) +
𝑥% + 𝑏) − 1 ≥ 0. <
+
𝑋%: 𝑃𝑙𝑢𝑠 𝐷𝑎𝑡𝑎 , +
𝑌%: +1
+
𝑋%: 𝑀𝑖𝑛𝑢𝑠 𝐷𝑎𝑡𝑎 , +
𝑌%: −1
§
§
§ margin = ( ̅
𝑥& − ̅
𝑥') )
(
)!
(
)!
§
̅
+", (
)!
(
)! −
̅
+#, (
)!
(
)!
§ =
'-&!
(
)! −
'-'!
(
)! =
𝟐
(
𝒘
§ +
𝒘
Constraint
̅
𝑥#
̅
𝑥$
!
𝒙$
− !
𝒙#
!
𝑤
!
#
$
𝑋
+
𝑏
=
−
1
!
𝑤
!
#
$
𝑋
+
𝑏
=
0
!
𝑤
!
#
$
𝑋
+
𝑏
=
1
+
𝑤$
8
SVM의 개념과 이론
§ 어떻게 최적화 할까?
§ 𝑦%(+
𝑤$
) +
𝑥% + 𝑏) − 1 ≥ 0 +
𝑤
§
§ 𝑓 𝑥, 𝑦 = 𝑎𝑥 + 𝑏𝑦 + 𝑐 𝑔 𝑥, 𝑦 = 𝑥" + 𝑦" − 𝑟"
§
§ 𝜵𝒇 𝒙, 𝒚 = 𝝀 𝜵𝒈 𝒙, 𝒚 →
§ 𝒈 𝒙, 𝒚 = 𝟎 →
§ L = 𝑓(𝑥, 𝑦) − 𝜆𝑔(𝑥, 𝑦)
§ 𝛻+,1,2L = 0
§ L = 𝑓(𝑥, 𝑦) − ∑%3!
4
𝜆%𝑔%(𝑥, 𝑦)
𝑔 𝑥, 𝑦
𝑓 𝑥, 𝑦
9
SVM의 개념과 이론
§ 어떻게 최적화 할까?
§
§
§
§ 𝛻+,1,2L = 0
§ L(𝜃, 𝛼) = 𝑓(𝜃) − ∑!"#
$
𝛼!(𝑔!(𝜃)) 𝑔!(𝜃) ≥ 0
§
§
%&
%'"
= 0, 𝑖 = 1, … , 𝑘
§
§ 𝛼! ≥ 0, 𝑖 = 1, … , 𝑘
§
§ 𝛼!𝑔! (𝜃) = 0, 𝑖 = 1, … , 𝑘
10
SVM의 개념과 이론
§ 어떻게 최적화 할까?
§ +
𝑤
!
"
+
𝑤 "
§
𝟏
𝟐
+
𝒘 𝟐 𝒚𝒊(+
𝒘𝑻 ) +
𝒙𝒊 + 𝒃) − 𝟏 ≥ 𝟎
§
§ 𝐿 =
!
"
+
𝑤 "
− ∑%3!
7
𝛼% 𝑦% +
𝑤$
) ̅
𝑥% + 𝑏 − 1
𝜕𝐿
𝜕#
𝑤
= #
𝑤 − ' 𝛼_𝑦_ ̅
𝑥_ = 0
𝜕𝐿
𝜕𝑏
= − ' 𝛼_𝑦_ = 0
#
𝑤 = ' 𝛼_𝑦_ ̅
𝑥_
' 𝛼_𝑦_ = 0
KKT Condition 1 KKT Condition 2
KKT Condition 3
𝛼_ ≥ 0
𝛼_(𝑦_ #
𝑤` 0 ̅
𝑥_ + 𝑏 − 1) = 0
11
SVM의 개념과 이론
§ 어떻게 최적화 할까?
§ 𝐿 =
#
(
3
𝑤 ( − ∑!"#
)
𝛼! 𝑦! 3
𝑤* 6 ̅
𝑥! + 𝑏 − 1
§ =
#
(
3
𝑤 ( − ∑ 𝛼!𝑦! 3
𝑤* ̅
𝑥! − 𝑏 ∑ 𝛼!𝑦! + ∑ 𝛼!
§
#
(
3
𝑤 ( +#+
(
=
+# ∑ -"." ̅
0"
(
∑ -"." ̅
0"+#
(
§ 𝐿 = −
∑ -"." ̅
0"+#
(
+ ∑ 𝛼!
§ −
∑ -"." ̅
0" ∑ -$.$ ̅
0$
(
+ ∑ 𝛼!
§ ∑ 𝛼! −
∑ ∑ -"-$.".$ ̅
0" ̅
0$
(
§ 𝛻- 𝐿 = 0
§ 𝛼
§ 𝑤∗ = ∑ 𝛼!
∗𝑦! ̅
𝑥! 𝑤∗ 6 ̅
𝑥23 + 𝑏∗ = +1
#
𝑤 = ' 𝛼_𝑦_ ̅
𝑥_
' 𝛼_𝑦_ = 0
KKT Condition 2
KKT Condition 3
𝛼_ ≥ 0
𝛼_(𝑦_ #
𝑤 0 ̅
𝑥_ + 𝑏 − 1) = 0
12
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
𝑥a = (−1,2), 𝑥b = −3,3 , 𝑥c = (1, −2)
L = ' 𝛼_ −
1
2
'
_
'
d
𝛼_𝛼d𝑦_𝑦d( ̅
𝑥_ 0 ̅
𝑥d)
5 9 5
9 18 9
5 9 5
𝑦%𝑦8( ̅
𝑥% ) ̅
𝑥8)
= 𝛼a + 𝛼b + 𝛼c −
5
2
𝛼a
b − 9𝛼b
b −
5
2
𝛼c
b
− 9𝛼a𝛼b − 5𝛼a𝛼c − 9𝛼b𝛼c
𝑦a = 1, 𝑦b = 1, 𝑦c = −1
13
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§ 𝐿 = 𝛼# + 𝛼( + 𝛼4 −
5
(
𝛼#
( − 9𝛼(
( −
5
(
𝛼4
( − 9𝛼#𝛼( − 5𝛼#𝛼4 − 9𝛼(𝛼4
§
§ ∑ 𝛼!𝑦! = 𝛼# + 𝛼( − 𝛼4 = 0 𝛼# ≥ 0, 𝛼( ≥ 0, 𝛼4 ≥ 0
§ 𝛼%(𝑦% +
𝑤$ ) ̅
𝑥% + 𝑏 − 1 = 0
§
§ 𝛼! = 0
§ 𝛼" = 0
§ 𝛼9 = 0
§ 𝛼! ≠ 0, 𝛼" ≠ 0, 𝛼9 ≠ 0
14
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§ 𝜶𝟏 = 𝟎
§ 𝛼( − 𝛼4 = 0 𝛼( = 𝛼4
§ 𝐿 = 𝛼# + 𝛼( + 𝛼4 −
5
(
𝛼#
( − 9𝛼(
( −
5
(
𝛼4
( − 9𝛼#𝛼( − 5𝛼#𝛼4 − 9𝛼(𝛼4
§ L = 2𝛼( −
6#
(
𝛼(
(
§
%&
%-%
= 2 − 41𝛼( = 0
§ 𝛼( = 0.049, 𝛼4 = 0.049, 𝛼# = 0
§ 3
𝒘 = ∑ 𝛼!𝑦! ̅
𝑥! = 0.049 −3,3 − (1, −2) = 0.049 −4,5 = (−𝟎. 𝟏𝟗𝟔, 𝟎. 𝟐𝟒𝟓)
§ 𝛼![𝑦! 3
𝑤 6 ̅
𝑥! + 𝑏 − 1] = 0.049[(−0.196,0.245) 6 −3,3 + 𝑏 − 1] = 0
§ 𝒃 = 1 − −0.196,0.245 6 −3,3 = 1 − 1.323 = −𝟎. 𝟑𝟐𝟑
15
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§ 𝜶𝟏 = 𝟎
§ 3
𝑤 = (−0.196,0.245)
§ 𝑏 = −0.323
§ 3
𝑤 6 𝑥# + 𝑏 ≥ 1 −0.196,0.245 6 −1,2 − 0.323 = 0.363
§ 3
𝑤 6 𝑥( + 𝑏 ≥ 1 −0.196,0.245 6 −3,3 − 0.323 = 1
§ 3
𝑤 6 𝑥4 + 𝑏 ≤ −1 −0.196,0.245 6 1, −2 − 0.323 = −1
SV
SV
Not satisfied
16
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§ 𝜶𝟐 = 𝟎
§ 𝛼! − 𝛼9 = 0 𝛼! = 𝛼9
§ 𝐿 = 𝛼! + 𝛼" + 𝛼9 −
:
"
𝛼!
"
− 9𝛼"
"
−
:
"
𝛼9
"
− 9𝛼!𝛼" − 5𝛼!𝛼9 − 9𝛼"𝛼9
§ L = 2𝛼! − 10𝛼!
"
§
;<
;=$
= 2 − 20𝛼! = 0
§ 𝛼! = 0.1, 𝛼9 = 0.1, 𝛼" = 0
§ +
𝒘 = ∑ 𝛼%𝑦% ̅
𝑥% = 0.1 −1,2 − (1, −2) = 0.1 −2,4 = (−𝟎. 𝟐, 𝟎. 𝟒)
§ 𝛼%[𝑦% +
𝑤 ) ̅
𝑥% + 𝑏 − 1] = 0.1[(−0.2,0.4) ) −1,2 + 𝑏 − 1] = 0
§ 𝒃 = 1 − −0.2,0.4 ) −1,2 = 1 − 1 = 𝟎
17
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§ 𝜶𝟐 = 𝟎
§ 3
𝑤 = (−0.2,0.4)
§ 𝑏 = 0
§ 3
𝑤 6 𝑥# + 𝑏 ≥ 1 −0.2,0.4 6 −1,2 = 1
§ 3
𝑤 6 𝑥( + 𝑏 ≥ 1 −0.2,0.4 6 −3,3 = 1.8
§ 3
𝑤 6 𝑥4 + 𝑏 ≤ −1 −0.2,0.4 6 1, −2 = −1
§ 𝜶𝟑 = 𝟎
§ 𝛼# + 𝛼( = 0
§ ∵ ∑ 𝛼!𝑦! = 𝛼# + 𝛼( − 𝛼4 = 0 𝛼# ≥ 0, 𝛼( ≥ 0, 𝛼4 ≥ 0)
Satisfied
SV
SV
18
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§ 𝜶𝟏 ≠ 𝟎, 𝜶𝟐 ≠ 𝟎, 𝜶𝟑 ≠ 𝟎
§ 𝐿 = 𝛼# + 𝛼( + 𝛼4 −
5
(
𝛼#
( − 9𝛼(
( −
5
(
𝛼4
( − 9𝛼#𝛼( − 5𝛼#𝛼4 − 9𝛼(𝛼4
§
%&
%-&
= 1 − 5𝛼# − 9𝛼( − 5𝛼4 = 0
§
%&
%-%
= 1 − 18𝛼( − 9𝛼# − 9𝛼4 = 0
§
%&
%-'
= 1 − 5𝛼4 − 5𝛼# − 9𝛼( = 0
5 9 5
9 18 9
5 9 5
𝛼#
𝛼(
𝛼4
=
1
1
1
𝛼#
𝛼(
𝛼4
=
5 9 5
9 18 9
5 9 5
7#
1
1
1
=
0.5
−0.444
0.5
Impossible case
19
SVM의 개념과 이론
§ 실제로 어떻게 풀까?
§
§ +
𝑤 = (−0.2,0.4)
§ 𝑏 = 0
§ +
𝑤 ) (𝑥, 𝑦) + 𝑏 = 0
§ −0.2𝑥 + 0.4𝑦 = 0
§ 𝑦 = 0.5𝑥
20
SVM의 개념과 이론
§ 만약 아래처럼 구분하기 힘든 경우라면?
§
§
!
𝑤! # 𝑥( + 𝑏 = −1 + 𝝃𝟏
21
SVM의 개념과 이론
§ 만약 아래처럼 구분하기 힘든 경우라면?
§
22
SVM의 개념과 이론
§ 만약 아래처럼 구분하기 힘든 경우라면?
§
𝑘 ̅
𝑥_, ̅
𝑥d = ̅
𝑥_ 0 ̅
𝑥d
Φ( ̅
𝑥_) 0 Φ( ̅
𝑥d)
𝐿 = ' 𝛼_ −
1
2
'
_
'
d
𝛼_𝛼d𝑦_𝑦d( ̅
𝑥_ 0 ̅
𝑥d)
𝑘 ̅
𝑥_, ̅
𝑥d = (1 + ̅
𝑥_ 0 ̅
𝑥d)o
𝑘 ̅
𝑥_, ̅
𝑥d = 𝑒
p ̅
q&p ̅
q'
(
br(
Linear :
Polynomial :
Gaussian
(RBF) :
𝑘 ̅
𝑥_, ̅
𝑥d = (Φ( ̅
𝑥_) 0 Φ( ̅
𝑥d))
23
OpenCV를 이용한 SVM
§ cv::ml::SVM
• static Ptr<SVM> create()
•
• virtual void SVM::setType(int val)
•
•
•
•
•
•
•
24
OpenCV를 이용한 SVM
§ cv::ml::SVM
•
•
•
•
•
•
•
•
•
•
25
OpenCV를 이용한 SVM
§ cv::ml::SVM
•
•
•
26
OpenCV를 이용한 SVM
§ cv::ml::SVM
•
•
•
•
•
•
•
•
•
•
•
•
27
OpenCV를 이용한 SVM
§ cv::ml::SVM
•
•
•
•
•
28
OpenCV를 이용한 SVM
§ cv::ml::SVM - 기본
Linear RBF
29
OpenCV를 이용한 SVM
§ cv::ml::SVM - 응용
30
OpenCV를 이용한 SVM
§ cv::ml::SVM
31
References
§ OpenCV로 배우는 컴퓨터 비전과 머신러닝 - 황선규
§ OpenCV를 위한 머신 러닝 ­ 마이클 베이어
§ 인공지능입문 10주차 1교시: 서포트 벡터 머신 (SVM)
https://youtu.be/JW2BsQZoqpw?si=ZZnl_eGiWZInW-Dp
§ [핵심 머신러닝] SVM 모델 1 (Margin, Hard Margin Linear SVM)
https://youtu.be/qFg8cDnqYCI?si=tuvnBGzQhG5aWjHR
§ (Docceptor 머신러닝 8-3) SVM 이해를 위한 Lagrange Multiplier & KKT condition
https://youtu.be/DyUW3UKxHOo?si=BkKDSqhFmCB_Rs6S
§ (Docceptor 머신러닝 8-4) 본격 SVM boundary 수학적 이해 및 유도-1
https://youtu.be/yKkzx9x2yug?si=IvVgI6aVIfjoI1lC
§ (Docceptor 머신러닝 8-5) 본격 SVM boundary 수학적 이해 및 유도-2
https://youtu.be/MV3YJmJ9ysk?si=xdZs6gdlYECq3V8V

Support Vector Machine - 기본 이해와 OpenCV 실습.pdf

  • 1.
    Support Vector Machine :기본 이해와 OpenCV 실습 Hansol Kang
  • 2.
    2 Overview § SVM과 관련된일화 § SVM의 개념과 이론 § OpenCV를 이용한 SVM
  • 3.
    3 SVM과 관련된 일화 §SVM Vs. NN https://wedatalab.tistory.com/89
  • 4.
    4 SVM의 개념과 이론 §SVM은 최대 마진 분류기 § 1 2 3 Hyper Plane Support Vector Margin 즉, 이상적인 분류기는 Margin이 최대화 되는 Hyper Plane을 찾는 것 § § §
  • 5.
    5 SVM의 개념과 이론 §SVM은 최대 마진 분류기 § § 𝑎𝑥 + 𝑏𝑦 + 𝑐 = 0 § 𝑎 𝑏 ) 𝑥 𝑦 + 𝑐 = 0 § § 𝑤! 𝑤" ) 𝑥 𝑦 + 𝑏 = 0 § + 𝒘𝑻 ) + 𝑿 + 𝒃 = 𝟎 § § + 𝑤$ ) ̅ 𝑥" = −𝑏 § + 𝑤$ ) ̅ 𝑥! = −𝑏 § + 𝑤$ ) ( ̅ 𝑥" − ̅ 𝑥!) = 0 § + 𝒘𝑻 ! 𝑤 ! # $ 𝑋 + 𝑏 = 0 + 𝑤$ ! 𝒙𝟏 ! 𝒙𝟐 ! 𝒙𝟐 − ! 𝒙𝟏
  • 6.
    6 SVM의 개념과 이론 §SVM은 최대 마진 분류기 § § § + 𝑤$ ) 4 𝑋 + 𝑏 = 1, + 𝑤$ ) 4 𝑋 + 𝑏 = −1 § § + 𝑤$ ) 4 𝑋 + 𝑏 ≥ 1 § + 𝑤$ ) 4 𝑋 + 𝑏 ≤ −1 § § 𝑦%(+ 𝑤$ ) + 𝑥% + 𝑏) ≥ 1 ! 𝑤 ! # $ 𝑋 + 𝑏 = − 1 ! 𝑤 ! # $ 𝑋 + 𝑏 = 0 ! 𝑤 ! # $ 𝑋 + 𝑏 = 1 + 𝑤$
  • 7.
    7 SVM의 개념과 이론 §SVM은 최대 마진 분류기 § § + 𝑤$ ) 4 𝑋 + 𝑏 ≥ 1, + 𝑤$ ) 4 𝑋 + 𝑏 ≤ −1 § § 𝑦%(+ 𝑤$ ) + 𝑥% + 𝑏) − 1 ≥ 0. < + 𝑋%: 𝑃𝑙𝑢𝑠 𝐷𝑎𝑡𝑎 , + 𝑌%: +1 + 𝑋%: 𝑀𝑖𝑛𝑢𝑠 𝐷𝑎𝑡𝑎 , + 𝑌%: −1 § § § margin = ( ̅ 𝑥& − ̅ 𝑥') ) ( )! ( )! § ̅ +", ( )! ( )! − ̅ +#, ( )! ( )! § = '-&! ( )! − '-'! ( )! = 𝟐 ( 𝒘 § + 𝒘 Constraint ̅ 𝑥# ̅ 𝑥$ ! 𝒙$ − ! 𝒙# ! 𝑤 ! # $ 𝑋 + 𝑏 = − 1 ! 𝑤 ! # $ 𝑋 + 𝑏 = 0 ! 𝑤 ! # $ 𝑋 + 𝑏 = 1 + 𝑤$
  • 8.
    8 SVM의 개념과 이론 §어떻게 최적화 할까? § 𝑦%(+ 𝑤$ ) + 𝑥% + 𝑏) − 1 ≥ 0 + 𝑤 § § 𝑓 𝑥, 𝑦 = 𝑎𝑥 + 𝑏𝑦 + 𝑐 𝑔 𝑥, 𝑦 = 𝑥" + 𝑦" − 𝑟" § § 𝜵𝒇 𝒙, 𝒚 = 𝝀 𝜵𝒈 𝒙, 𝒚 → § 𝒈 𝒙, 𝒚 = 𝟎 → § L = 𝑓(𝑥, 𝑦) − 𝜆𝑔(𝑥, 𝑦) § 𝛻+,1,2L = 0 § L = 𝑓(𝑥, 𝑦) − ∑%3! 4 𝜆%𝑔%(𝑥, 𝑦) 𝑔 𝑥, 𝑦 𝑓 𝑥, 𝑦
  • 9.
    9 SVM의 개념과 이론 §어떻게 최적화 할까? § § § § 𝛻+,1,2L = 0 § L(𝜃, 𝛼) = 𝑓(𝜃) − ∑!"# $ 𝛼!(𝑔!(𝜃)) 𝑔!(𝜃) ≥ 0 § § %& %'" = 0, 𝑖 = 1, … , 𝑘 § § 𝛼! ≥ 0, 𝑖 = 1, … , 𝑘 § § 𝛼!𝑔! (𝜃) = 0, 𝑖 = 1, … , 𝑘
  • 10.
    10 SVM의 개념과 이론 §어떻게 최적화 할까? § + 𝑤 ! " + 𝑤 " § 𝟏 𝟐 + 𝒘 𝟐 𝒚𝒊(+ 𝒘𝑻 ) + 𝒙𝒊 + 𝒃) − 𝟏 ≥ 𝟎 § § 𝐿 = ! " + 𝑤 " − ∑%3! 7 𝛼% 𝑦% + 𝑤$ ) ̅ 𝑥% + 𝑏 − 1 𝜕𝐿 𝜕# 𝑤 = # 𝑤 − ' 𝛼_𝑦_ ̅ 𝑥_ = 0 𝜕𝐿 𝜕𝑏 = − ' 𝛼_𝑦_ = 0 # 𝑤 = ' 𝛼_𝑦_ ̅ 𝑥_ ' 𝛼_𝑦_ = 0 KKT Condition 1 KKT Condition 2 KKT Condition 3 𝛼_ ≥ 0 𝛼_(𝑦_ # 𝑤` 0 ̅ 𝑥_ + 𝑏 − 1) = 0
  • 11.
    11 SVM의 개념과 이론 §어떻게 최적화 할까? § 𝐿 = # ( 3 𝑤 ( − ∑!"# ) 𝛼! 𝑦! 3 𝑤* 6 ̅ 𝑥! + 𝑏 − 1 § = # ( 3 𝑤 ( − ∑ 𝛼!𝑦! 3 𝑤* ̅ 𝑥! − 𝑏 ∑ 𝛼!𝑦! + ∑ 𝛼! § # ( 3 𝑤 ( +#+ ( = +# ∑ -"." ̅ 0" ( ∑ -"." ̅ 0"+# ( § 𝐿 = − ∑ -"." ̅ 0"+# ( + ∑ 𝛼! § − ∑ -"." ̅ 0" ∑ -$.$ ̅ 0$ ( + ∑ 𝛼! § ∑ 𝛼! − ∑ ∑ -"-$.".$ ̅ 0" ̅ 0$ ( § 𝛻- 𝐿 = 0 § 𝛼 § 𝑤∗ = ∑ 𝛼! ∗𝑦! ̅ 𝑥! 𝑤∗ 6 ̅ 𝑥23 + 𝑏∗ = +1 # 𝑤 = ' 𝛼_𝑦_ ̅ 𝑥_ ' 𝛼_𝑦_ = 0 KKT Condition 2 KKT Condition 3 𝛼_ ≥ 0 𝛼_(𝑦_ # 𝑤 0 ̅ 𝑥_ + 𝑏 − 1) = 0
  • 12.
    12 SVM의 개념과 이론 §실제로 어떻게 풀까? 𝑥a = (−1,2), 𝑥b = −3,3 , 𝑥c = (1, −2) L = ' 𝛼_ − 1 2 ' _ ' d 𝛼_𝛼d𝑦_𝑦d( ̅ 𝑥_ 0 ̅ 𝑥d) 5 9 5 9 18 9 5 9 5 𝑦%𝑦8( ̅ 𝑥% ) ̅ 𝑥8) = 𝛼a + 𝛼b + 𝛼c − 5 2 𝛼a b − 9𝛼b b − 5 2 𝛼c b − 9𝛼a𝛼b − 5𝛼a𝛼c − 9𝛼b𝛼c 𝑦a = 1, 𝑦b = 1, 𝑦c = −1
  • 13.
    13 SVM의 개념과 이론 §실제로 어떻게 풀까? § 𝐿 = 𝛼# + 𝛼( + 𝛼4 − 5 ( 𝛼# ( − 9𝛼( ( − 5 ( 𝛼4 ( − 9𝛼#𝛼( − 5𝛼#𝛼4 − 9𝛼(𝛼4 § § ∑ 𝛼!𝑦! = 𝛼# + 𝛼( − 𝛼4 = 0 𝛼# ≥ 0, 𝛼( ≥ 0, 𝛼4 ≥ 0 § 𝛼%(𝑦% + 𝑤$ ) ̅ 𝑥% + 𝑏 − 1 = 0 § § 𝛼! = 0 § 𝛼" = 0 § 𝛼9 = 0 § 𝛼! ≠ 0, 𝛼" ≠ 0, 𝛼9 ≠ 0
  • 14.
    14 SVM의 개념과 이론 §실제로 어떻게 풀까? § 𝜶𝟏 = 𝟎 § 𝛼( − 𝛼4 = 0 𝛼( = 𝛼4 § 𝐿 = 𝛼# + 𝛼( + 𝛼4 − 5 ( 𝛼# ( − 9𝛼( ( − 5 ( 𝛼4 ( − 9𝛼#𝛼( − 5𝛼#𝛼4 − 9𝛼(𝛼4 § L = 2𝛼( − 6# ( 𝛼( ( § %& %-% = 2 − 41𝛼( = 0 § 𝛼( = 0.049, 𝛼4 = 0.049, 𝛼# = 0 § 3 𝒘 = ∑ 𝛼!𝑦! ̅ 𝑥! = 0.049 −3,3 − (1, −2) = 0.049 −4,5 = (−𝟎. 𝟏𝟗𝟔, 𝟎. 𝟐𝟒𝟓) § 𝛼![𝑦! 3 𝑤 6 ̅ 𝑥! + 𝑏 − 1] = 0.049[(−0.196,0.245) 6 −3,3 + 𝑏 − 1] = 0 § 𝒃 = 1 − −0.196,0.245 6 −3,3 = 1 − 1.323 = −𝟎. 𝟑𝟐𝟑
  • 15.
    15 SVM의 개념과 이론 §실제로 어떻게 풀까? § 𝜶𝟏 = 𝟎 § 3 𝑤 = (−0.196,0.245) § 𝑏 = −0.323 § 3 𝑤 6 𝑥# + 𝑏 ≥ 1 −0.196,0.245 6 −1,2 − 0.323 = 0.363 § 3 𝑤 6 𝑥( + 𝑏 ≥ 1 −0.196,0.245 6 −3,3 − 0.323 = 1 § 3 𝑤 6 𝑥4 + 𝑏 ≤ −1 −0.196,0.245 6 1, −2 − 0.323 = −1 SV SV Not satisfied
  • 16.
    16 SVM의 개념과 이론 §실제로 어떻게 풀까? § 𝜶𝟐 = 𝟎 § 𝛼! − 𝛼9 = 0 𝛼! = 𝛼9 § 𝐿 = 𝛼! + 𝛼" + 𝛼9 − : " 𝛼! " − 9𝛼" " − : " 𝛼9 " − 9𝛼!𝛼" − 5𝛼!𝛼9 − 9𝛼"𝛼9 § L = 2𝛼! − 10𝛼! " § ;< ;=$ = 2 − 20𝛼! = 0 § 𝛼! = 0.1, 𝛼9 = 0.1, 𝛼" = 0 § + 𝒘 = ∑ 𝛼%𝑦% ̅ 𝑥% = 0.1 −1,2 − (1, −2) = 0.1 −2,4 = (−𝟎. 𝟐, 𝟎. 𝟒) § 𝛼%[𝑦% + 𝑤 ) ̅ 𝑥% + 𝑏 − 1] = 0.1[(−0.2,0.4) ) −1,2 + 𝑏 − 1] = 0 § 𝒃 = 1 − −0.2,0.4 ) −1,2 = 1 − 1 = 𝟎
  • 17.
    17 SVM의 개념과 이론 §실제로 어떻게 풀까? § 𝜶𝟐 = 𝟎 § 3 𝑤 = (−0.2,0.4) § 𝑏 = 0 § 3 𝑤 6 𝑥# + 𝑏 ≥ 1 −0.2,0.4 6 −1,2 = 1 § 3 𝑤 6 𝑥( + 𝑏 ≥ 1 −0.2,0.4 6 −3,3 = 1.8 § 3 𝑤 6 𝑥4 + 𝑏 ≤ −1 −0.2,0.4 6 1, −2 = −1 § 𝜶𝟑 = 𝟎 § 𝛼# + 𝛼( = 0 § ∵ ∑ 𝛼!𝑦! = 𝛼# + 𝛼( − 𝛼4 = 0 𝛼# ≥ 0, 𝛼( ≥ 0, 𝛼4 ≥ 0) Satisfied SV SV
  • 18.
    18 SVM의 개념과 이론 §실제로 어떻게 풀까? § 𝜶𝟏 ≠ 𝟎, 𝜶𝟐 ≠ 𝟎, 𝜶𝟑 ≠ 𝟎 § 𝐿 = 𝛼# + 𝛼( + 𝛼4 − 5 ( 𝛼# ( − 9𝛼( ( − 5 ( 𝛼4 ( − 9𝛼#𝛼( − 5𝛼#𝛼4 − 9𝛼(𝛼4 § %& %-& = 1 − 5𝛼# − 9𝛼( − 5𝛼4 = 0 § %& %-% = 1 − 18𝛼( − 9𝛼# − 9𝛼4 = 0 § %& %-' = 1 − 5𝛼4 − 5𝛼# − 9𝛼( = 0 5 9 5 9 18 9 5 9 5 𝛼# 𝛼( 𝛼4 = 1 1 1 𝛼# 𝛼( 𝛼4 = 5 9 5 9 18 9 5 9 5 7# 1 1 1 = 0.5 −0.444 0.5 Impossible case
  • 19.
    19 SVM의 개념과 이론 §실제로 어떻게 풀까? § § + 𝑤 = (−0.2,0.4) § 𝑏 = 0 § + 𝑤 ) (𝑥, 𝑦) + 𝑏 = 0 § −0.2𝑥 + 0.4𝑦 = 0 § 𝑦 = 0.5𝑥
  • 20.
    20 SVM의 개념과 이론 §만약 아래처럼 구분하기 힘든 경우라면? § § ! 𝑤! # 𝑥( + 𝑏 = −1 + 𝝃𝟏
  • 21.
    21 SVM의 개념과 이론 §만약 아래처럼 구분하기 힘든 경우라면? §
  • 22.
    22 SVM의 개념과 이론 §만약 아래처럼 구분하기 힘든 경우라면? § 𝑘 ̅ 𝑥_, ̅ 𝑥d = ̅ 𝑥_ 0 ̅ 𝑥d Φ( ̅ 𝑥_) 0 Φ( ̅ 𝑥d) 𝐿 = ' 𝛼_ − 1 2 ' _ ' d 𝛼_𝛼d𝑦_𝑦d( ̅ 𝑥_ 0 ̅ 𝑥d) 𝑘 ̅ 𝑥_, ̅ 𝑥d = (1 + ̅ 𝑥_ 0 ̅ 𝑥d)o 𝑘 ̅ 𝑥_, ̅ 𝑥d = 𝑒 p ̅ q&p ̅ q' ( br( Linear : Polynomial : Gaussian (RBF) : 𝑘 ̅ 𝑥_, ̅ 𝑥d = (Φ( ̅ 𝑥_) 0 Φ( ̅ 𝑥d))
  • 23.
    23 OpenCV를 이용한 SVM §cv::ml::SVM • static Ptr<SVM> create() • • virtual void SVM::setType(int val) • • • • • • •
  • 24.
    24 OpenCV를 이용한 SVM §cv::ml::SVM • • • • • • • • • •
  • 25.
    25 OpenCV를 이용한 SVM §cv::ml::SVM • • •
  • 26.
    26 OpenCV를 이용한 SVM §cv::ml::SVM • • • • • • • • • • • •
  • 27.
    27 OpenCV를 이용한 SVM §cv::ml::SVM • • • • •
  • 28.
    28 OpenCV를 이용한 SVM §cv::ml::SVM - 기본 Linear RBF
  • 29.
    29 OpenCV를 이용한 SVM §cv::ml::SVM - 응용
  • 30.
  • 31.
    31 References § OpenCV로 배우는컴퓨터 비전과 머신러닝 - 황선규 § OpenCV를 위한 머신 러닝 ­ 마이클 베이어 § 인공지능입문 10주차 1교시: 서포트 벡터 머신 (SVM) https://youtu.be/JW2BsQZoqpw?si=ZZnl_eGiWZInW-Dp § [핵심 머신러닝] SVM 모델 1 (Margin, Hard Margin Linear SVM) https://youtu.be/qFg8cDnqYCI?si=tuvnBGzQhG5aWjHR § (Docceptor 머신러닝 8-3) SVM 이해를 위한 Lagrange Multiplier & KKT condition https://youtu.be/DyUW3UKxHOo?si=BkKDSqhFmCB_Rs6S § (Docceptor 머신러닝 8-4) 본격 SVM boundary 수학적 이해 및 유도-1 https://youtu.be/yKkzx9x2yug?si=IvVgI6aVIfjoI1lC § (Docceptor 머신러닝 8-5) 본격 SVM boundary 수학적 이해 및 유도-2 https://youtu.be/MV3YJmJ9ysk?si=xdZs6gdlYECq3V8V