學習率(Learning rate)的理解以及如何調整學習率


1. 什么是學習率(Learning rate)?

  學習率(Learning rate)作為監督學習以及深度學習中重要的超參,其決定着目標函數能否收斂到局部最小值以及何時收斂到最小值。合適的學習率能夠使目標函數在合適的時間內收斂到局部最小值。
  這里以梯度下降為例,來觀察一下不同的學習率對代價函數的收斂過程的影響(這里以代價函數為凸函數為例):
  回顧一下梯度下降的代碼:
  repeat{
     $ \theta_j = \theta_j - \alpha \frac{\Delta J(\theta)}{\Delta \theta_j} $
  }
  當學習率設置的過小時,收斂過程如下:

![](https://images2018.cnblogs.com/blog/1238724/201808/1238724-20180813212555532-988749685.jpg)
  當學習率設置的**過大**時,收斂過程如下:
![](https://images2018.cnblogs.com/blog/1238724/201808/1238724-20180813212651250-947399776.jpg)
  由上圖可以看出來,當學習率設置的**過小**時,**收斂過程將變得十分緩慢**。而當學習率設置的**過大**時,**梯度可能會在最小值附近來回震盪,甚至可能無法收斂**。   我們再來看一下學習率對**深度學習**模型訓練的影響:
![](https://images2018.cnblogs.com/blog/1238724/201808/1238724-20180818103751015-1833352554.jpg)
  可以由上圖看出,固定學習率時,當到達收斂狀態時,會在最優值附近一個**較大的區域內**擺動;而當隨着迭代輪次的增加而減小學習率,會使得在收斂時,在最優值附近一個**更小的區域**內擺動。(之所以曲線震盪朝向最優值收斂,是因為在每一個mini-batch中都存在噪音)。   因此,選擇一個合適的學習率,對於模型的訓練將至關重要。下面來了解一些學習率調整的方法。

2. 學習率的調整

2.1 離散下降(discrete staircase)

  對於深度學習來說,每 $ t $ 輪學習,學習率減半。對於監督學習來說,初始設置一個較大的學習率,然后隨着迭代次數的增加,減小學習率。

2.2 指數減緩(exponential decay)

  對於深度學習來說,學習率按訓練輪數增長指數差值遞減。例如:

\[\alpha = 0.95^{epoch\_num} \cdot \alpha_0 \]

  又或者公式為:

\[\alpha = \frac{k}{\sqrt {epoch\_num}} \]

  其中epoch_num為當前epoch的迭代輪數。不過第二種方法會引入另一個超參 $ k $ 。

2.3 分數減緩(1/t decay)

  對於深度學習來說,學習率按照公式 $ \alpha = \frac{\alpha}{1+ {decay _ rate} * {epoch _ num}} $ 變化, decay_rate控制減緩幅度。


引用及參考:
[1] https://mooc.study.163.com/learn/2001281003?tid=2001391036#/learn/content?type=detail&id=2001702125&cid=2001693086
[2] https://www.cnblogs.com/keguo/p/6244253.html
[3] https://blog.csdn.net/jningwei/article/details/79243800
[4] https://baijiahao.baidu.com/s?id=1591531217345055627&wfr=spider&for=pc

寫在最后:本文參考以上資料進行整合與總結,屬於原創,文章中可能出現理解不當的地方,若有所見解或異議可在下方評論,謝謝!
若需轉載請注明https://www.cnblogs.com/lliuye/p/9471231.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM