6 支持向量机
SVM
间隔与支持向量机
误差相近的时候如何选择模型
NFL(没有免费的午餐)——模型不能随意比较——要依赖于数据
能不能忘记错误率,考虑模型的稳定性——鲁棒性——考虑如果训练数据稍微波动,错误率受影响大不大
企图让两部分(两类)之间的距离(Margin隔离带的宽度)最大
样本空间中任意点到超平面
w
T
+
b
=
0
w^T+b=0
wT+b=0的距离是
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r = \frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
间隔:
γ
=
2
∣
∣
w
∣
∣
\gamma=\frac{2}{||w||}
γ=∣∣w∣∣2
第一目标是要让间隔最大化,然后再满足所有点都在管子外面
支持向量机的基本型:
m
i
n
1
2
∣
∣
w
∣
∣
2
min \frac12||w||^2
min21∣∣w∣∣2求w,b,使得
y
i
(
w
T
x
i
+
b
)
>
=
1
y_i(w^Tx_i+b)>=1
yi(wTxi+b)>=1
- SVM分类问题大致有三种:线性可分、近似线性可分、线性不可分
对偶问题
下面说解法——拉格朗日法
拉格朗日乘子法
拉格朗日函数: L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w,b,\alpha)=\frac12||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
对w和b求偏导为零可得
w = ∑ i = 1 m α i y i x i w = \sum_{i=1}^m\alpha_iy_ix_i w=i=1∑mαiyixi
0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^m\alpha_iy_i 0=i=1∑mαiyi
y i = 1 y_i=1 yi=1或 y i = − 1 y_i=-1 yi=−1
KKT条件
KKT条件带约束的最优化问题
α
i
>
=
0
,
y
i
f
(
x
i
)
−
1
>
=
0
,
α
1
(
y
i
f
(
x
i
)
−
1
)
>
=
0
\alpha_i>=0,y_if(x_i)-1>=0,\alpha_1(y_if(x_i)-1)>=0
αi>=0,yif(xi)−1>=0,α1(yif(xi)−1)>=0
有等式约束也有不等式约束——等式约束是降维的
考虑不等式的约束——如果不等式加入之后极值点仍然在可行域中,就没有影响,如果加入之后极值点不在可行域中就将不等式转化为等式条件,然后加一个拉格朗日乘子的参数,但是对新加入的参数的取值范围有要求
用KKT条件求得
α
=
0
\alpha=0
α=0的点其实就是支撑向量
等式约束优化问题的极值总是发生在切点上
多等式约束
核函数
对待原始数据无法线性可分的问题,一个合适的思路是将样本从原始空间映射到一个更高维的空间——但是维数更高了之后就不方便直接计算了——设置一个核函数使两个空间的内积是一样的——径向基函数RBF变换也是一种核函数
核函数有好多好的性质,可各种变换之后还是核函数:线性和、多项式核、高斯核、拉普拉斯核、sigmoid核(任何半正定的函数都可以作为核函数,但是充分不必要)
变换,把线性不可分的问题在另一个空间里面就可以线性可分了,比如把
x
x
x变成
x
2
x^2
x2