深度学习笔记 简单神经网络反向传播的推导

本文详细介绍了如何手动推导一个简单神经网络的反向传播过程,涉及模型结构、损失函数和梯度计算。网络包括embedding层、全连接层和softmax输出层。使用交叉熵作为损失函数,并特别讨论了softmax导数和参数梯度的计算。最后给出了Embedding矩阵的梯度表达式。

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

最近手推了一下神经网络梯度更新中的参数偏导,做一个笔记。

模型

我们考虑一个非常简单的神经网络,输入embedding后只通过一个全连接层,然后就softmax输出预测值

Created with Raphaël 2.2.0 Input X: 1xn Embedding Layer Z1 = WX: 1xN Activation Layer (Relu) Z2 = relu(Z1): 1xN Fully Connected Layer Z3 = wZ2+b: 1xK Activation Layer (Softmax) Y = σ(Z3): 1xK Prediction Y: 1xK

先只考虑一个样本X,feature有n个维度。embedding层可以视为一个nxN的矩阵,得到Z1的维度被扩展为N,经过relu激活层后输出。然后连接一层有K个神经元的全连接层,权重w是一个NxK的矩阵,b是一个1xK的向量,输出Z3经过softmax层后得到样本属于K个类中类别 i i i的概率值 Y i Y_i Yi

计算梯度

模型损失函数取简单的交叉熵损失函数: L = − ∑ i = 1 K y × l n Y {L = - \sum\limits_{i=1}^{K} y \times lnY} L=i=1Ky×lnY
其中y是真实值,Y是预测值, i = 1 , 2 , 3 , . . . , K i = 1,2,3,...,K i=1,2,3,...,K表示K个分类

  • 计算全连接层输出 Z 3 i {Z_{3i}} Z3i的梯度

∂ L ∂ Z 3 i = ∂ L ∂ Y × ∂ Y ∂ Z 3 i = ∑ j = 1 K ∂ L ∂ Y j × ∂ Y j ∂ Z 3 i = ∑ j = 1 K − y j × 1 Y j × ∂ Y j ∂ Z 3 i \begin{aligned} \frac{\partial L}{\partial Z_{3i}} = \frac{\partial L}{\partial Y} \times \frac{\partial Y}{\partial Z_{3i}} &= \sum\limits_{j=1}^{K} \frac{\partial L}{\partial Y_j} \times \frac{\partial Y_j}{\partial Z_{3i}} \\ &= \sum\limits_{j=1}^{K} -y_j \times \frac{1}{Y_j} \times \frac{\partial Y_j}{\partial Z_{3i}} \end{aligned} Z3iL=YL×Z3iY=j=1KYjL×Z3iYj=j=1Kyj×Yj1×Z3iYj
计算softmax导数时需要分 j = i {j = i} j=i j ≠ i {j \neq i} j̸=i两种情况考虑,所以这里将L求和中元素令为j,与i加以区分
i = j i = j i=j
∂ Y j ∂ Z 3 i = ∂ Y i ∂ Z 3 i = ∂ ∂ Z 3 i [ e Z 3 i ∑ k = 1 K e Z 3 k ] = e Z 3 i × ∑ k = 1 K e Z 3 k − e Z 3 i × e Z 3 i ( ∑ k = 1 K e Z 3 k ) 2 = Y i ( 1 − Y i ) \frac{\partial Y_j}{\partial Z_{3i}} = \frac{\partial Y_i}{\partial Z_{3i}} = \frac{\partial }{\partial Z_{3i}} [\frac{e^{Z_{3i}}}{\sum\limits_{k=1}^{K} e^{Z_{3k}}}] = \frac{e^{Z_{3i}} \times \sum\limits_{k=1}^{K} e^{Z_{3k}} - e^{Z_{3i}} \times e^{Z_{3i}}}{(\sum\limits_{k=1}^{K} e^{Z_{3k}})^2} = Y_i(1-Y_i) Z3iYj=Z3iYi=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值