梯度下降算法是一种寻找函数最小值得优化算法。算法从函数的一个随机点开始,每次移动都是函数梯度的负方向,从而到达函数的全局/局部最小点。
问题:给定函数$y=(x+5)^2$,从x=3点出发,找到函数的局部最小点。
解决方案:从函数图形上看,我们可以知道答案。当x = -5 时,函数$y=(x+5)^2$到达最小值(x=-5 y=0)。所以x=-5是函数的局部和全局最小值。
现在,我们来看如何使用梯度下降算法来获得同样的答案。
第二步:向梯度的负方向移动。但是每次移动多少呢。这里,我们需要一个学习率。这里我们假设学习率->0.01
第四步:我们可以看到x的值在下降,应该会收敛到局部最小-5。然而,我们需要多少次迭代呢。
我们在算法里设置一个精度变量用来计算两个连续的”x”值。如果两个连续x的值得差值小于我们设置的精度,就停止算法。
停止循环当两个连续迭代的x值的差小于0.000001或者迭代次数超过10000
输出:从下面的输出,我们可以看到最开始10次迭代的x的值,我们可以通过这个交叉检查我们上面的计算。算法运行了595次迭代直到停止。
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!