通常来讲,在训练一个模型的时候需要用一个收敛的条件来约束算法迭代的轮次,比如在Logisitc Regression中会用相邻两次迭代的损失函数差小于10e-5来控制迭代次数,为了保险同时还有限定一个最大迭代次数。
一个模型的收敛所需要的迭代次数依赖于数据本身和算法参数。 线性回归里的梯度下降算法其收敛需要的迭代次数和learning rate的关系非常密切,怎样选择一个合适参数使得能收敛的更快? 我使用的办法如下。
从这个图就可以看出使用的办法了。
图中纵轴是损失函数在每次迭代完后的大小,横轴是迭代的次数, 在初次接触一个模型进行迭代训练的时候,画这么一张图能给人一个很直观的参数选择方法。
从图中可以看出,当learning rate选择范围在1,2,3,4的时候收敛的速度都是相当之快的,而当learningrate 选择0.1的时候收敛就明显变慢了,而当learning rate选择10的时候这条咖啡色的曲线就开始出现了振荡,这说明这个learning rate过大导致模型不收敛了。