三十.全连接神经网络原理

1.网络结构解析

(1)图示

在这里插入图片描述

(2)结构解析

图中结构一共有四层,最左边为输入层,中间两层为隐藏层,最右边为输出层。通常在说神经网络层数结构的时候不包含输入层,所以输入层也被称为第 0 0 0层。
上图为三层神经网络,图中的各参数代表的意义如下:
a i l a_{i}^{l} ail:第 l l l层第 i i i个神经元的输出。
z i l z_{i}^{l} zil:第 l l l层第 i i i个神经元的未激活输出。
w i j l w_{ij}^{l} wijl:第 l − 1 l-1 l1层第 j j j个元素到第 l l l层第 i i i个元素神经元的权重。
b i l b_{i}^{l} bil:第 l l l层第 i i i个神经元的偏置。
σ \sigma σ:神经元的激活函数。
各个参数的关系如下:
a i l = σ ( z i l ) = σ ( w i j l a j l − 1 + b i l ) a_{i}^{l}=\sigma (z_{i}^{l})=\sigma (w_{ij}^{l}a_{j}^{l-1}+b_{i}^{l}) ail=σ(zil)=σ(wijlajl1+bil)

2.前向传播

(1)前向传播原理

神经网络一共有 L L L层,第 l − 1 l-1 l1层有 n n n个神经元,第 l l l层有 m m m个神经元,传播过程中,第 l l l层的输出为:
a l = σ ( z l ) = σ ( W l a l − 1 + b l ) \mathbf{a}^{l}=\sigma (\mathbf{z}^{l})=\sigma (\mathbf{W}^{l}\mathbf{a}^{l-1}+\mathbf{b}^{l}) al=σ(zl)=σ(Wlal1+bl)
其中:
a l , z l , b l ∈ R m × 1 , a l − 1 ∈ R n × 1 , W l ∈ R m × n \mathbf{a}^{l},\mathbf{z}^{l},\mathbf{b}^{l}\in R^{m\times 1},\mathbf{a}^{l-1}\in R^{n\times 1},\mathbf{W}^{l}\in R^{m\times n} al,zl,blRm×1,al1Rn×1,WlRm×n

(2)前向传播流程

a.初始化输入层:
a 0 = x \mathbf{a}^{0}=\mathbf{x} a0=x
b.根据以下公式计算每一层的输出直到第 L L L层:
a l = σ ( z l ) = σ ( W l a l − 1 + b l ) \mathbf{a}^{l}=\sigma (\mathbf{z}^{l})=\sigma (\mathbf{W}^{l}\mathbf{a}^{l-1}+\mathbf{b}^{l}) al=σ(zl)=σ(Wlal1+bl)

3.反向传播

(1)反向传播原理

