问题:
运行梯度下降时,如何判断它是否收敛(找到最小的成本函数)?
梯度下降公式如下:
学习率也是关键之一
梯度下降的目的是找到参数w和b,是成本函数J最小化。
正确的学习曲线
如图
说明:
- 横轴是迭代次数,是目前为止已经运行的梯度下降
- 迭代100次对上去的成本函数,意味着100次同时更新参数,我们会有关于w和b的学习值
- 如果梯度下降工作正常,J应该在每次迭代后减少;如果J增加,就意味着学习率选取太大或代码有误
- 到达300次,J正在平衡并且不减少太多
- 到达400次,曲线几乎变平了,意味着梯度下降或多或少的收敛了
- 不同的程序,收敛所需的迭代次数不同
另一种方法:自动收敛测试
不推荐,选看