【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$。

    原文作者:Boye
    原文地址: https://segmentfault.com/a/1190000010375041
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