转:http://webdancer.is-programmer.com/posts/35983
随机梯度下降算法的基本思想,在前面已经说过了。在应用梯度下降的时候有几个要注意的点,再重新记录一下。
1.收敛
我们在应用梯度下降的时候,一定要关注是否收敛。一般来说,E(θ)收敛到一定的值,所求出来的参数也是基本相同的。能使用梯度下降的求解的问题,影响我们求解的是它的学习速率(可以参考前面的内容)。速率过大,可能不收敛;速率过小,收敛速度过慢,所以我们必须恰当的选择学习速率η。通过下面的例子看以看到[1]:
当学习速率为50时,不收敛;当学习速率为0.01时收敛过慢,所以在训练时候一定要选择恰当的参数。
2.随机shuffle
在随机梯度学习算法中,如果训练集中正例和负例都聚集在一块。不进行shuffle可能会造成'wavy'现象[2],如下图所示:
[引用]:
[1]自己实现的logistic regression model,然后在上面做的实验,得出的图1。
https://github.com/seaslee/ML_algorithm.git
[2]http://openclassroom.stanford.edu/TestFolder/courses/ufldl/exercises/ex1/ex1.html