數據分析第九篇:梯度下降詳解


什么是梯度下降法

是一種基於搜索的最優法方法

下面這個圖是在一維方向的求導,但是在多維的我們需要對各個維度求導,然后進行一個合並。多維中叫做梯度。

在直線上,導數代表斜率

在曲線方程中,導數代表切線斜率。也代表theta單位變化時,J相應的變化

 

 

在這一點上,導數為負值,當theta增加,J是減小的。導數可以代表方向,對應J增大的方向,我們需要J減小的話,就需要向導數的反方向

 

我們就需要theta-上面的公式,也就是theta在向右移動

 

注意:並不是一定有極值點,有時候會收斂到局部最優解

解決方案:

  1. 多次運行,隨機化初始點
  2. 梯度下降法的初始點也是一個超參數

 

線性回歸中的梯度下降法(批量梯度下降法)

梯度代表方向,對應J增大最快的方向。只不過

 

J需要對theta每個方向的求一個偏導數,只是因為現在J中包含多個未知數

 

越內層的損失函數取值越小

 

 

同上上面最后一步我們發現最后的梯度的大小和m是有關系的,m越大,梯度越大,為了讓梯度和m無關,我們需要除以一個m。

 

梯度下降向量化數據標准化

 

簡化后為:

 

4隨機梯度下降法

由上面的圖我們可以知道,每次求梯度的時候,都是講m條數據全部進行了梯度的運算,當數據量比較大的時候是非常耗費性能的。

那我們能不能每次取出一條數據?

這樣就不用除以m

 

- 隨機梯度下降法,學習率的取值非常重要,我們希望我們的學習率是逐漸遞減的

 

 

 

 

圖中a,b都是隨機梯度下降法中的超參數,一個比較好的取值就是a=5,b=50。上圖的思想就是模擬退火的思想。

5梯度的調試

在一維的坐標中:

在紅色點部分的導數約等於它左右附件的兩點的連線的斜率

 

在多維的坐標中:

對每一個維度使用下面的方式,這樣做的時間復雜度非常高

 

下面是調試代碼的截圖:

 

 

 

 

 

6梯度下降總結

批量梯度下降法:

每一次都要對所有的樣本算一遍才能求出梯度

缺點:比較慢

優點:穩定,一定能夠向着我們損失函數下降最快的方向前進

 

隨機梯度下降法:

每一次只看一個樣本就能求出梯度

優點:速度快

缺點:不穩定,每一次的方向是不確定的,甚至會向反方向前進

小批量梯度下降法:

每次取出部分樣本,兼顧了前面兩者的優點

 


免責聲明!

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



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