文章目录
一、参数说明
W i j ( l ) W_{ij}^{(l)} Wij(l):表示
第 l-1 层的第 j 个激活特征
到第 l 层第 i 个神经元
的权值b i j ( l ) b_{ij}^{(l)} bij(l):表示
第 l-1 层的第 j 个激活特征
到第 l 层第 i 个神经元
的偏置(其中 j j j 恒为 0,表示偏置项;第 0 个特征 a 0 ( l ) a_0^{(l)} a0(l) 恒为 1,表示其只作为其它神经元的偏置,本身并不需要计算)Note:输入层算作
第 0 层
、j 代表第 l-1 层的激活特征的下标
( j ∈ [ 1 , n l − 1 ] j \in [1, n^{l-1}] j∈[1,nl−1]) 、i 代表第 l 层的神经元的下标
( i ∈ [ 1 , n l ] i \in [1, n^{l}] i∈[1,nl])
二、公式定义
- l l l 层神经元的状态值: z ( l ) = w ( l ) a ( l − 1 ) + b ( l ) z^{(l)}=w^{(l)}a^{(l-1)}+b^{(l)} z(l)=w(l)a(l−1)+b(l),表示一个神经元所获得的输入信号的加权和(即:特征的线性组合)
- l l l 层神经元的激活值: a ( l ) = f l ( z ( l ) ) a^{(l)}=f_l(z^{(l)}) a(l)=fl(z(l)),特征的非线性映射,可把 a ( l ) a^{(l)} a(l) 看作 更高级的特征
- 激活函数: f ( z ) = 1 1 + e − z f(z) =\frac{1}{1+e^{-z}} f(z)=1+e−z1
- 损失函数(MSE):
J
(
W
,
b
;
x
,
y
)
=
1
2
∥
a
(
l
)
−
y
(
l
)
∥
2
=
1
2
∑
i
=
1
n
l
[
a
i
(
l
)
−
y
i
(
l
)
]
2
J(W,b; x,y) = \frac{1}{2} \left \| a^{(l)} - y^{(l)} \right \|^{2}=\frac{1}{2} \sum_{i=1}^{n^{l}}\left [a_i^{(l)}-y_i^{(l)} \right ]^{2}
J(W,b;x,y)=21
a(l)−y(l)
2=21∑i=1nl[ai(l)−yi(l)]2
- 向量的导数(注意
维度从下到上排列
)
三、结合实例分析推导过程(全连接神经网络)
1. 我们以一个两层神经元为例对推导过程详细分析
- 输入特征和输出类标值分别为:
[ x 0 , x 1 , x 2 ] T = [ 1 , 0.05 , 0.1 ] T ; y ( 2 ) = [ 0 , 1 ] T [x_0, x_1, x_2]^T=[1, 0.05, 0.1]^T; y^{(2)}=[0, 1]^T [x0,x1,x2]T=[1,0.05,0.1]T;y(2)=[0,1]T - 各参数初始化值分别为:
2. 梯度值的推导
(a)抽象的推导过程
(b) 结合实际例子的推导过程
3. 反向传播总结
- 从误差项的公式中可以看出:
- 第 l l l 层的误差项可以通过第 l + 1 l + 1 l+1 层的误差项计算得到,这就是误差的反向传播(Backpropagation,BP)
- 反向传播算法的含义是:第 l l l 层 的一个神经元的误差项是所有与该神经元相连的 第 l + 1 l + 1 l+1 层 的神经元的 误差项的权重和 再乘上该神经元 激活函数的导数。
- 全连接神经网络的训练过程可以分为以下四步:
- 首先,
前向
计算每一层的状态值(作为整体,用于求导后带入导数公式)和激活值
,且保存每一层的权重值
- 其次,
计算输出层的误差项
(因为输出层没有 δ l + 1 \delta^{l+1} δl+1 可用) - 然后,
反向
传播计算每一层的误差
- 最后,计算每一层参数的
偏导数
,并按下面的公式更新参数
- 首先,
四、卷积神经网络的反向传播
- 卷积神经网络的反向传播如下图所示:
- 卷积类型,其中 n 为输入大小,m 为卷积核大小
五、固定网络参数反向优化输入(或参数)
- 已经训练好的模型(固定权重),可通过 loss 反向传播(主要是残差)来反向优化输入(或参数)
- 可参考AI-编解码、AI-ISP、
Learning to Prompt for Vision-Language Models
五、参考资料
1、https://xpqiu.github.io/slides/20151226_CCFADL_NNDL.pdf
2、卷积神经网络(CNN)反向传播算法
3、Convolutional Neural Networks backpropagation: from intuition to derivation
4、Backpropagation In Convolutional Neural Networks