深度学习-反向传播与梯度下降

本文深入讲解了逻辑回归算法的工作原理,包括前向传播和反向传播的计算过程,以及如何通过梯度下降更新参数,使预测更加精确。同时,文章还介绍了在多个训练样本的情况下,如何计算偏导数,实现模型的批量训练。

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

首先让我们来回顾一下有关逻辑回归的知识。如下图所示,在逻辑回归的前向传播过程中,第一步我们要先计算出z,第二步计算出预测值y^\hat{y}y^,最后计算出损失函数L。

         z = wTw^TwTx+b

         y^\hat{y}y^ = 11+e−z\frac{1}{1 + e^{-z}}1+ez1

         L(y^\hat{y}y^, y) = -(ylog(y^\hat{y}y^) + (1-log)(1-y^\hat{y}y^))

上面是前向传播,那么反向传播应该如何计算呢?
我们最终的目的是要计算出w和d关于L的偏导数,也就是dLdw\frac{dL}{dw}dwdLdLdb\frac{dL}{db}dbdL,然后更新w,b以使损失函数L越来越小,使预测越来越精准。

通常我们会将最终函数(在这里是L)的偏导数的符号进行简化,例如dLdw\frac{dL}{dw}dwdL可以写成dw,将dLdb\frac{dL}{db}dbdL写成db,所以当你看到db时你会知道它是 dLdb\frac{dL}{db}dbdL而不是 dy^db\frac{d\hat{y}}{db}dbdy^

为了计算出dw和db,第一步需要计算出 dy^(dLdy^d\hat{y}(\frac{dL}{d\hat{y}}dy^(dy^dL),dy^\hat{y}y^ 的计算公式是 −(yy^+1−y1−y^)-(\frac{y}{\hat{y}}+\frac{1-y}{1-\hat{y}})(y^y+1y^1y),下一步我们需要求出dz,根据链式法则dz可以通过 dLdy^dy^dz\frac{dL}{d\hat{y}}\frac{d\hat{y}}{dz}dy^dLdzdy^ 求出,dLdy^\frac{dL}{d\hat{y}}dy^dL上面我们已经求出来了,dy^dz\frac{d\hat{y}}{dz}dzdy^的计算公式是y^(1−y^)\hat{y}(1-\hat{y})y^(1y^)

         dy^dz=−(1+e−z)−2e−z(−1)\frac{d\hat{y}}{dz}=-(1+e^{-z})^{-2}e^{-z}(-1)dzdy^=(1+ez)2ez(1)

           =e−z(1+e−z)2=\frac{e^{-z}}{(1+e^{-z})^2}=(1+ez)2ez

           =e−z+1−1(1+e−z)2=\frac{e^{-z}+1-1}{(1+e^{-z})^2}=(1+ez)2ez+11

           =11+e−z−1(1+e−z)2=\frac{1}{1 + e^{-z}}-\frac{1}{(1 + e^{-z})^2}=1+ez1(1+ez)21

           =y^−y^2=\hat{y}-\hat{y}^2=y^y^2

经过计算后 dz=y^−ydz=\hat{y}-ydz=y^y。同理,我们可以计算出dw=xdz,db=dz。如下所示:

得到dw,db后,就可以更新这些参数值进行梯度下降,例如w=w-rdw,然后用新的参数值再次进行前向传播然后再反向传播,
通过这样不停的前向反向传播来训练参数,使损失函数值越来越小。

上面讲述的是单个训练样本时如何计算逻辑回归的偏导数,下面我给大家介绍多个训练样本时如何计算偏导数。

对于多个训练样本,成本其实就是多个样本的损失的平均值——m个样本的损失累加起来然后除以m就是成本。同理,多个样本时的偏导数等于每个样本的偏导数的平均值。

下图给出m个样本时计算偏导数的伪码。

Z = np.dot(w.T, X) + b
A = 1 / (1 + np.exp(-Z))
L = np.sum(-(Y*np.log(A) + (1-Y)*np.log(1-A))) / m
dZ = A - Y
dw = np.dot(X,dZ.t) / m
db = np.sum(dZ) / m
w = w - r * dw
b = b - r * db

利用上面的计算过程我们实现了逻辑回归的前向传播、反向传播,对参数进行梯度下降,一步一步的更新参数,使预测越来越精准。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值