❶ 深度学习之反向传播算法(2)——全连接神经网络的BP算法推导
深度学习之反向传播算法(2)——全连接神经网络的BP算法详解
在上篇文章中,我们探讨了简化神经网络中反向传播的基本原理。在实际的多层全连接网络中,反向传播涉及矩阵操作的扩展,如矩阵偏导、导数累加和维数变换。这些概念可能会因不同的记法和定义而显得复杂,导致理解困难。为了更直观地理解,本文将从全连接神经网络的结构开始,一步步推导前馈和反向传播过程。
1. 符号与数学基础
- 标量、向量和矩阵的表示遵循一定的规则,如[公式] 代表矩阵的转置,而[公式] 是矩阵乘法的条件。
- 矩阵求导有分母布局和分子布局两种形式,通常分母布局更常用。
2. 全连接神经网络
- 网络结构包括输入层、隐藏层和输出层,每层之间全连接,权重矩阵[formula] 和偏置向量[formula] 控制信号的传播。
- 网络参数的数学表达,如[formula],权重矩阵对应于层间连接。
3. 前馈与正向传播
- 前向传播通过权重和偏置矩阵将输入数据逐层映射至输出,数学表达为[公式]。
4. 反向传播与梯度计算
- 对损失函数[formula] 的求导涉及链式法则,逐层逆向传递梯度。
- 通过递推公式,计算隐藏层权重矩阵[formula] 和偏置向量[formula] 的梯度,以及输出层[formula] 和[formula] 的梯度。
- 使用Softmax和Cross Entropy Loss Function时,反向传播的微分有所不同,但运算量相差不大,但能优化训练效果。
5. 实现细节
- 举例说明了链式求导的维度变换,以及输入数据维度对反向传播的影响。
- 提出了小批量梯度下降(Mini-Batch GD)和随机梯度下降(SGD)来优化大规模数据训练。
本文详细地展示了全连接神经网络中反向传播算法的推导过程,接下来会提供补充和代码实现。
❷ 深度神经网络全连接层
全连接层通常位于网络的后部,用于实现分类输出。该层包含m个输入和n个输出,每个输出与所有输入相连接,其连接权重w各不相同,同时每个输出还包含一个偏差项。
以输入为4,输出为4的例子,每个输出点都对应一个输入点的参数,共需16个w参数,每个输出点都有一个b参数,共需4个b参数。
前向全连接的定量分析如下:
算力:[公式] Flops
BPE byte per element
input feature M*bpe
output feature N*bpe
w参数[公式] *bpe
b参数 N*bpe
反向全连接包括两部分:一是梯度传递,已知[公式],求解[公式],为前一层参数的梯度求解做准备;二是参数梯度求解,已知[公式],求解[公式]和[公式],以获得参数的更新值。
以输入为4,输出为4的例子,每个输出点都对应一个输入点的参数,共需16个w参数,每个输出点都有一个b参数,共需4个b参数。
反向全连接梯度传递的过程如下:(根据前向公式和求导法则容易得出)
可以看到weight矩阵进行了转置,记为[公式] = [公式][公式]
算力为 2MN Flops
参数w梯度求解,已知[公式],求解[公式]
为[公式],其中input feature进行了转置
算力为 MN mul
参数b梯度求解,已知[公式],求解[公式]
为[公式],两者相等
1、全连接神经网络解析:对n-1层和n层而言,n-1层的任意一个节点,都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候,激活函数的输入是n-1层所有节点的加权。
2、全连接的神经网络示意图:
3、“全连接”是一种不错的模式,但是网络很大的时候,训练速度回很慢。部分连接就是认为的切断某两个节点直接的连接,这样训练时计算量大大减小。