随机梯度下降法以及梯度下降法调试

什么是随机梯度下降法

就是从现有的数据中随机取出一部分数据进行运算,相对于批量梯度下降法每一次运算就要全部数据参与计算,随机梯度下降法可以在损失极小的精度下,换取较大的速度提升

如何随机

就是学习率会随着循环次数的增加而变化,也就是随机梯度下降法以及梯度下降法调试的值会变,具体取值约为 5/(50+i) i为当前循环的次数,这样随机梯度下降法以及梯度下降法调试每一次下降的速度也是随着循环的次数增加而减少,符合梯度下降的规则,越靠近最优解,下降就越快

代码展示

首先求导公式要改

随机梯度下降法以及梯度下降法调试

然后修改搜索函数

随机梯度下降法以及梯度下降法调试

这里很重要的一点,随机梯度下降法不再依赖判断两次损失函数相差的值小于随机梯度下降法以及梯度下降法调试,也就是1e-8,而是就仅仅依赖于循环次数,只要循环次数达到我们要求的次数即可退出随机梯度下降法以及梯度下降法调试的最佳值搜索,这样有时候我们只需要知道损失函数的求导后的公式即可

梯度下降法调试

梯度下降法参数可以先用小部分数据进行数据调参,用相距所要求导的点很靠近的周围两个点所形成的斜线的斜率来当做求导,如下图

随机梯度下降法以及梯度下降法调试

红点是要求导的点,但是去红点周围两个距离特别近的点所连成的斜线的斜率来近似于红点的求导值,在这种求随机梯度下降法以及梯度下降法调试最优解的方法中,就不需要求对损失函数求导,这样在一些很难推出求导函数的函数来说,就可以这样直接求出随机梯度下降法以及梯度下降法调试最优解

随机梯度下降法以及梯度下降法调试

查找函数

随机梯度下降法以及梯度下降法调试