支持向量机个人心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、如下公式:
输入x向量,输出f(x)。
x向量可以理解为一幅图片,向量元素为图片像素。
f(x)可以取值整数或负数,它表示对输入图片的归类,不是正类就是负类。
输入一幅图片,输出该图片的所属类别,是正类还是负类。
二、公式中的w、b是怎么确定的?
1、为了使分类明显,须让分类距离尽可能大。这是为什么呢?
因为如果f(x)的值太接近于0,则很难被分类。如f(x) = 0.00001,那它很容易被分为负类。
2、为了让分类距离尽可能大,对w、b的取值应该能达到以下效果。
同时,分类距离最小值2/||W||要尽可能大。
三、分类距离最小值为什么等于2/||W||?
1、首先要理解超平面,什么叫超平面呢?
对于二维超平面,f(x) = w1*x1 + b,其实它是一条直线。
对于三维超平面,f(x) = w1 * x1 + w * x2 + b,其实它是一个平面。
对于四维超平面呢?
表达式为f(x) = w1 * x1 + w2 * x2 + w3 * x3 + b,这我可不知道是什么?但这就是四
维超平面。
对于n - 1维超平面来说,
表达式为。
2、如果f(x)=
如上图,f(x)=
边为负类。
任何一个N维点(x1,x2,x3,…,xn)到这个平面的距离等于f(x)/||w||,这是可以证明的,回想空间中点到直线的距离公式:设直线方程为:,
则点到直线的距离为:
,这里的就是向量的2-范数,所以几何间隔可以看作是
输入样本到分类超平面的距离。
空间中点到直线的距离是属于三维超平面,
可见就是f(x)/||w||的三维形式。
3、既然任何一点到分类面的距离为f(x) / ||w||,所以正类的点到分类面的距离大于等于
1/||w||,负类的点到分类面的距离也大于等于1/||w||。所以分类距离大于等于2/||w||。
四、那怎么保证以下条件呢?
同时,分类距离最小值2/||W||要尽可能大。
其实上面条件等效于以下拉格朗日函数求最值:
(1)
其中,ai>0为拉格朗日系数,现在的问题是关于w和b求L的最小值。
把式(1)分别对w和b求偏微分并令其等于0,
(2)
可见,如果满足,则可以让f(x)分类比较明显。
五、W已经确定,那么f(x)也可以确定
把
代入,并经过SGN运算,得到
(3)。
六、到这里,式(3)好像还没办法求得,因为到底ai*等于什么?
我们把式(2)代入拉格朗日函数式(1),得到
,
约束条件是:
,
求得ai,使得Q(a)为最大值。
七、至此,可以构建分类模型。
图1
以上就是的数学模型。
输入一幅图片x = [i1,i2,…,id],就可以对应输出Y值。Y值为1或-1。
八、似乎到七,所有的工作已经完成,但其实未完,因为式(3)对于线性不可分的数据无能为力,怎么办呢?
可以通过一个适当的非线性函数φ,将数据由原始特征空间映射到一个新的特征空间,然后在新空间中寻求最优判定超平面。
这是怎么理解呢?
见图1,
可知,f(x)最终的表达式是线性的,
f(i1,i2,…,id) = c1 * i1 + c2 * i2 + … + cn * id + c0
[i1、i2、…id]是输入向量。
这表达式在某种场合是无法分类的。
譬如以下例子,
我们把横轴上端点a和b之间红色部分里的所有点定为正类,两边的黑色部分里的点定为负类。试问能找到一个线性函数把两类正确分开么?不能,因为二维空间里的线性函数就是指直线,显然找不到符合条件的直线。
但我们可以找到一条曲线,例如下面这一条:
显然通过点在这条曲线的上方还是下方就可以判断点所属的类别(你在横轴上随便找一点,算算这一点的函数值,会发现负类的点函数值一定比0大,而正类的一定比0小)。这条曲线就是我们熟知的二次曲线,它的函数表达式可以写为:
回到f(i1,i2,…,id) = c1 * i1 + c2 * i2 + … + cn * id + c0表达式,
如果能把该表达式弄成非线性表达式的话,则可以让原来不能分类的数据变得可以分类。核函数就有这个功能,把图1改成图2模型,见下
对应表达式是:
(4)
K(xi,x)就是核函数,
仔细观察发现,图1最终产生的表达式不包含输入变量的高次方运算,
而图2最终产生的表达式就包含输入变量的高次方运算,也就是式(4)最终产生的表达式是非线性的。这是由于K(xi,x)中包含了输入变量和自身相乘的运算。
九、至此,似乎没有什么问题了,任何样本数据都可以被正确分类了。
但其实还有个问题:虽然理论上可通过非线性映射得到线性可分的数据,但如何获得这样的映射,且避免过拟合,仍存在问题。所以更实际的策略是允许一定误差。通常引入松弛变量ε,放松约束。这时问题描述改为下面的形式
这样的分类器称为线性软间隔支持向量分类机。转化为拉格朗日乘子待定问题
其KKT条件为
(17)得到
(18)
只要确定 ,便可解出w,b.
将上述条件代入L中,得到新的优化问题:
同样地引入核函数,把这个软间隔SVM的训练表示为一个高维空间上的二次规划问题