线搜索line-search和强Wolfe条件
最近在看数值优化的论文,里面几乎都有line-search作为一个子步骤。
单从字面上不怎么好理解。
http://en.wikipedia.org/wiki/Line_search
http://en.wikipedia.org/wiki/Backtracking_line_search
看来还是要搜中文了
http://reference.wolfram.com/mathematica/tutorial/UnconstrainedOptimizationLineSearchMethods.zh.html
线搜索方法
可以证明许多方法对于光滑函数是收敛的. 所有这些条件合起来被称为强Wolfe条件. 您可以使用 的"DecreaseFactor"-> 和 "CurvatureFactor"-> 选项控制参数 和 .
回溯
这是一个简单的线搜索方法,它从给定的步长开始,回溯到长度为0的步长,当充分下降条件得到满足的时候停止. 一般来说,只采用回溯,也不能保证您可以满足曲率条件,即使对于很友好的函数,亦是如此,因此方法的收敛性没法得到保障. 然而,回溯线搜索也并不需要在每个点对梯度进行计算,因此,如果梯度计算代价相对较高,这可能是一个不错的选择. 在 FindRoot 中,它被用来作为默认的线搜索方法,因为计算优值函数的梯度包括对雅可比的计算,所以代价相对较高.
每个回溯步骤的执行都进行了多项式插值和对插值寻找极小值点. 这个点 ,只要它位于 和 之间,就会被使用,这里 是参数 的前一个值,并且 . 默认情况下, 并且 ,但是它们可以通过方法选项 控制. 如果您赋予这些因子单一的值,这就设置了 ,并不再使用插值. 值 1/2 产生二分法.
有时间研究下这个中文网站吧,wiki的好处太多,就是有的术语对不上中文概念=_=