梯度及梯度下降法原理、公式推导

本文详细介绍了导数、偏导数、方向导数和梯度的概念,重点讲解了梯度在神经网络训练过程中的作用,以及梯度下降法的原理和参数更新过程。此外,还讨论了批量梯度下降、随机梯度下降和小批量梯度下降三种方法的差异,特别强调了小批量梯度下降在实际应用中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导数、偏导数、方向导数、梯度

理解梯度首先要理解导数、偏导数、方向导数。

导数:
在这里插入图片描述
指的是一元函数 y = f ( x ) y = f(x) y=f(x) 在某一点处沿x轴正方向的变化率。若导数大于0,说明函数值在该点处沿x轴正方向是递增的,若导数小于0,说明函数值在该点处沿x轴正方向是递减的。

偏导数:
∂ ∂ x j f ( x 0 , x 1 , . . . , x n ) = lim ⁡ Δ x j → 0 Δ y Δ x = lim ⁡ Δ x j → 0 f ( x 0 , . . . x j + Δ x j , . . . x n ) − f ( x 0 , . . . x j , . . . x n ) Δ x j \frac{\partial }{ {\partial {x_j}}}f({x_0},{x_1},...,{x_n}) = \mathop {\lim }\limits_{\Delta {x_j} \to 0} \frac{ {\Delta y}}{ {\Delta x}} = \mathop {\lim }\limits_{\Delta {x_j} \to 0} \frac{ {f({x_0},...{x_j} + \Delta {x_j},...{x_n}) - f({x_0},...{x_j},...{x_n})}}{ {\Delta {x_j}}} xjf(x0,x1,...,xn)=Δxj0limΔxΔy=Δxj0limΔxjf(x0,...xj+Δxj,...xn)f(x0,...xj,...xn)
偏导数指的是当某一自变量的变化量趋于0且其他自变量不变时,函数值的变化量与该自变量变化量比值的极限。偏导数就是多元函数 y = f ( x 0 , x 1 , . . . , x n ) y = f({x_0},{x_1},...,{x_n}) y=f(x0,x1,...,xn)在某一点处沿某一坐标轴 ( x 0 , x 1 , . . . , x n ) ({x_0},{x_1},...,{x_n}) (x0,x1,...,xn)正方向的变化率。
以二元函数为例,偏导数 f x ( x , y ) {f_x}(x,y) fx(x,y)指的是函数在y轴方向上不变,函数值沿着x轴方向的变化率, f y ( x , y ) {f_y}(x,y) fy(x,y)指的是函数在x轴方向上不变,函数值沿着y轴方向的变化率。

方向导数:
偏导数只描述了多元函数沿坐标轴方向的变化率,但多元函数除坐标轴外,还有很多个方向,想要得到函数在任意方向变化率,就需要用到方向导数。方向导数可衡量多元函数在任意方向的变化率,不管这个方向是不是坐标轴的方向。

梯度:
理解梯度要先理解神经网络的训练过程,简单来说,神经网络的训练过程是通过最小化损失函数来进行参数更新。神经网络训练的目的就是通过不断迭代,获得预测效果最好的参数(w和b),什么时候预测效果最好呢,当然就是预测值和真实值之间差异最小的时候效果最好啦,这个差异就是损失函数,那么训练的最终目的就是最小化这个损失函数。当损失函数最小时网络中的各参数就是预测效果最好的状态。
以常见的均方误差损失函数为例:
L ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 L(\theta ) = \frac{1}{ {2m}}{\sum\limits_{i = 1}^m {({h_\theta }({x^{(i)}}) - {y^{(i)}})} ^2} L(θ)=2m1i=1m(hθ(x(i))y(i))2
可见损失函数是一个多元函数,要想最小化这个多元函数,就要找到其下降的方向让它不断减少直至最低点即可。多元函数有无数个方向,其下降方向也有很多,那自然是沿着其下降最快的方向不断接近最小值是最好的。那么哪个方向是其下降最快的方向呢,就是方向导数最大方向的反方向。

梯度推导

在这里插入图片描述
在XOY平面上有一点 p 0 ( a , b ) {p_0}(a,b) p0(a,b),L为以 P 0 {P_0} P0为起始点的一条射线, e ( cos ⁡ θ , sin ⁡ θ ) e(\cos \theta ,\sin \theta ) e(cosθ,sinθ)是与L同方向的单位向量(e就是上图中的u), θ \theta θ为x轴正向与射线L的夹角。在曲面z=f(x,y)上,从点 ( ( a , b ) , f ( a , b ) ) ((a,b),f(a,b)) ((a,b),f(a,b))出发,沿单位向量e的方向走t个单位长度后,函数值为 z = f ( a + t cos ⁡ θ , b + t sin ⁡ θ ) z = f(a + t\cos \theta ,b + t\sin \theta ) z=f(a+tcosθ,b+tsinθ)
f(x,y)在点 ( ( a , b ) , f ( a , b ) ) ((a,b),f(a,b)) ((a,b),f(a,b))处,L方向的方向导数为:

D = d f ( a + t cos ⁡ θ , b + t sin ⁡ θ ) d t ∣ t = 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值