svm-支持向量机

来源:互联网 发布:appstore不能更新软件 编辑:程序博客网 时间:2024/06/15 11:50

目标函数推导

点到超平面的距离公式:

|ωTx+b|||ω||

在分类过程中,f(x)=ωTx+b 预测出的符号应与类标记y一致。故y(ωTx+b)的正负性可以表示分类的正确性。
函数间隔:
Υ=yf(x)

几何间隔:
Υ=yf(x)||ω||

超平面最小几何间隔:
Υ=minyf(x)||ω||

最大间隔分类器的目标函数就是最大化最小几何间隔Υ
maxΥ=maxminyf(x)||ω||

这里写图片描述
即:
maxΥ=maxyf(x)||ω||

st.yi(ωTxi+b)Υ

令函数间隔为1,则yf(x)=1,则超平面最小几何间隔为
Υ=min1||ω||

从而目标函数转为:

max1||ω||=min12||ω||2

st.yi(ωTxi+b)1

现在目标函数是二次的,约束条件是线性的,所以这是一个凸二次规划问题。

拉格朗日法

使用拉格朗日法,得到对偶问题:

L(ω,b,α)=12||ω||2i=1nαi(yi(ωTxi+b)1

首先对ω和b求最小化,得到:
ω=i=1nαiyixi

若存在αi0,则对应的就是在分界线上的支持向量,那么yi(ω.xi+b)1=0.则等式两边同时乘yi
b=yii=1nαiyi(xi.xj)

根据
f(x)=ωTx+b
可得分类结果
ωb 带回到目标函数后,可以得到关于α的函数,通过SMO等方法可以解出。
maxαi=1nαi12i,j=1nαiαjyiyjxTixj

s.t.
0αiC

 i=1nαiyi=0

smo

求解二次规划的解析法

在 αi = {α1, α2, α3, …, αn} 上求上述目标函数的最小值。为 了求解这些乘子,每次从中任意抽取两个乘子 α1 和 α2,然后固定 α1 和 α2 以外的其 它乘子 {α3, …, αn},使得目标函数只是关于 α1 和 α2 的函数。这样,不断的从一堆乘 子中任意抽取两个求解,不断的迭代求解子问题,最终达到求解原问题的目的。
假设选择的是两个变量α1, α2,其他变量{α3, …, αn}是固定的,那么子问题可以写成:

minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2

s.t.
0αiC

α1y1+α2y2=i=3Nαiyi=ϵ

其中,ϵ是常数。两个因子不好同时求解,所以可先求第二个乘子 α2 的解(αnew2),
得到α2的解(αnew2)之后,再用α2 的解(αnew2)表示α1解(αnew2),。为了求解αnew1,
得先确定 (αnew2), 的取值范围。假设它的上下边界分别为 H 和 L,那么有:
Lαnew2H

y1和y2不同时,当做+-1
y1和y2相同时,都当做1
则可以画出两个取值图:
这里写图片描述
设预测值为:
g(x)=i=1NαiyiK(xi,x)+b

则对输入预测值与真实输出之差
得到关于单变量α2的未考虑不等式约束0αiC时的解:
这里写图片描述

选择α的启发式算法

  1. 外层循环寻找第一个乘子α1,找到不满足kkt的
  2. 内层循环寻找满足条件:max|EiEj|的乘子
    这里写图片描述

总结

smo是一种启发式算法,基本思路是:如果所有变量都满足kkt条件,那么最优化问题的解就得到了。否则选择2个变量,固定其余变量,针对这2个变量构建一个二次规划子问题,这时可以通过解析法求解。如此可以通过不断的将原问题拆解为子问题达到求解原问题的目的。

0 0
原创粉丝点击