上一篇《导数,数值微分,偏导数,以及梯度下降的Python示例》展示了梯度下降的相关概念和代码示例,本篇展示梯度下降法的具体应用
梯度法
通过上一篇我们已经知道,函数中某个点的梯度,就是该点处函数值函数值减小最多的方向。例如函数:
y=x02+x12
如果将x0和x1在[-2,2]区间内每个点的‘负梯度’计算并用python画出来,可以发现每个点的梯度都指向函数的最小值对应的坐标点(0,0):
利用这一特性,我们可以用来求解函数的极值,就是梯度下降法。其算法描述如下:
第一步:随机一个点
第二步:计算该点的梯度
第三步:沿着该点的梯度,前进一定距离
第四步:再次进入第二步,知道达到最大循环次数
其中第三步:沿梯度下降一定距离,数学表达如下:
x i = x i − η ∂ f ∂ x i ( 公 式 1 , η 为 学 习 率 ) x_i=x_i-\eta\frac{\partial^{}f}{\partial x^{}_i}(公式1 ,\eta为学习率) xi=xi