【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