文中截圖均來自Andrew Ng 視頻,文字總結(jié)部分全為原創(chuàng)。
如何得知我們的梯度下降算法是在正常工作的
梯度下降算法收斂所需要的迭代次數(shù)根據(jù)模型的不同而不同,我們不能提前預(yù)知。一般情況下,可以畫出迭代次數(shù)和代價函數(shù)的圖來觀測算法在何時收斂。如下圖:

從圖中可以看出迭代400次之后,minJ()的值基本保持不變了,因此大致在400次左右進行收斂。這樣的圖意味著梯度下降是正常工作的。
但是如果出現(xiàn)以下圖,這表明梯度下降沒有正常工作:

上圖中表示的意思是迭代次數(shù)的增加,代價函數(shù)反而變大,導(dǎo)致這一現(xiàn)象的原因可能是學(xué)習(xí)率過大,出現(xiàn)了以下情況(下圖是Θ與J(Θ)的關(guān)系圖,橫坐標是Θ)。下圖所顯示的就是學(xué)習(xí)率過大,導(dǎo)致發(fā)散。

上圖出現(xiàn)的情況可以使用降低學(xué)習(xí)率來緩解這一問題。
判斷收斂
1、大多情況下,可以從圖中看出迭代多少次后J(Θ)趨于穩(wěn)定,就表明此刻收斂。
2、此外,還有一些自動測試是否收斂的方法,例如將代價函數(shù)的變化值與某個閾值進行比較(例如0.001),但通常還是觀察圖比較好。因為很難確定那樣一個閾值。
三、學(xué)習(xí)率大小的確定
通常,學(xué)習(xí)率過高可能導(dǎo)致發(fā)散,過小則會導(dǎo)致迭代次數(shù)太多??梢远啻螄L試一些學(xué)習(xí)率,如:0.01、0.03、0.1、0.3、1、3、10
我的博客 : https://NingSM.github.io
轉(zhuǎn)載請注明原址,謝謝。