周志华《机器学习》西瓜书 小白Python学习笔记(七) ———— 第六章 支持向量机SVM
什么是SVM
支持向量机(support vector machines,SVM)的基本定义为在特征空间上的间隔最大的线性分类器,那么什么是间隔最大的线性分类器呢?
看这张图,样本空间为 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } \{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\} {
(x1,y1),(x2,y2),...,(xn,yn)}n个点, y y y表示标签取值为-1或1,即图中的黑、白两类点,我们试图找到一个超平面将两类点分隔开,如图,设超平面的表达式为 w x + b = 0 \boldsymbol {wx} +b=0 wx+b=0
那么对于黑、白两种点分别有:
{ w x i + b > 0 w x i + b < 0 \left\{\begin{aligned}\boldsymbol {wx_i} +b>0 \\ \boldsymbol {wx_i} +b<0 \end{aligned} \right. {
wxi+b>0wxi+b<0
经过 w \boldsymbol w w和 b b b的放缩可以整理成
{ w x i + b ≥ 1 , y i = 1 w x i + b ≤ − 1 , y i = − 1 \left\{\begin{aligned} & \boldsymbol {wx_i} +b\geq 1,y_i=1& \\ &\boldsymbol {wx_i} +b\leq-1,y_i=-1& \end{aligned} \right. {
wxi+b≥1,yi=1wxi+b≤−1,yi=−1
使得两类点中距离这个超平面最近的点有 w x i + b = 1 , − 1 \boldsymbol {wx_i} +b=1,-1 wxi+b=1,−1(即图片中标红的的点),这些点对应的就是支持向量。
根据数学知识,样本空间内任意一个点 x i \bf x_i xi到这个超平面的距离为
d i = ∣ w x i + b ∣ ∥ w ∥ d_i=\frac{|\boldsymbol {wx_i} +b|}{\|\boldsymbol{w}\|} di=∥w∥∣wxi+b∣
研究支持向量对应的点到超平面的距离时,就变成了
d = 1 ∥ w ∥ d=\frac1{\|\boldsymbol{w}\|} d=∥w∥1
刚才所说的间隔最大的线性分类器中的“间隔”就是指的这个啦!
最优化函数即为
m a x 1 ∥ w ∥ max\frac1{\|\boldsymbol{w}\|} max∥w∥1
条件是 w w w能将两类点分隔开,即 w x i + b \boldsymbol {wx_i} +b wxi+b与 y i y_i yi同号,又因为 ∣ w x i + b ∣ ≥ 1 , y = 1 , − 1 |\boldsymbol {wx_i} +b|\geq1,y=1,-1 ∣wxi+b∣≥1,y=1,−1,所以可以表示为
y i ( w x i + b ) ≥ 1 , i = 1 , … , n y_{i}\left(w x_{i}+b\right) \geq 1, i=1, \ldots, n yi(wxi+b)≥1,i=1,…,n
这就是支持向量机的由来。
SVM求解过程
转化为Lagrange对偶问题
回到之前得到的目标函数:
m a x 1 ∥ w ∥ max\frac1{\|\boldsymbol{w}\|} max∥w∥1
s . t . y i ( w x i + b ) ≥ 1 , i = 1 , … , n s.t. y_{i}\left(w x_{i}+b\right) \geq 1, i=1, \ldots, n s.t.yi(wxi+b)≥1,i=1,…,n
可以转化成:
m i n 1 2 ∥ w ∥ 2 min \frac1{2}{\|\boldsymbol{w}\|}^2 min21∥w∥2
s . t . y i ( w x i + b ) ≥ 1 , i = 1 , … , n s.t. y_{i}\left(\boldsymbol{w x}_{i}+b\right) \geq 1, i=1, \ldots, n s.t.yi(wxi+b)≥1,i=1,…,n
对于这个凸二次规划问题,可以通过拉格朗日对偶性质,将其转化为原问题的对偶问题进行求解。首先根据拉格朗日乘子法得到:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w x i + b ) − 1 ) \mathcal{L}(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left(y_{i}\left(w x_{i}+b\right)-1\right) L(w,b,α)=21∥w∥2−∑i=1nαi(yi(wxi+b)−1)
其中 α i ≥ 0 , i = 1 , 2 , . . . , n \alpha_i\geq0,i=1,2,...,n αi≥0,i=1,2,...,n
我们令
θ ( w ) = max α i ≥ 0 L ( w , b , α ) \theta(w)=\max_{\alpha_i\geq0}\mathcal{L}(w, b, \alpha) θ(w)=αi≥0maxL(w,b,α)
易知,只有当这个超平面将两类样本全部分隔开即所有约束条件都满足,即 y i ( w x i + b ) ≥ 1 , i = 1 , … , n y_{i}\left(w x_{i}+b\right) \geq 1, i=1, \ldots, n yi(wxi+b)≥1,i=1,…,n时, θ ( w ) = 1 2 ∥ w ∥ 2 \theta(w)=\frac{1}{2}\|w\|^{2} θ(w)=21∥w∥