泛统计理论初探——探讨梯度下降学习率优化技巧

数据挖掘-梯度下降学习率优化简介

学习率优化方法简介
   本文准备介绍的主要内容是在梯度下降方法中,对于学习速率这个超参数的优化思路。在之前的三篇文章里,分别介绍了对梯度本身的优化的常见策略和技巧,但是没有对学习速率的优化进行介绍,因此本文来介绍几种常见的学习速率优化技巧。
   在最早的批量梯度下降或者随机梯度下降方法中,学习速率这个参数是一个常数,比如0.1,但是在神经网络的发展过程中,经常会出现一些问题,常见的就是陷入局部最优值和梯度下降速度特别慢很难收敛情况。因为传统的梯度下降方法的学习速率是一个较小的常数,那么势必会导致在很多时候梯度下降缓慢,并且当周围地形平坦的时候,陷入一个局部最优值而无法继续下降。与此同时,如果学习率一直很大会造成震荡的情况,即在最优点附近来回震荡并且无法下降到局部最优点。所以后来研究者们又找到了一些函数对学习速率进行优化,常见的比如指数衰减、余弦衰减、逆时衰减等优化技巧。下面我们来对各个衰减技巧进行简介。
   逆时衰减公式如下,当前学习率是和当前状态时间t呈反比关系的,也就是t越大即迭代的次数越多,就会导致下一次学习率的变小。其中β是衰减率,显然β越大的情况会使得学习率更为快速地下降。一般看实际问题为准,如果需要迭代多次的可以将β设置的小一些,比如0.01,如果不需要多次迭代则可以将β设置的大一些。
在这里插入图片描述
   指数衰减公式如下,β定义为衰减率,和上述的逆时衰减的含义一样,值得注意的是β的值是小于1的常数,那么显然当前学习率是和当前状态时间t呈反比关系的,也就是迭代的次数越多,就会导致下一次学习率的变小。如果β的值设置的较小的话,则学习率就会衰减的较快,对于β值的设置也是以实际问题为准,一般可以先设置0.5,然后查看下降的速率和最后的收敛情况是否满足使用者要求,如果下降的偏快或者偏慢就可以调整β值再进行下降。
在这里插入图片描述
   自然指数衰减的公式如下,β依旧定义为衰减率,和指数衰减的思路相似,也是使用一个指数函数来进行学习率的衰减,但是自然指数衰减是以自然数e为底的函数,t也就是迭代的次数越多会使得整体的学习速率变得越慢,显然β设置的较大的时候,学习率衰减的非常快。一般β的值可以设置为0.1,随着实际问题进行调整,自然指数衰减的β参数如果设置的有问题会导致整体的梯度下降速度变得极其缓慢,所以β不建议设置的很大。
在这里插入图片描述
   余弦衰减的公式如下所示,公式通过利用余弦cos函数在某个区间的单调 递减特性来进行学习率的计算,其中需要注意的是t为当前状态迭代次数,而T则是总的迭代次数,也就是说该公式需要提前指定总的迭代次数,比如500次,才可以进行学习率的计算。显然利用余弦公式的特性不会陷入那种学习速率越来越慢的情况,可能在某种程度上会比前三种方法的效果稍微好一些。
在这里插入图片描述
   其实在上述的优化技巧之后,还有另一种优化思路,也就是周期性学习率的调整,一般有三角循环学习率和带热重启的梯度下降方法,其中三角循环的学习率是一种循环学习率的处理思路,和上面的余弦衰减有些相似,因为都是对学习速率的周期性衰减。而带热重启的梯度下降方法则是在某个周期后进行重启,在重启之前的每个小周期都是使用余弦衰减来降低学习率,那么这样就可以避免梯度下降到后期非常缓慢或者震荡的情况。
   总的来说,上述几种衰减技巧比常数的学习率在梯度下降的效果会稍微好点,但是在迭代后期会存在衰减速度巨慢的情况,但是周期性学习率调整的思路是比较好的,因为周期性的重启可以帮助学习率周期性的调整,但是需要确定重启的周期,如果该重启周期过大或者过小都会存在问题。本人认为,使用者需要关注几种学习率衰减的技巧原理,比较多种技巧在实际问题的下降速度等特性,在某些情况甚至可以使用学习率预热的思路进行处理。因为学习率是和梯度等同重要的组成部分,所以使用者在遇到实际问题的时候要仔细观察和设定该参数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章