浅谈SVM
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、了解SVM
SVM是一机器学习中的一种分类方法,是一种二分类方法。它的目的便是在求得一组权值w1,w2,.....wn,b,使得两个分类的间隔达到最大,也就是能很好地将两个类别分开。
1、从逻辑回归引入SVM
此处使用Logistic Regression做为一个因子,来引入SVM
逻辑回归也是一个分类模型,它采用的映射函数为Sigmod函数,也就是把属于负无穷到正无穷的自变量映射到(0,1)之间。
函数图像如图所示。sigmod函数为,函数的输出是概率估计,输出代表1的概率。输出值>0.5为类别1,<0.5为类别0,。因此可以用概率模型来表示输出属于各个类别的值:
,
。
逻辑回归的目的是要求得到一组,使得属于类别y=1的特征满足
>>0,即
,使得属于类别y=-1的特征满足
<<0,即
。
2、逻辑回归变形为SVM
-->
。同时y也由原来的类别1,0变为了1,-1.
针对输入x我们会得到
,以下图为例
中间实线为我们要找的超平面,上面虚线代表,也就是类别为-1,下面代表类别为1.
注:类别为1 ,-1的由来:
1、二分类的标签是任意取的,只要能区分两个不同的类别即可。;
2、SVM为二分类模型,超平面分开的两个类的函数值相应于超平面是相反的;
3、既然是两个数,而且是相反数,那就去1和-1便于计算。
我们的目的是求得一组w和b,使得两个分类的间隔最大。也就是上图中虚线上的点到=0的距离最小,实际距离表示为
,实际上式为
,因为对于虚线的点满足
,因为虚线上的点事支持向量的,所以两边虚线之间的间隔也就是
。求得max
,即可找到一组最优的w,下面对这个式子做一下变换,max
等价于min
s.t
注:能够表示x到超平面的距离远近,通过观察
与
i的符合是否一致就可以判断分类是否正确。
二、参数求解
在求解w的过程中,一直有一个约束条件即,可以引入拉格朗日函数约束。
求函数的极值,对三个未知数分别求偏导可得出:
这样就找到了三者之间的关系,求出
就相当于求出了w,b。
。只有一个参数
,采用SMO方法,即每次只求两个
,固定除了这两个
以外所有的
(视为常数),不断的任意抽取
,然后求解上面关于
的函数值直到收敛。
求出以后,w,b也就迎刃而解了,则超平面也就确定了。
1、SVM中涉及的核函数是处理非线性情况,直接映射到高维空间维度太高时计算量太大,所以核函数是在低维空间计算。(此处摘抄自某资料,在下现在还不明白?)
2、松弛变量是为了满足少量不严格满足的因子而设计的(即对不好分类的点的一种约束)。
经验风险,结构风险:
1、经验风险就是真实存在的风险,即真实值与预测值差的平均
SVM采用的是合页损失,max(1,1-z),
2、结构风险(加入正则化之后的风险值),
是对参数w的一种约束,分为L1正则化和L2正则化
L1正则化就是趋向于产生更少的特征,其它的特征的wi均为0;
L2正则化趋向于选择更多的特征,使得特征wi都接近于0;L2可以防止过拟合,提升泛化能力。SVM默认采用L2正则化。
以上对SVM的理解还是比较浅显的,以后有了更深的理解会继续更新。希望批评指正。
另外推荐一个可以网页版编辑公式的的东西:http://www.codecogs.com/latex/eqneditor.PHP