浅析机器学习中的一维直线搜索

       针对一个机器学习的优化问题,假设我们使用梯度下降的方法求解最优点。一般地,在初始点和可行下降方向确定后,我们要沿着可行下降方向确定步长(或学习率),这个时候,就要使用到一维搜索的方法。一维搜索的方法分为精确搜索的方法和非精确的搜索方法。非精确的搜索方法即确定一个沿可行下降方向上的步长,使目标函数下降即可;而精确的搜索方法求解出最优的步长,通过公式推导,由最优步长得到的新点的梯度与搜索方向正交,如下:




      本篇博文主要小结一下一维精确搜索方法,如有错误之处,烦请指出!首先需要确定一个单谷区间,使用(步长加倍等)试探方法确定单谷区间,然后逐步压缩单谷区间,使其小于给定误差阈值,然后取区间两个端点的平均值近似为最优解。或者使用Newton方法,让求解点逼近过零的最优点。逐步压缩单谷区间的方法有0.618法,斐波那契法,以及一阶导数(压缩比0.5)的方法。

            现在已有一个单谷区间,我们的目标是要压缩这个区间,使其达到误差允许的范围。那么怎么来压缩区间呢?可不可以每次压缩区间的比例都是一样的呢?这就是0.618法,它每次压缩区间的比例都是0.618。




       除了每次区间压缩一定的比例,那么我们能不能保证压缩一定次数,就能使区间在一个单位长度以内呢?答案是可以的,这就是斐波那契法。




       一阶导数精确搜索方法




        另外,我们知道,目标函数的一阶导数的过零点是步长的最优解,我们可以用Newton法使求解点逐步逼近最优解。




      博客主人也在学习,欢迎留言交流~

无觅关联推荐,快速提升流量
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。