从零开始学习SVM(二)---松弛变量
2018-01-02 17:24
253 查看
上一篇文章《从零开始学习SVM》中引出了想要进行分开两个样本需要的目标函数,但是是针对线性可分的。如下图所示,是存在一个超平面完完全全的分开两类样本。
但是如果是线性不可分呢?同样以猫狗数据为例,有的狗被主人打扮确实像猫,人都容易混合,像这种相似性比较高的数据,可能无法通过线性的方法完全分开
即无法用一个超平面把两类数据分开,属于一种混合的状态,就如下图一样
一方面来说,人的识别准确度都无法达到100%,更别说机器了,一般只要机器能达到一个可以容忍的准确度,能完成分类工作就可以了。允许少部分样本在两个边界线内,甚至超出边界线(上图中的红点)。与此同时在最大化间隔的同时,不满足约束的样本应该尽可能的少。
minw,b12||w||2s.t.yi(wTxi+b)⩾1,i=1,2,3…,m.
我们的优化目标可以写为:
minw,b12||w||2+C∑imζis.t.yi(wT+b)⩾1−ζiζi⩾0,i=1,2,3…,m
引入”松弛变量”的概念,显然每个样本都有其对应的”松弛变量”,表征了该样本不满足约束的程度—来自《机器学习》周志华。我的理解是样本离虚线边界距离的大小,越小则不满足约束程度越小,越大则不满足约束程度越大。同理我们通过拉格朗日乘子法可得到的拉格朗日函数为:
L(w,b,α,ζ,u)=12||w||2+C∑imζi+∑imαi(1−ζi−yi(wT+b))−∑imuiζi
对L(w,b,α,ζ,u)的w,b,ζ求偏导为零可以得到
w=∑imαiyixi0=∑imαiyiC=αi+ui
经过带入可以惊人的发现,”松弛变量”并没有在目标函数里面,感觉整个人都轻松了一把。跟之前的不带有”松弛变量”的目标函数的唯一区别是α的取值范围变化了
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxTixj
s.t.∑i=1mαiyi=0C⩾αi⩾0,i=1,2,…,m
KKT条件:
αi⩾0 yif(xi)−1+ζi⩾0αi(yif(xi)−1+ζi)=0ζi⩾0,uiζi=0
KKT条件基本上与不带有”松弛变量”的目标函数一致,求解方法也一样,最大的收获是我们有了得到一定准确度的分类器的方法,使得svm不仅仅应用到科研理论中,同样可以应用到生产,适用业界数据多样、噪声随机多样的情形,满足业界的需求。后面的学习我们将针对该目标函数进行优化,我们将继续对线性分类进行讨论,后面会继续推出非线性的分类解决方法
但是如果是线性不可分呢?同样以猫狗数据为例,有的狗被主人打扮确实像猫,人都容易混合,像这种相似性比较高的数据,可能无法通过线性的方法完全分开
即无法用一个超平面把两类数据分开,属于一种混合的状态,就如下图一样
一方面来说,人的识别准确度都无法达到100%,更别说机器了,一般只要机器能达到一个可以容忍的准确度,能完成分类工作就可以了。允许少部分样本在两个边界线内,甚至超出边界线(上图中的红点)。与此同时在最大化间隔的同时,不满足约束的样本应该尽可能的少。
minw,b12||w||2s.t.yi(wTxi+b)⩾1,i=1,2,3…,m.
我们的优化目标可以写为:
minw,b12||w||2+C∑imζis.t.yi(wT+b)⩾1−ζiζi⩾0,i=1,2,3…,m
引入”松弛变量”的概念,显然每个样本都有其对应的”松弛变量”,表征了该样本不满足约束的程度—来自《机器学习》周志华。我的理解是样本离虚线边界距离的大小,越小则不满足约束程度越小,越大则不满足约束程度越大。同理我们通过拉格朗日乘子法可得到的拉格朗日函数为:
L(w,b,α,ζ,u)=12||w||2+C∑imζi+∑imαi(1−ζi−yi(wT+b))−∑imuiζi
对L(w,b,α,ζ,u)的w,b,ζ求偏导为零可以得到
w=∑imαiyixi0=∑imαiyiC=αi+ui
经过带入可以惊人的发现,”松弛变量”并没有在目标函数里面,感觉整个人都轻松了一把。跟之前的不带有”松弛变量”的目标函数的唯一区别是α的取值范围变化了
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxTixj
s.t.∑i=1mαiyi=0C⩾αi⩾0,i=1,2,…,m
KKT条件:
αi⩾0 yif(xi)−1+ζi⩾0αi(yif(xi)−1+ζi)=0ζi⩾0,uiζi=0
KKT条件基本上与不带有”松弛变量”的目标函数一致,求解方法也一样,最大的收获是我们有了得到一定准确度的分类器的方法,使得svm不仅仅应用到科研理论中,同样可以应用到生产,适用业界数据多样、噪声随机多样的情形,满足业界的需求。后面的学习我们将针对该目标函数进行优化,我们将继续对线性分类进行讨论,后面会继续推出非线性的分类解决方法
相关文章推荐
- svm学习:松弛变量与惩罚因子
- SVM 学习 之 松弛变量和惩罚因子
- SVM学习(续)核函数 & 松弛变量和惩罚因子
- 【机器学习】SVM学习(五):松弛变量与惩罚因子
- SVM学习(五):松弛变量与惩罚因子
- 从零开始前端学习[48]:js中的变量和this的初步认识
- 机器学习算法之SVM(2)松弛变量
- SVM入门(八九)松弛变量
- SVM入门(八)松弛变量
- 机器学习算法之SVM(2)松弛变量
- SVM入门(八)松弛变量
- 机器学习算法之SVM(2)松弛变量
- Relation Extraction中SVM分类样例unbalance data问题解决 -松弛变量与惩罚因子
- SVM入门(八)松弛变量
- C++学习教程从零开始(三)——何谓变量
- 机器学习算法之SVM(2)松弛变量
- 从零开始学习SVM(四)---SMO算法线性分类与代码精解析
- 机器学习算法之SVM(2)松弛变量
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- SVM松弛变量-记录毕业论文3