[机器学习]支持向量机3——引入松弛因子

时间:2021-08-16 04:21:11

支持向量机1——间隔和支持向量

支持向量机2——对偶问题

支持向量机3——引入松弛因子

支持向量机4——SMO算法
很多情况下,一个分离超平面并不能完全将训练数据分成两部分。那么我们这时可以允许出现一些误差。故引入松弛因子。
从下图中我们可以看到一些样本不能满足间隔大于1这个条件。
[机器学习]支持向量机3——引入松弛因子
我们令松弛因子: ζ i 0 ,使得目标函数加生松弛因子 ζ i 大于等于1。即 y i ( w T x i + b ) 1 ζ i ,同时为松弛因子加入一个代价,以免松弛因子过分大。

min ζ , ω , b 1 2 | | ω | | 2 + C i = 1 m ζ i s t . y i ( w T x i + b ) 1 ζ i i = 1 , 2 , . . . m ζ i 0

其中C为惩罚因子(C>0),C的值越大惩罚的力度越大,当C趋于无穷大,那么就是线性可分问题。
拉格朗日函数变成:
(3.1) L ( ω , b , ζ , α , r ) = 1 2 | | ω | | 2 + C i = 1 m ζ i i = 1 m α i [ y i ( w T x i + b ) 1 + ζ i ] i = 1 m r i ζ i

KKT条件:

  • α i 0
  • y i ( ω T x i + b ) 1 + ζ i 0
  • α [ y i ( ω T x i + b ) 1 + ζ i ] = 0
  • r i 0
  • r i ζ I = 0

(3.2) L ω = 0 ω = i = 1 m α i y i x i L ω = 0 i = 1 m α i y i = 0 L ζ i = 0 α i = C r i

( 3.2 ) 得到的带入 ( 3.1 ) 中,得出:

(3.3) max α W ( α ) = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i x j s t .   i = 1 m α i y i = 0 0 α i C   i = 1 , 2 , . . . m

此时KKT条件:

(3.4) α i = 0 y i ( ω T x i + b ) 1 α i = C y i ( ω T x i + b ) 1 0 < α i < C y i ( ω T x i + b ) = 1

[机器学习]支持向量机3——引入松弛因子

参考资料

1.https://blog.csdn.net/luoshixian099/article/details/51073885#comments