調整學習率(吳恩達機器學習編程作業1)

介紹

本文主要是展示相同迭代次數不同學習率、相同學習率不同迭代次數對應代價函數變化的情況。本着一不做二不休的情況想探究一哈學習率過大和過小的情況。
基於吳恩達機器學習編程作業1中的二元線性迴歸題目探討的。題目的數據集中有3個特徵變量,俄勒岡州波特蘭市的房子面積,房子臥室數量和房價。題目要求我們根據房子面積和房子臥室數量兩個特徵建立2元線性迴歸方程預測房價。
下面分4波學習率進行展示,第一張圖片是按照instruction給的建議alpha 取0.3,0.1,0.03和0.01。
第二張圖片在第一波的基礎上加了alpha取1和0.0001的情況。
第三張圖片、第四張圖片是alpha分別取2、5。第一波和第二波都比較正常,但是第三波和第四波出現了反常情況。具體介紹見下文。
第五張圖片是alpha取5,迭代次數分別取21、22、23、24 。第六張圖片是alpha取5,迭代次數分別取25、30、35、40 。

改變學習率

在這裏插入圖片描述 從圖中可以看出,alpha爲0.3時代價函數下降最快,迭代9次後,代價函數的值就變爲穩定值2.3e+10
alpha 取0.1, 迭代30次後,代價函數的值就變爲穩定值2.3e+10,速度約等於alpha爲0.3的三分之一
alpha 取0.03, 迭代100次後,代價函數的值就變爲穩定值2.3e+10。
alpha 取0.01, 迭代302次後,代價函數的值就變爲穩定值2.3e+10,速度約等於alpha爲0.03的三分之一
通過對比alpha=0.3和alpha=0.1以及alpha=0.03和alpha=0.01,可以不嚴謹地得出一個結論,代價函數減小速度與學習率大小成反比。

alpha 取1的時候,代價函數幾乎在迭代不超過10次後就減少到穩定值,代價函數減小地極快
alpha 取0.0001, 迭代400次後,代價函數的值基本沒有變化,代價函數減小地極慢。

在這裏插入圖片描述 alpha 取1的時候,代價函數的變化出現了異常,先是基本不變,然後在迭代400左右的時候飆升。而且注意到代價函數的數量級飆升到1e+259數量級。更多的探討在下面alpha 取5的時候展開討論。
在這裏插入圖片描述alpha 取5的時候,和alpha取1的時候類似,代價函數的變化出現了異常,先是基本不變(在後文可以知道其實變了,只是在圖像中不明顯),然後在迭代180次左右的時候飆升。而且注意到代價函數的數量級飆升到1e+305數量級,相比於alpha取1時代價函數飆升到1e+259,數量級還是增大不少。此時得到的線性迴歸方程參數爲
Theta =
[
-2.78e+114
-5.23+129
-5.23+129
]
針對房間面積1650平方米,3個臥室的房價3.48e+129dollars!!!
考慮到在代碼中設置的迭代次數爲400次,但是上圖中迭代次數直到了180次,所以在代碼中更改迭代次數分別爲10,20,50,100,觀察代價函數的圖像變化情況。

接着,我就想到一個問題,**爲啥代價函數總是在迭代次數最後幾次暴增?**我想了一下,**覺得可能是其實每次迭代,代價函數的增長都很快,可能是越來越快,**這樣積累下來就導致隨着迭代次數越來越多,代價函數增加地就越來越快,導致最後的迭代使得代價函數增長的數量級比前面的迭代使得代價函數增長的數量級要大得多。

改變迭代次數

在這裏插入圖片描述**保持學習率alpha = 5不變,把迭代次數修改爲21、22、23、24,**代價函數的數量級依次爲1e+43、1e+45、1e+47、1e+48。每增加1個迭代次數,代價函數的數量級變爲原來100倍左右。
在這裏插入圖片描述
**保持學習率alpha = 5不變,把迭代次數修改爲25、30、35、40,**代價函數的數量級依次爲1e+50、1e+58、1e+66、1e+75。每增加1個迭代次數,代價函數的數量級變爲原來1e+8倍左右。

結論

綜上,學習率過大會導致代價函數不增反減,學習率過小會導致代價函數基本不會減小。學習率適中,代價函數減少速度與學習率大小成反比。

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