我们在运行梯度下降的时候,如何判定梯度下降是否在收敛呢?
梯度下降的时候,权重和偏置根据如下的公式同时更新:
程序要做的就是更新w 和 b,让梯度下降尽快的收敛,但是如何判定正在收敛呢?
方法一:绘制损失函数的曲线
这个是最通常的做法,绘制损失函数的曲线:
注意此时横轴不再是w权重,而是迭代次数,这个迭代是指w和b同时更新为一个迭代。
这个曲线的每一个点就表示,执行横轴的迭代次数后,损失是纵轴的数值。
真正梯度收敛的曲线应该就是上图这样的。损失成下降趋势,到某一个阈值的时候,损失几乎不再变化,像是一条直线,比如上图示例中300到400迭代。
另外需要注意的是,具体需要迭代多少次才能达到收敛,这个是不确定的,需要看具体的应用。
方法二:自动收敛测试
这种方法是先指定一个阈值,比如0.001,当损失到达这个值,我们就认为此时收敛了。但是通常情况下这个值很难确定。