反向传播算法的推导

文章目录

    • 一、参数说明
    • 二、公式定义
    • 三、结合实例分析推导过程(全连接神经网络)
          • 1. 我们以一个两层神经元为例对推导过程详细分析
          • 2. 梯度值的推导
            • (a)抽象的推导过程
            • (b) 结合实际例子的推导过程
          • 3. 反向传播总结
    • 四、卷积神经网络的反向传播
    • 五、参考资料

一、参数说明

反向传播算法的推导_第1张图片

  • 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,nl1]) 、 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(l1)+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+ez1
  • 损失函数(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)=21a(l)y(l)2=21i=1nl[ai(l)yi(l)]2
    反向传播算法的推导_第2张图片
    反向传播算法的推导_第3张图片
  • 向量的导数(注意 维度从下到上排列
    反向传播算法的推导_第4张图片

三、结合实例分析推导过程(全连接神经网络)

1. 我们以一个两层神经元为例对推导过程详细分析

反向传播算法的推导_第5张图片

  • 输入特征和输出类标值分别为:
    [ 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
  • 各参数初始化值分别为:
    反向传播算法的推导_第6张图片
2. 梯度值的推导
(a)抽象的推导过程

反向传播算法的推导_第7张图片反向传播算法的推导_第8张图片

(b) 结合实际例子的推导过程

反向传播算法的推导_第9张图片

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 可用)
    • 然后,反向 传播计算每一层的误差
    • 最后,计算每一层参数的偏导数,并按下面的公式更新参数
      反向传播算法的推导_第10张图片

四、卷积神经网络的反向传播

  • 卷积神经网络的反向传播如下图所示:
    反向传播算法的推导_第11张图片
  • 卷积类型,其中 n 为输入大小,m 为卷积核大小
    反向传播算法的推导_第12张图片

五、参考资料

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

你可能感兴趣的:(深度学习)