Andrew Ng公开课学习笔记——Coordinate ascent(坐标上升法)

来源:互联网 发布:软件测试与分析 编辑:程序博客网 时间:2024/05/21 08:45

Coordinate ascent

想象我们正在解决这样一个无约束优化问题

maxαW{α1,α2,...,αm}

我们的优化思路是,每次迭代均保持除αi之外的所有参数,相对于αi使函数W取最大值,重复此过程。
这里写图片描述
可以看出来,内循环中W是关于αi的一元二次函数,对其求最优解是很简单的。试想该算法的每一步迭代,W要么不变,要么变大,多次迭代后肯定能取到最优解。举个两个参量的例子:

这里写图片描述

图中的椭圆是二次函数的等高线,越往外等高线上的数值越大,并且2<α1<2,2<α2<2,图中的直线表示从极小值点到极大值点走过的路径,可以看出每一步迭代,路径都会平行于坐标轴,这是因为每次迭代均对一个变量优化。

与牛顿法的比较##

与牛顿法进行对比,坐标上升法通常会经过更多的步骤才能收敛,但是坐标上升法的主要优点是相对于W{α1,α2,...,αm}的每一个参数,求其最优解的代价会非常小,这是因为内循环是一元函数,将会计算的比较快。回想一下牛顿法每次迭代均需要计算一个m×m的矩阵,并且求该矩阵的逆,这个计算代价是非常大的。

引出SMO

将坐标上升法应用于支持向量机的优化问题中时,就需要对该算法做一些更改:

  1. 坐标上升法中参数总是按顺序交替更新,即相对于α1取最大值,之后是α2α3,…。实际上当你有很多参数,例如α1,…,αm,可以不按照固定的顺序访问它们,如果你认为这样会帮助你更快的逼近最大值。实际上,我们用一种启发式规则选择每次更新的参数。
  2. 支持向量机的优化问题是有约束的,其中一个约束是mi=1αiyi=0,如果保持除αi之外的所有参数,那么αi也就固定了。所以每次选择两个参数进行更新。
阅读全文
0 0
原创粉丝点击