天天看點

機器學習(二)- learning rate

learning rate

本文就不講什麼是learning rate了,還是講講Andrew Ng所講的一些小tips和自己的了解。

如何判斷我們選的learning rate起作用了呢,那就是畫一張下面這樣的圖,代價函數-疊代次數曲線圖,如果呈現下面這種一路下降的情況,那就說明梯度下降算法起作用了。當然一般情況下是不可能perfect fitting的,是以我們根據實際情況設定一個門檻值,當代價函數小于門檻值時,我們就判斷收斂了。

機器學習(二)- learning rate

除了上圖中的正确情況,還有下面兩種錯誤情況。

機器學習(二)- learning rate
機器學習(二)- learning rate

它們都存在代價函數增大的情況,實際learning rate選的太大導緻的,出現下圖的橫跳情況。

機器學習(二)- learning rate

其實面對上圖,我一直有個疑惑,為什麼learning rate是固定的,代價函數卻越來越大呢,在上圖直覺的看來就是左右橫跳距離越來越大,但其實learning rate不變,在contour map上跳的距離就不變,隻是方向變了。

但其實你仔細想想,contour map上移動的距離,和上圖中橫跳的距離并沒有直接關系,代價函數越來越大的原因其實也要用contour map來解釋,因為在沿着長軸zig-zag的過程中,雖然每次疊代移動的距離是一樣的,但是由于緩慢在向最小值點靠近,那麼contour會越來越密,對應的移動相同距離,卻由于跨過的等高線越多,是以可能出現反而增大的情況。

最後Andrew Ng教授建議learning rate的選取

機器學習(二)- learning rate

依次3倍增加,然後用測試的最大值,這樣既保證了收斂又保證了收斂速度。