前向和反向传播公式推导

本文详细介绍了深度学习中前向传播和反向传播的算法,包括网络结构定义、前向传播计算预测值、反向传播计算梯度,以及梯度下降算法的使用。通过具体的例子和计算图展示了反向传播的过程,并将其向量化为代码形式,为神经网络的训练提供了理论基础。

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

1 定义网络结构

        假设某二分类问题的网络结构由如图1.1组成(暂仅以2层网络举例,更高层数可依此类比),其输入的特征向量维数为n,隐藏层神经元个数为 n^{[1]} ,输出层神经元个数为n^{[2]}(由于是二分类问题,故仅含一个)。

神经网络结构
图1.1 神经网络结构

        其训练过程为:首先获取训练数据 X ,初始化每层的训练参数 w、b ,并通过前向传播算法(包含线性前向传播和激活函数前向传播)得到  \hat y 并计算 J(w,b) ,然后通过反向传播算法(包含线性反向传播和激活函数反向传播)计算每层的 dw 和 db,最终通过梯度下降算法更新参数 w、b,并多次迭代该过程,得到训练参数。

定义神经网络结构
图1.2 定义神经网络算法结构

其中参数为:

X = \begin{bmatrix} X_1^{(1)} X_1^{(2)} ... \ X_1^{(m)} \\ X_2^{(1)} X_2^{(2)} ... \ X_2^{(m)} \\ ... ... ... ... \\ X_{n^{[0]}}^{(1)} X_{n^{[0]}}^{(2)} ... \ X_{n^{[0]}}^{(m)} \end{bmatrix}_{(n^{[0]}\times m)}   W^{[1]T} = \begin{bmatrix} W_{11}^{[1]} \ \ W_{12}^{[1]} \ ... \ W_{1n^{[0]}}^{[1]} \\ W_{21}^{[1]} \ \ W_{22}^{[1]} ... \ W_{2n^{[0]}}^{[1]} \\ ... ... ... ... \\ W_{n^{[1]}1}^{[1]} W_{n^{[1]}2}^{[1]} ... \ W_{n^{[1]}n^{[0]}}^{[1]} \end{bmatrix}_{(n^{[1]}\times n^{[0]})}    b^{[1]} = \begin{bmatrix} b_{1}^{[1]} \\ b_{2}^{[1]}\\ ... \\ b_{n^{[1]}}^{[1]} \end{bmatrix}_{(n^{[1]}\times 1)}

类比可知 W^{[2]T} 维数为(n^{[2]} \times n^{[1]})b^{[2]} 维数为(n^{[2]} \times 1)

X 包含 m 个样本的 n^{[0]} 个特征值,W^{[1]} 包含网络第1层的所有权重参数,b^{[1]} 包含网络第1层的所有偏置参数。

2 前向传播算法

        输入数据 X ,然后通过每层的权重 w 和偏置 b 计算得到输出预测值 \hat y ,并最终通过代价函数衡量算法的运行情况。

Z^{[1]} =W^{[1]T}X + b^{[1]}= \begin{bmatrix} Z_{1}^{[1](1)} \ Z_{1}^{[1](2)} \ ... \ Z_{1}^{[1](m)} \\ Z_{2}^{[1](1)} \ Z_{2}^{[1](2)} ... \ Z_{2}^{[1](m)} \\ ... ... ... ... \\ Z_{n^{[1]}}^{[1](1)} Z_{n^{[1]}}^{[1](2)} ... \ \ Z_{n^{[1]}}^{[1](m)} \end{bmatrix}_{(n^{[1]}\times m)} 

注:上式中 {\color{Red} b^{[1]}} 需要先广播(python中的一种运算机制)至 {\color{Red} (n^{[1]} \times m)} 再参与运算。

A^{[1]}=g^{[1]}(Z^{[1]}),此处激活函数 g^{[1]}(z) 选择 Relu 函数。

Z^{[2]} =W^{[2]T}A^{[1]} + b^{[2]}

A^{[2]}=g^{[2]}(Z^{[2]}),此处激活函数 g^{[2]}(z) 选择 sigmoid 函数。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值