首页 > 其他 > 详细

回溯线搜索 Backtracking line search

时间:2015-05-27 21:01:42      阅读:415      评论:0      收藏:0      [点我收藏+]

机器学习中很多数值优化算法都会用到线搜索(line search)。线搜索的目的是在搜索方向上找到是目标函数\(f(x)\)最小的点。然而,精确找到最小点比较耗时,由于搜索方向本来就是近似,所以用较小的代价找到最小点的近似就可以了。 Backtracking Line Search(BLS)就是这么一种线搜索算法。

BLS算法的思想是,在搜索方向上,先设置一个初始步长\({\alpha _0}\),如果步长太大,则缩减步长,知道合适为止。

上面的想法要解决两个问题:

1. 如何判断当前步长是否合适 (Armijo–Goldstein condition)

\[f({\bf{x}} + \alpha {\mkern 1mu} {\bf{p}}) \le f({\bf{x}}) + \alpha {\mkern 1mu} c{\mkern 1mu} m{\mkern 1mu} \]

\[m = {{\bf{p}}^{\rm{T}}}{\mkern 1mu} \nabla f({\bf{x}}){\mkern 1mu} \]

其中,\({\bf{p}}\)是当前搜寻方向,\(\alpha \)是步长,\({\mkern 1mu} c{\mkern 1mu} \)是控制参数,需要根据情况人工核定。

2. 如何则缩减步长

搜索步长的缩减通过\(\tau {\mkern 1mu} \)参数来控制,主要通过人工核定,既\({\alpha _j} = \tau {\mkern 1mu} {\alpha _{j - 1}}\)

总结一下BLS算法的流程如下:

1. 设置初始步长\({\alpha _0}\)

2. 判断\(f({\bf{x}} + \alpha {\mkern 1mu} {\bf{p}}) \le f({\bf{x}}) + \alpha {\mkern 1mu} c{\mkern 1mu} m{\mkern 1mu} \)是否满足,如果满足,停止;否则3:

3. \({\alpha _j} = \tau {\mkern 1mu} {\alpha _{j - 1}}\),重复2

 

回溯线搜索 Backtracking line search

原文:http://www.cnblogs.com/richqian/p/4534356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!