机器学习复习8-SVM

SVM

请先阅读前一篇文章 机器学习复习7-拉格朗日对偶性(为SVM做准备)
不然这篇文章很难看懂。

1.明确目标

在这里插入图片描述
在这里插入图片描述
所以目标明确了。

2.使用拉格朗日对偶性

上图其实就是原始优化问题 p p
那么我们引入拉格朗日函数的极小极大问题来等效原始优化问题 p p
在这里插入图片描述
α i 0 α_i ≥ 0 C i ( x ) 0 C_i(x) ≤ 0 时,才能构造这样的拉格朗日函数。
然后我们取拉格朗日函数的极小极大问题来等效 p p
在这里插入图片描述
利用对偶性,可转化为:
在这里插入图片描述
但是这个等效是需要满足2个条件,外加KKT条件约束最优解,得到的才是最优解。这里不作过多解释,具体解释上一篇文章已经描述的很详细了。

所以接下来的任务就是求解上图的公式
在这里插入图片描述
很多人以为是把4.13,4.14代入3.7中,其实不是的,我们代入的是对偶问题中的最小值问题中。再把4.15放到4.12的对偶问题中,同时考虑KKT条件的约束,也就是说我们既满足2个条件,又要满足KKT条件。

接下来我们又可以得到:
在这里插入图片描述
现在我们其实已经可以解这个问题了,一个完全的凸二次规划问题,理论上你用任何一个解决凸二次规划的软件包都可以解决,但是这样通常来说很慢,大数据情况下尤其不实际。

所以我们一般引入SMO算法

3.SMO算法

先介绍下坐标上升算法,因为SMO算法的思想与坐标上升算法的思想类似。

3.1 坐标上升算法

坐标上升算法每次通过更新多元函数中的一维,经过多次迭代直到收敛来达到优化函数的目的。简单的讲就是不断地选中一个变量做一维最优化直到函数达到局部最优点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为每次只是做一维优化,所以每个循环中的优化过程的效率是很高的, 但是迭代的次数会比较多。

3.2 SMO算法

在这里插入图片描述
我们利用SMO算法求解上图问题。
在这里插入图片描述
如果和坐标上升法一样,每次选一个向量,那么由于约束条件会导致:当其他所有向量确定了,那么这一个向量也会随之确定,所以我们选一对参数。

那么我们如何选取α呢?我们怎么知道哪一个α需要优化呢?
选择违反KKT条件的点,使其符合KKT条件,那么就自然而然可以得到更优解。即将被优化的α违背KKT条件越大,此次优化效果越明显。
所以第一个要选择的α是违反KKT条件的点,而第二个α是与第一个点距离最大的点,因为我们发现一次更新两个不同向量比相似向量的效果好
收敛后,我们就可以得到所有的α的值。
还记得4.13的条件吗,最优解的充分必要条件,我们把所有α代进去,就可以得到w的解,接着可以得到b的解。

发布了71 篇原创文章 · 获赞 20 · 访问量 4849

猜你喜欢

转载自blog.csdn.net/qq_22795223/article/details/104804798