-
线性可分 SVM
对于线性可分的数据,SVM 与之前讲过的 感知器算法 有异曲同工之妙。二者都是通过学得一个超平面以对数据进行分类,都是有解的。只不过 感知器算法有无数个解,而 SVM 只有一个最优解。
下面开始介绍 SVM 的相关内容。
-
函数间隔与几何间隔
所谓间隔,在这里是指样本点到超平面的距离,也可以用来表示分类预测的置信度(间隔越大,则分类有更高的置信度,反之同理)。
-
几何间隔
几何间隔类似于“点到线的距离”: d = ∣ w ⋅ x + b ∣ ∣ ∣ w ∣ ∣ d = \frac{| w·x+b |}{||w||} d=∣∣w∣∣∣w⋅x+b∣, ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣ 表示 L2 范数。
以此对于样本点 x i x_i xi,定义其到超平面的几何间隔为: r i = y i w ⋅ x i + b ∣ ∣ w ∣ ∣ r_i = y_i\frac{w·x_i+b}{||w||} ri=yi∣∣w∣∣w⋅xi+b.
r i r_i ri 的正负可表示分类是否正确: y i 与 w ⋅ x i + b ∣ ∣ w ∣ ∣ y_i 与 \frac{w·x_i+b}{||w||} yi与∣∣w∣∣w⋅xi+b 同号,则表示分类正确;异号则表示分类错误。
-
函数间隔
函数间隔中,我们可用 w ⋅ x + b w·x+b w⋅x+b 来相对地表示样本点 x i x_i xi 到超平面的距离以及类别。同样根据符号是否相同来判断分类是否正确。
以此对于样本点 x i x_i xi,定义其到超平面的函数间隔为: r i ‾ = y i ( w ⋅ x i + b ) \overline{r_i} = y_i(w·x_i+b) ri=yi(w⋅xi+b).
-
关系
若 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1,两间隔相等;
若 w , b w,b w,b 成比例改变,函数间隔也按比例改变,而几何间隔不变。
-
-
硬间隔最大化
对于线性可分数据,我们能够得到无穷个分离超平面,但是使得所有样本点到超平面的距离之和最大的超平面是唯一的。
之前说过点到超平面的距离可表示分类的置信度,那么间隔最大的超平面可以以最大的置信度对数据进行分类。也就是说,我们不仅要将正负样本点分开,还要有足够大的把握将他们分开。这样的超平面的泛化能力应当也很好。
-
求几何间隔最大的分离超平面可表示为下面的约束优化问题:
w , b max r \mathop{}_{w,b}^{\max} r w,bmaxr
s . t . s.t. s.t. y i [ w ⋅ x i + b ∣ ∣ w ∣ ∣ ] ≥ r , i = 1 , 2 , . . . , M y_i[\frac{w·x_i+b}{||w||}] \ge r,i=1,2,...,M yi[∣∣w∣∣w⋅xi+b]≥r,i=1,2,...,M
-
而几何间隔可用函数间隔表示: r = r ‾ ∣ ∣ w ∣ ∣ r=\frac{\overline{r}}{||w||} r=∣∣w∣∣r,则约束问题改变为:
w , b max r ‾ ∣ ∣ w ∣ ∣ \mathop{}_{w,b}^{\max} \frac{\overline{r}}{||w||} w,bmax∣∣w∣∣r
s . t . s.t. s.t. y i ( w ⋅ x i + b ) ≥ r ‾ , i = 1 , 2 , . . . , M y_i(w·x_i+b) \ge \overline{r},i=1,2,...,M yi(w⋅xi+b)≥r,i=1,2,...,M
-
其中 r ‾ \overline{r} r 的大小对约束问题没有影响(可以在 w , b w,b w,b 中对 r ‾ \overline{r} r 的变化进行同倍数抵消),所以可取 r ‾ = 1 \overline{r}=1 r=1,得到:
w , b max 1 ∣ ∣ w ∣ ∣ \mathop{}_{w,b}^{\max} \frac{1}{||w||} w,bmax∣∣w∣∣1
s . t . s.t. s.t. y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , . . . , M y_i(w·x_i+b) \ge 1,i=1,2,...,M yi(w⋅xi+b)≥1,i=1,2,...,M
-
又因 最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1 等价于 最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2,所以最终约束问题转化为:
w , b max 1 2 ∣ ∣ w ∣ ∣ 2 \mathop{}_{w,b}^{\max} \frac{1}{2}||w||^2 w,bmax21∣∣w∣∣2
s . t . s.t. s.t. y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , M y_i(w·x_i+b)-1 \ge 0,i=1,2,...,M yi(w⋅xi+b)−1≥0,i=1,2,...,M
(平方是为了去根号, 1 2 \frac{1}{2} 21 是为了在后续求导中约掉平方)
-
最终
求得最优解 w ∗ , b ∗ w^*,b^* w∗,b∗,得到分离超平面 w ∗ x + b ∗ = 0 w^*x+b^*=0 w∗x+b∗=0,存在且唯一;
决策函数 f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^*x+b^*) f(x)=sign(w∗x+b∗)
-
-
对偶算法
在求解约束问题最优解时,可以应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,更容易求解。
-
构建拉格朗日函数
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 M α i [ y i ( w ⋅ x i + b ) − 1 ] L(w,b,α)=\frac{1}{2}||w||^2-\sum_{i=1}^{M}α_i[y_i(w·x_i+b)-1] L(w,b,α)=21∣∣w∣∣2−∑i=1Mαi[yi(w⋅xi+b)−1]
= 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 M α i y i ( w ⋅ x i + b ) + ∑ i = 1 M α i =\frac{1}{2}||w||^2-\sum_{i=1}^{M}α_iy_i(w·x_i+b)+\sum_{i=1}^{M}α_i =21∣∣w∣∣2−∑i=1Mαiyi(w⋅xi+b)+∑i=1Mαi
α i ≥ 0 , i = 1 , 2 , . . . , M α_i\ge0,i=1,2,...,M αi≥0,i=1,2,...,M
-
根据对偶性,将原始“最小最大”问题转化为“最大最小”问题
w , b min α max L ( w , b , α ) ⟹ α max w , b min L ( w , b , α ) \mathop{}_{w,b}^{\min}\mathop{}_{α}^{\max} L(w,b,α) \Longrightarrow \mathop{}_{α}^{\max}\mathop{}_{w,b}^{\min} L(w,b,α) w,bminαmaxL(w,b,α)⟹αmaxw,bminL(w,b,α)
-
为求最小,分别对 w, b 求偏导并等于 0
∇ w L ( w , b , α ) = w − ∑ i = 1 M α i y i x i = 0 \nabla_wL(w,b,α)=w-\sum_{i=1}^{M}α_iy_ix_i=0 ∇wL(w,b,α)=w−∑i=1Mαiyixi=0
∇ b L ( w , b , α ) = ∑ i = 1 M α i y i = 0 \nabla_bL(w,b,α)=\sum_{i=1}^{M}α_iy_i=0 ∇bL(w,b,α)=∑i=1Mαiyi=0
得
w = ∑ i = 1 M α i y i x i w=\sum_{i=1}^{M}α_iy_ix_i w=∑i=1Mαiyixi, ∑ i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=0 ∑i=1Mαiyi=0
将结果代回,得
w , b min L ( w , b , α ) = − 1 2 ∑ i = 1 M ∑ j = 1 M α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 M α i \mathop{}_{w,b}^{\min} L(w,b,α)=-\frac{1}{2}\sum_{i=1}^{M}\sum_{j=1}^{M}α_iα_jy_iy_j(x_i·x_j)+\sum_{i=1}^{M}α_i w,bminL(w,b,α)=−21∑i=1M∑j=1Mαiαjyiyj(xi⋅xj)+∑i=1Mαi
s . t . s.t. s.t. ∑ i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=0 ∑i=1Mαiyi=0
α i ≥ 0 , i = 1 , 2 , . . . , M α_i\ge0,i=1,2,...,M αi≥0,i=1,2,...,M
-
求 w , b min L ( w , b , α ) \mathop{}_{w,b}^{\min} L(w,b,α) w,bminL(w,b,α) 对 α α α 的极大 α max w , b min L ( w , b , α ) \mathop{}_{α}^{\max}\mathop{}_{w,b}^{\min} L(w,b,α) αmaxw,bminL(w,b,α)
添 “负号”将求极大转化为求极小,得到,
α min 1 2 ∑ i = 1 M ∑ j = 1 M α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 M α i \mathop{}_{α}^{\min} \frac{1}{2}\sum_{i=1}^{M}\sum_{j=1}^{M}α_iα_jy_iy_j(x_i·x_j)-\sum_{i=1}^{M}α_i αmin21∑i=1M∑j=1Mαiαjyiyj(xi⋅xj)−∑i=1Mαi
s . t . s.t. s.t. ∑ i = 1 M α i y i = 0 \sum_{i=1}^{M}α_iy_i=0 ∑i=1Mαiyi=0
α i ≥ 0 , i = 1 , 2 , . . . , M α_i\ge0,i=1,2,...,M αi≥0,i=1,2,...,M
-
求得最优解 α ∗ = ( α 1 , α 2 , . . . , α M ) T α^*=(α_1,α_2,...,α_M)^T α∗=(α1,α2,...,αM)T,根据 KKT 条件,
由此可得到 w ∗ = ∑ i = 1 M α i ∗ y i x i w^*=\sum_{i=1}^{M}α_i^*y_ix_i w∗=∑i=1Mαi∗yixi
又因 y j ( w ∗ x j + b ∗ ) − 1 = 0 y_j(w^*x_j+b^*)-1=0 yj(w∗xj+b∗)−1=0,且注意到 y j 2 = 1 y_j^2=1 yj2=1
可得到 b ∗ = y j − ∑ i = 1 M α i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^{M}α_i^*y_i(x_i·x_j) b∗=yj−∑i=1Mαi∗yi(xi⋅xj)
-
最终
分离超平面可写成: ∑ i = 1 M α i ∗ y i ( x ⋅ x j ) + b ∗ = 0 \sum_{i=1}^{M}α_i^*y_i(x·x_j)+b^*=0 ∑i=1Mαi∗yi(x⋅xj)+b∗=0
分类决策函数可写成: f ( x ) = s i g n ( ∑ i = 1 M α i ∗ y i ( x ⋅ x j ) + b ∗ ) f(x)=sign(\sum_{i=1}^{M}α_i^*y_i(x·x_j)+b^*) f(x)=sign(∑i=1Mαi∗yi(x⋅xj)+b∗)
-
-
支持向量
根据 w ∗ = ∑ i = 1 M α i ∗ y i x i w^*=\sum_{i=1}^{M}α_i^*y_ix_i w∗=∑i=1Mαi∗yixi 以及 b ∗ = y j − ∑ i = 1 M α i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^{M}α_i^*y_i(x_i·x_j) b∗=yj−∑i=1Mαi∗yi(xi⋅xj) 可知,
w ∗ , b ∗ w^*,b^* w∗,b∗ 只依赖与训练数据中对应于 α i ∗ > 0 α_i^*>0 αi∗>0 的样本点,而其他样本点对它们没有影响,所以我们将训练数据中对应于 α i ∗ > 0 α_i^*>0 αi∗>0 的样本点 x i ∈ R n x_i∈R^n xi∈Rn 称为支持向量,且 w ∗ x i + b ∗ = − + 1 w^*x_i+b^*=\mathop{}_{-}^{+}1 w∗xi+b∗=−+1,即 x i x_i xi 一定在决策边界上。
机器学习 - 支持向量机(1)- 线性可分 SVM(间隔最大化)
最新推荐文章于 2020-11-26 10:08:55 发布