閱讀454 返回首頁    go 阿裏雲 go 技術社區[雲棲]


【Machine leaning】筆記:梯度下降法 Tips

課程是 Coursera 上 Andrew Ng 的公開課:Machine Learning

在第二周的課程 Multivariate Linear Regression 中,老師講了兩個梯度下降法的 Tips.

Tips 1: Feature Scaling

如果不同 feature 取值範圍比較接近,那麼梯度下降法就能讓誤差函數盡快收斂。
老師建議:大概不超過 $(-3, 3)$,且大概不小於 $(-1/3, 1/3)$,是比較能接受的。

Mean normalization

$$ x_i :=\frac {x_i - u_i} {s_i} $$
其中,$x_i$ 表示第 $i$ 個 feature,$s_i$ 可以是 $x_i$ 的取值範圍,也可以是 $x_i$ 的標準差。

Tips 2: Learning Rate

如何才能認為梯度下降法正常工作了?

(i) Debugging gradient descent

可以畫出 $J(\theta)$ 關於迭代次數的曲線,如果曲線單調下降,並且在一定迭代次數之後下降幅度保持很小,就可以認為它收斂了。
如果隨著迭代次數增加,$J(\theta)$ 增加,或者增減不定,那麼可能是 learning rate $\alpha$ 太大了的原因。

(ii) Automatic convergence test

可以進行自動收斂測試。如果每次迭代,$J(\theta)$ 的下降值低於一個很小的值,就認為它收斂了。這個值一般可以取如 1e-3 這樣的值,但它很難檢查出問題,不太靠譜。
老師建議,一般還是畫出$J(\theta)$ 關於迭代次數的曲線來看。

Learning rate $\alpha$ 怎麼選?

多試一些 $\alpha$ 的值,老師建議是,測試以下一係列 $\alpha$:
$$ 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, \cdots $$
從而找出比較合適的 $\alpha$。

最後更新:2017-07-27 14:32:56

  上一篇:go  原來惡意軟件在各個國家的投放都是有分類的……
  下一篇:go  從一張圖看清世界上最大的數據中心分布區域