写在前面
学习SVM的对目标函数有些疑问,做了一些笔记。感谢ZKX同学提供的帮助,(PS:这篇博客可能会继续更新
SVM
我们的问题是设定一个超平面,去最大化样本点和这个超平面的距离,这个距离我们称之为Margin(间隔)。
γ=iminγ(i)
函数间隔 Functional margin:
这一点老师的PPT上并没有给出来,所以可能学习的时候有些混淆。
γ^(i)=y(i)(ωTx(i)+b)
这里我们扩大ω,b n 倍数会改变γ^。因此我们引入几何间隔。
几何间隔 Geometric margin :
γ(i)=y(i)((∥ω∥ω)Tx(i)+∥ω∥b)
几何间隔具有缩放不变性:
γ(i)=y(i)((∥c⋅ω∥c⋅ω)Tx(i)+∥c⋅ω∥c⋅b)=y(i)((∥ω∥ω)Tx(i)+∥ω∥b)
有了这个性质我们可以对求解目标进行限制,简化优化问题。
这里要注意:如果∣ω∣=1,那么函数间隔和几何间隔相等。如果超平面参数ω和b成比例地改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。
SVM的目标问题:
ω,bmaximin{γ(i)}
目标问题可以转化为:
maxγ,ω,bs.t.γγ(i)≥γ,∀i
其中,间隔为函数间隔:
γ(i)=y(i)((∥ω∥ω)Tx(i)+∥ω∥b)
因此目标问题转化为:
maxγ,ω,bs.t.γy(i)(ωTx(i)+b)≥γ∥ω∥ ∀i
利用几何间隔不变性,一方面为了使优化目标更加简单。
另一方面有点类似于标准化的思想因为不同模型由于数据分布的原因,ω和b可能会大不相同(数据集1的分法和数据集2的分法结果的好坏因为ω和b比例的不同难以直观比较)。但是把他们的最小间隔都设置为1后,就有比较性了。同一个数据的不同超平面,也有了比较的方法
imin{y(i)(ωTx(i)+b)}=1
即令最小间隔为∥ω∥1:
γ=imin{y(i)((∥ω∥ω)Tx(i)+∥ω∥b)}=∥ω∥1
因此目标问题变为:
maxω,b s.t. 1/∥ω∥y(i)(ωTx(i)+b)≥1,∀i
又仅为最小化∥ω∥1等价于最大化∥ω∥2=ωTω(这样凑是为了满足二次规划形式)
最终目标函数即为:
minω,bωTω s.t. y(i)(ωTx(i)+b)≥1,∀i
参考文献
SVM - Understanding the math - the optimal hyperplane
Lecture 6: Support Vector Machine
从零构建支持向量机(SVM)
svm函数的解释(转载)