三种常用的迭代搜索优化方法

三种常用的迭代搜索优化方法

梯度下降 牛顿法 坐标上升


因为梯度下降和牛顿法都是非常常用的,在前面的文章中也做过总结,这里不做详细说明。
梯度下降与牛顿方法是两种非常常用的迭代优化方法,主要的思想就是通过迭代,一步一步地逼近最优解。


梯度下降比较直观,沿着梯度的反方向进行搜索,属于典型的贪婪算法,迭代搜索的每一步都是当前最优的下降方向,但在全局看来可能并不是最优的下降曲线;所以梯度下降法的初始值如果比较好的话,比如想象一下目标函数曲线像是一个连绵起伏的山峰,如果初始值能够初始在具有最低谷的坡面上,通过梯度下降一定能够得到全局的最优值;而如果初始值不好,站在了一个较高山谷的坡面上,通过常规的梯度下降法,只能搜索到该局部最优的山谷低,而不能从该山谷爬出来,重新搜索更低谷。要改善梯度下降这一局部最优困境的方法,可以采用模拟退火,让搜索具有一定概率爬坡能力,即在搜索到了较高山谷时,使之有一定的概率爬出山谷,继续搜索。具体的可以参看随机神经网络一章节的文章,《随机神经网络之模拟退火》


牛顿法则是通过分析极大和极小值处曲线的特性,通过求导,并使导数为0,构造典型的f(X)=0的优化形式,每一步都从该点处的切线位置与X轴(或平面)相交的处的X作为下一次迭代的搜索位置的X坐标(对应的y可以通过f(X)求得)。通常情况下牛顿法收敛速度比梯度下降方法要快。


第三个要将的是以前没有了解的坐标上升的方法,这个优化搜索方法是在支持向量机部分引入的,为了解决soft margin SVM的优化问题。
问题描述:

maxα W(α1,α2,...,αm)

坐标上升(coordinate ascent)算法描述:
Loopuntilconvergence:{
For i=1,...,m, {
αi:=arg maxαiW(α1,...,αi1,αi,αi+1,...,αm).
}
}
算法分析说明:
调节 αi,固定其余所有的 αj,然后解决单变量的优化问题,得到一个最优值对应的 αi,然后换一个变量 α,同样固定其余的,再次解单变量的优化问题,重复操作直到满足迭代终止条件为之。
算法的优点:
坐标上升算法的最内层的循环是非常简单的,所以迭代的效率可能比较高,也就是说经过拆分后的优化问题转变为了单变量优化,这种优化问题十分简单,所以算法从整体上比较容易实施。
算法的缺点:
优点简单,缺点也很明显,因为简单所以搜索的速度、效率可能比梯度下降和牛顿法要差。
算法的注意事项:
类似于梯度下降,为了避免局部最优,一种可能的方法就是引入随机因素。采用随机选择变量优化顺序,比如可以采用洗牌,将顺序打乱,然后再进行逐个变量的优化,一轮过后再次洗牌,在进行优化,这样的方式可能更加易于收敛。
算法的直观演示,如下图:
这里写图片描述
图中不同的颜色标识不同的变量,梯度上升的方法就是一步步的逼近,一次只对一个变量进行最优化。

该方法还可以应用在一些特定约束条件下的优化,比如同样的问题:

maxα W(α1,α2,...,αm)α1×y(1)+α2×y(2)+...+αm×y(m)=0

算法可以改为: α1×y(1)+α2×y(2)=ρ
这样的话可以固定 α3,α4,...,αm,调整 α1,α2,这样等于说将 α1,α2通过 ρ联系在了一起,具体的算法调整示意图如下图所示:
这里写图片描述
图中所示的方框是可行域,而那条斜线表示正是 α1,α2的关系,也就是约束,这样的话, α1,α2只能在这条斜线在可行域内部的一段上取值了。

说明:主要是在soft margin的SVM中,对于最后的W(α1,α2,...,αm)优化时,通过这样的改造后的坐标系上升方法实现的,在固定完其余的变量后,W被改造为α2的二次函数,这样通过求得最低点,如果不在可行域的那段斜线上,就取最近的那个作为最优值。即如下图所示:

这里写图片描述


2015-9-10 艺少

转载于:https://www.cnblogs.com/huty/p/8519185.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值