数值算法:无约束优化之一维搜索方法之多维优化问题中每步迭代的最优学习率设定问题

Posted 宏斌PKUCIS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值算法:无约束优化之一维搜索方法之多维优化问题中每步迭代的最优学习率设定问题相关的知识,希望对你有一定的参考价值。

多维优化问题的迭代求解算法中,经常遇到学习率(步长)参数问题,比如线性分类器。一般如果采用固定学习率,那么算法收敛将比较慢,为了提高收敛速度往往需要不断调整学习率。一般多维优化问题中的迭代算法中的迭代公式为:

xk+1=xk+rdk

其中 xk 从给定的初始搜索点 x0 迭代,rk>=0为第k次迭代的学习率或步长,迭代目的是寻找最优解x*,使得代价函数 J(x) 最小,dk表示搜索方向,下面讨论学习率最优值问题, 定义:

hk(r)=  J(xk + r*dk)  = J(xk+1) 而 J(x) = J(xk) + delta<J(xk)>T(x-xk) + 1/2 * (x-xk)TH(x-xk)

因此 hk(r) = J(xk+1) = J(xk) + r* delta<J(xk)>Tdk+ 1/2 * r2 *(dk)T H dk

hk(r)表示当前所选的学习率 r 使得下一次迭代xk+1 取得的成本函数值,显然所选取的 r,应使得J(xk+1)尽可能的小,换句话说第 k 次迭代选取的最优 r* 应该使得J(xk+1)最小。H 是海森矩阵,J(x)在 xk 处的二阶偏导。delta<J(xk)>是J(x)在 xk 处的梯度。这是个一维优化问题:

h‘k(r) = delta<J(xk)>dk + r*(dk)T H dk=0

r= - delta<J(xk)>dk /  (dk)T H dk

特别地当dk= delta<J(xk)> 时,r为梯度下降法每步迭代的最优学习率或步长。

在实际的多维优化中,这种每次求解最优学习率的方法一般很少使用,因为需要将更多的计算资源配置到多维优化算法中而不是追求高精度的学习率,因此应该为每一步中最优学习率的搜索设定一个停止条件。

Armijo-Goldstein条件:通常选定3个常数,0<ε<1, ε<η<1,要求:

(1) hk(r) <=hk(0) + εrh‘k(0) ,保证学习率r不会太大;

(2)hk(r) >=hk(0) + ηrh‘k(0) , 保证学习率不会太小。

 在多维优化问题中,对于每次迭代中的步长或学习率选择方法为:

一开始先为 r 选定一个备选值,如果能够满足(1),则选其为步长;否则,在该备选值上乘以一个系数 τ (0<τ<1),通常选τ=0.5,再次检验其是否能满足停止条件,以此类推直到选择出一个满足条件(1)的步长r。

 

以上是关于数值算法:无约束优化之一维搜索方法之多维优化问题中每步迭代的最优学习率设定问题的主要内容,如果未能解决你的问题,请参考以下文章

数值算法:无约束优化之一维搜索方法之划界法寻找极小点上下界

数值算法:无约束优化之一维搜索方法之二分法牛顿法割线法

数值算法:无约束优化之多维优化之共轭方向法

运筹学(最优化理论)学习笔记 | 共轭梯度法

无约束优化方法-直接方法(坐标轮换法)

如何基于无约束方法建立约束优化方法