一维搜索、线搜法

  一、什么是一维搜索

      在许多迭代下降算法中,具有一个共同点,这就是得到点\LARGE x^{(k)}后,需要按某种规则确定一个方向\LARGE d^{(k)},再从\LARGE x^{(k)}出发,沿方向\LARGE d^{(k)}在直线(或射线)上求目标函数的极小点,从而得到\LARGE x^{(k)}的后继点\LARGE x^{(k+1)}。重复以上做法,直到求得问题的解。这里所谓目标函数在直线上的极小点,称为一维搜索,或称为线搜索Line Search。

    在机器学习中, 通常需要求某个函数的最值。 线搜索(line search)是求得一个函数f(x)的最值的两种常用迭代方法之一。 其思想是首先求得一个下降方向,在这个方向上f(x)会下降, 然后是求得f(x)在这个方向上下降的步长。

       求下降方向的方法有很多, 比如梯度下降, 牛顿方法和Quasi-Newton方法, 而步长可以是固定值, 也可以通过诸如回溯线搜索来求得。所以Line Search经常被用于一种步长选择的方式。

     一维搜索的方法很多,归纳起来,大体可分成两大类:

    1)一类是试探法。按栽某种方式找试探点,通过一系列试探点来确定极小点。

   2)另一类是函数逼近法,或称为插值法。用某种较简单的曲线逼近本来的函数曲线,通过求逼近函数的极小点来估计目标函数的极小点。

二、试探法

试探法常用的包括:黄金分割法、Fibonacci法、进退法、平分法及其改进方法。

2.1 黄金分割法或称为0.618法

适用於单峰函数。

 

详细计算步骤如下:

    实际问题中,目标函数在其定义域内不一定是单峰的,因此需要先确定单峰区间,然后使用黄金分割法计算公式。

2.2 Fibonacci法

与黄金分割法类似,适用於单峰函数。在计算过程中,也是第1次迭代需要计算两个试探点,以后每次迭代只需新算一点,另一点取自上次迭代。Fibonacci法与0.618法的主要区别之一在于区间长度缩短比率不是常数,而是所谓的Fibonacci数确定。

      理论上,0.618法得到的最终区间大约比使用Fibonacci法长17%。

      但Fibonncci法的缺点是要事先知道计算函数值的次数。

      比较起来,0.618法更简单,它不需要事先知道计算次数。在实际问题中,一般采用0.618法。

 

 

三、函数逼近法

   函数逼近法常用的具体方法有:牛顿法、割线法、抛物线法、三次插值法。

  牛顿法的基本思想是,在极小点附近用二阶Taylor多项式近似目标函数f(x),进而求出极小点的估计值。

发布了80 篇原创文章 · 获赞 142 · 访问量 51万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章