学习算法注意事项

来源:互联网 发布:广告最多的汽车 知乎 编辑:程序博客网 时间:2024/09/21 11:15

1. 用梯度下降算法更新权值,不能算出一个更新一个。例如修改了第一个权值,后面的权值会因为第一个的修改导致不是梯度最陡的走向。实际上算出一个权值马上去更改这种是另外一个算法。


2.输入的特征向量幅度要相近。

    例如:X1的范围是(-1,1),X2的范围是(-100,100)。这样会影响梯度算法的效果。可以把X2 := X2/100。那样X2的范围就变成(-1,1)。如果X2的范围是(500,700),X2 := (X2-u)/100 u=600。

下面这组特征向量范围是合理的:0<X1<3, -2<X2<0.5, -3<X3<3, -1/3<X4<1/3 


3.通过观察梯度修改100次,200次,300次的代价函数,可以知道你的程序的状况。


还可以观察算法是否已经很好的拟合。虽然可以设置一个判断值,当走了多少步,代价函数变化在判断值内,可以判断为训练完成。但往往这样的判断不不理想,你不知道设置多小的好。而且有些其他状况会导致训练无法完成。例如

所以选择适当的α很重要,一般选取的跨度可以是0.001,0.003,0.01,0.03,0.1,0.3,1。将近3的倍数会好一点。如果是10倍的增长,跨度可能会大了点。一般尝试到最大的α,然后去偏小一点的值比较合理。


4.可以对输入X进行调整。。例如输入参量是X1,X2。可以把输入改成X1`=X1*X2, X2`=X1^2, X3`=X1^3, X4`=X1^0.5。权值增加成4个。这样子就能拟合出非线性的了。要注意 如果X1的范围是(0,10),那么X2`的范围(0,100),X3`的范围(0,1000)。所以此时输入值相似化就显得异常重要了。


0 0
原创粉丝点击