文章目录
- 一、参数说明
- 二、公式定义
- 三、结合实例分析推导过程(全连接神经网络)
- 1. 我们以一个两层神经元为例对推导过程详细分析
- 2. 梯度值的推导
- (a)抽象的推导过程
- (b) 结合实际例子的推导过程
- 3. 反向传播总结
- 四、卷积神经网络的反向传播
- 五、固定网络参数反向优化输入(或参数)
- 五、参考资料
一、参数说明
- :表示
第 l-1 层的第 j 个激活特征
到第 l 层第 i 个神经元
- :表示
第 l-1 层的第 j 个激活特征
到第 l 层第 i 个神经元
的偏置(其中 恒为 0,表示偏置项;第 0 个特征- Note:输入层算作
第 0 层
、j 代表第 l-1 层的激活特征的下标
() 、i 代表第 l 层的神经元的下标
()
二、公式定义
- 层神经元的状态值:,表示一个神经元所获得的输入信号的加权和(即:特征的线性组合)
- 层神经元的激活值:,特征的非线性映射,可把 看作 更高级的特征
- 激活函数:
- 损失函数(MSE):
- 向量的导数(注意
维度从下到上排列
)
三、结合实例分析推导过程(全连接神经网络)
1. 我们以一个两层神经元为例对推导过程详细分析
- 输入特征和输出类标值分别为:
- 各参数初始化值分别为:
2. 梯度值的推导
(a)抽象的推导过程
(b) 结合实际例子的推导过程
3. 反向传播总结
- 从误差项的公式中可以看出:
- 第 层的误差项可以通过第 层的误差项计算得到,这就是误差的反向传播(Backpropagation,BP)
- 反向传播算法的含义是:第 的一个神经元的误差项是所有与该神经元相连的 第 的神经元的 误差项的权重和 再乘上该神经元 激活函数的导数。
- 全连接神经网络的训练过程可以分为以下四步:
- 首先,
前向
计算每一层的状态值(作为整体,用于求导后带入导数公式)和激活值
,且保存每一层的权重值
- 其次,
计算输出层的误差项
(因为输出层没有 - 然后,
反向
传播计算每一层的误差
- 最后,计算每一层参数的
偏导数
,并按下面的公式更新参数
四、卷积神经网络的反向传播
- 卷积神经网络的反向传播如下图所示:
- 卷积类型,其中 n 为输入大小,m 为卷积核大小
五、固定网络参数反向优化输入(或参数)
- 已经训练好的模型(固定权重),可通过 loss 反向传播(主要是残差)来反向优化输入(或参数)
- 可参考AI-编解码、AI-ISP、
Learning to Prompt for Vision-Language Models
五、参考资料
1、https://xpqiu.github.io/slides/20151226_CCFADL_NNDL.pdf2、卷积神经网络(CNN)反向传播算法3、Convolutional Neural Networks backpropagation: from intuition to derivation4、Backpropagation In Convolutional Neural Networks