学习率
,如果设关于学习率的函数为
,因为是要求
的最小值,所以
,如果
可导,则最小值处
,
而对于
,因此若存在一个足够大的
使得
,则必定存在一个合适
的使得
,此时就是我们要找的学习率;因此
可以先设置一个初始的
,再进行搜索(可以使用折半查找),找到
异号的位置;
Armijo法则:只要所使用的学习率使得函数的减小程度小于给定的值即可;
学习率优化的方法:
1. 线性搜索:可以先设置一个初始的
,再进行搜索(可以使用折半查找),找到
异号的位置;
2. 回溯线性搜索:只要满足Armijo法则,只要步长能使函数值有足够大的变化即可。二分线性搜索可以减少下降次数,但在计算最优步长上花费了不少代价;回溯线性搜索找到一个差不多的步长即可;
3. 多项式插值法:知道
那就知道了
),并且有一个初始的尝试值
,如果
不满足条件(此时知道
,
那么可以解出二次项
的三个未知参数),则可以构造二次函数去拟合原函数
用
去拟合
就表示是其一个近似,
那么
的极小值点也可能是
的极小值点;所以可以先求得
的极小值点:
,
判断
是否满足条件,如果不满足则继续迭代;这就是二次插值法。
进行逐次迭代;也属于线性搜索;