隨機梯度下降算法


1. 損失函數

在線性回歸分析中,假設我們的線性回歸模型為:

 

樣本對應的正確數值為:

現在假設判別函數的系數都找出來了,那么通過判別函數G(x),我們可以預測是樣本x對的值為。那這個跟實際的y的差距有多大呢?這個時候我就出來一個損失函數:

其實損失函數很容易理解,就是所有樣本點的預測的值跟實際的值之間的差距的表達式而已。至於為什么有個1/2 分數,那只是為了后面求導的時候方便約掉那個平方而已。

2. 隨機梯度下降算法

      其實梯度下降算法很好理解的。我們有了線性回歸模型了,那么我們的目標就是要找出這些系數,而且這些系數怎么樣也是最好的了。梯度下降算法就是來優化這個內容的,就是找出最佳的回歸系數:

      而最佳的回歸系數是不是要最小化,就是讓損失函數的值越小越好。

      當只有兩個系數的時候,我們的損失函數就如上圖一樣。那么谷底就是一個最優解了。那么應該怎么來找到谷底呢?是不是當我們初始化之后,然后往谷底的方向慢慢來調節,讓損失函數的值越來越小呢。對,就是這樣的,那么怎么來確定這個方向呢?這是關鍵所在。這時候,我們就需要理解對一個函數求導的意義了。其實導數的意義很簡單。

      在一個而平面上,如A點的導數就是該函數在點A的斜率。

如果我們的回歸系數在優化的過程中,是按照下面的式子來優化的:

是步長,就是我們在優化時候,往損失函數最小化的方向走的一個長度。

      按照(1)式子,因為,即導數是負的,那么這個系數再減的話,就相當於加了,就是往導數的方向走,那么導數的值就越來越大,導數這條直線就越來越平。但導數這條直線平移x軸的時候,就是谷底了,也就是損失函數的最優解了。

     根據上面的坐標軸圖,如果A點在右邊也沒關系,如果在右邊,那么就為正數,就相當於減去一個值,同樣也是往最小的方向走,導致的值越到越小,當導數這條直線平行x軸時候,就到谷底了,也就是到了最小的地方了。

     那么對所有的系數進行如下的操作,就能找到一個最優解了。

你也許有個問題,就是步長因為是認為指定的,它的取值會不會另損失函數不能到達谷底,只是在附近而已。這個是會的,所以有些算法就專門針對這個問題進行研究,比如當越接近谷底的時候步長越來越小等。

 


免責聲明!

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



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