反向传播的主要作用是更新权重系数 w w w和偏置 b b b
输出层第 L L L层的损失函数为 J J J,则第输出层的损函数为:
J ( a L ) = J ( σ ( z L ) ) = J ( σ ( W L a L − 1 + b L ) ) J(\mathbf{a}^{L})=J(\sigma (\mathbf{z}^{L}))=J(\sigma (\mathbf{W}^{L}\mathbf{a}^{L-1}+\mathbf{b}^{L})) J(aL)=J(σ(zL))=J(σ(WLaL1+bL))
a.求输出层 L L L层的参数
损失函数分别对权重系数 W L \mathbf{W}^{L} WL和偏置 b L \mathbf{b}^{L} bL求梯度,分别为标量对矩阵求导和标量对向量求导,根据链式法则:
∂ J ( a L ) ∂ W L = ∂ J ( a L ) ∂ z L ( a L − 1 ) T ∂ J ( a L ) ∂ b L = ∂ J ( a L ) ∂ z L E T = ∂ J ( a L ) ∂ z L \frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{W}^{L}}=\frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{z}^{L}}(\mathbf{a}^{L-1})^{T}\\ \frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{b}^{L}}=\frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{z}^{L}}E^{T}=\frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{z}^{L}} WLJ(aL)=zLJ(aL)(aL1)TbLJ(aL)=zLJ(aL)ET=zLJ(aL)
以上两式中都有公共项 ∂ J ( a L ) ∂ z L \frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{z}^{L}} zLJ(aL),令其为 δ L \delta ^{L} δL,则:
δ L = ∂ J ( a L ) ∂ z L = ∂ J ( a L ) ∂ a L ⊙ σ ′ ( z L ) \delta ^{L}=\frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{z}^{L}}=\frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{a}^{L}}\odot \sigma ^{'}(z^{L}) δL=zLJ(aL)=aLJ(aL)σ(zL)
例如,当损失函数为平方损失时:
J ( a L ) = 1 2 ( a L − y ) 2 J(\mathbf{a}^{L})=\frac{1}{2}(\mathbf{a}^{L}-\mathbf{y})^{2} J(aL)=21(aLy)2
此时,公共项为:
δ L = ∂ J ( a L ) ∂ a L ⊙ σ ′ ( z L ) = ( a L − y ) ⊙ σ ′ ( z L ) \delta ^{L}=\frac{\partial J(\mathbf{a}^{L})}{\partial \mathbf{a}^{L}}\odot \sigma ^{'}(z^{L})=(\mathbf{a}^{L}-\mathbf{y})\odot \sigma ^{'}(z^{L}) δL=aLJ(aL)σ(zL)=(aLy)σ(zL)
公共项中的各项参数都是已知的,因此可以直接求出,进而求得梯度,可得输出层的参数更新为:
W L = W L − λ ∂ J ∂ W L b L = b L − λ ∂ J ∂ b L \mathbf{W}^{L}=\mathbf{W}^{L}-\lambda \frac{\partial J}{\partial \mathbf{W}^{L}}\\ \mathbf{b}^{L}=\mathbf{b}^{L}-\lambda \frac{\partial J}{\partial \mathbf{b}^{L}} WL=WLλWLJbL=bLλbLJ
b.中间层 l l l层的参数
中间层的公共项 δ l \delta ^{l} δl也被称作误差项,根据链式法则,可以得到第 l l l层和第 l + 1 l+1 l+1层的误差项为关系如下:
δ l = ∂ J ∂ z l = ∂ a l ∂ z l ∂ z l + 1 ∂ a l ∂ J ∂ z l + 1 = ∂ a l ∂ z l ∂ z l + 1 ∂ a l δ l + 1 \delta ^{l}=\frac{\partial J}{\partial \mathbf{z}^{l}}=\frac{\partial \mathbf{a}^{l}}{\partial \mathbf{z}^{l}}\frac{\partial \mathbf{z}^{l+1}}{\partial \mathbf{a}^{l}}\frac{\partial J}{\partial \mathbf{z}^{l+1}}=\frac{\partial \mathbf{a}^{l}}{\partial \mathbf{z}^{l}}\frac{\partial \mathbf{z}^{l+1}}{\partial \mathbf{a}^{l}}\delta ^{l+1} δl=zlJ=zlalalzl+1zl+1J=zlalalzl+1δl+1
其中:
a l = σ ( z l ) z l + 1 = σ ( W l + 1 a l + b l + 1 ) \mathbf{a}^{l}=\sigma (\mathbf{z}^{l})\\ \mathbf{z}^{l+1}=\sigma (\mathbf{W}^{l+1}\mathbf{a}^{l}+\mathbf{b}^{l+1}) al=σ(zl)zl+1=σ(Wl+1al+bl+1)
可得:
∂ a l ∂ z l = ∂ σ ( z l ) ∂ z l = d i a g ( σ ′ ( z l ) ) ∂ z l + 1 ∂ a l = ( W l + 1 ) T \frac{\partial \mathbf{a}^{l}}{\partial \mathbf{z}^{l}}=\frac{\partial \sigma (\mathbf{z}^{l})}{\partial \mathbf{z}^{l}}=diag(\sigma ^{'}(\mathbf{z}^{l}))\\ \frac{\partial \mathbf{z}^{l+1}}{\partial \mathbf{a}^{l}}=(\mathbf{W}^{l+1})^{T}\\ zlal=zlσ(zl)=diag(σ(zl))alzl+1=(Wl+1)T
综上,可得第 l l l层的误差项和第 l + 1 l+1 l+1层的误差项关系为:
δ l = ( W l + 1 ) T δ l + 1 ⊙ σ ′ ( z l ) \delta ^{l}=(\mathbf{W}^{l+1})^{T}\delta ^{l+1}\odot \sigma ^{'}(\mathbf{z}^{l}) δl=(Wl+1)Tδl+1σ(zl)
在上一节中已经求出了输出层的误差项,根据本节的公式,可以从后向前逐步求出隐藏层的误差项 δ l \delta ^{l} δl,从而得到隐藏层的梯度:
∂ J ( a l ) ∂ W l = ∂ J ( a l ) ∂ z l ( a l − 1 ) T = δ l ( a l − 1 ) T ∂ J ( a l ) ∂ b l = ∂ J ( a l ) ∂ z l E T = ∂ J ( a l ) ∂ z l = δ l \frac{\partial J(\mathbf{a}^{l})}{\partial \mathbf{W}^{l}}=\frac{\partial J(\mathbf{a}^{l})}{\partial \mathbf{z}^{l}}(\mathbf{a}^{l-1})^{T}=\delta ^{l}(\mathbf{a}^{l-1})^{T}\\ \frac{\partial J(\mathbf{a}^{l})}{\partial \mathbf{b}^{l}}=\frac{\partial J(\mathbf{a}^{l})}{\partial \mathbf{z}^{l}}E^{T}=\frac{\partial J(\mathbf{a}^{l})}{\partial \mathbf{z}^{l}}=\delta ^{l} WlJ(al)=zlJ(al)(al1)T=δl(al1)TblJ(al)=zlJ(al)ET=zlJ(al)=δl
(2)反向传播流程
a.通过前项传播,计算出输出值 a L \mathbf{a}^{L} aL
b.计算出输出层误差项 δ L \delta ^{L} δL
c.对于第 L − 1 L-1 L1层到第 1 1 1层的所有隐藏层 l l l
W l = W l − λ ∂ J ∂ W l b l = b l − λ ∂ J ∂ b l \mathbf{W}^{l}=\mathbf{W}^{l}-\lambda \frac{\partial J}{\partial \mathbf{W}^{l}}\\ \mathbf{b}^{l}=\mathbf{b}^{l}-\lambda \frac{\partial J}{\partial \mathbf{b}^{l}} Wl=WlλWlJbl=blλblJ

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值