LeNet-5 CNN 反向传播过程(back propagation)推导

本文详细介绍了LeNet-5卷积神经网络的反向传播过程,涉及MLP-NN的正向和反向传播,以及LeNet-5各层结构的传播过程推导,包括C1至OUTPUT层的详细计算。文中还探讨了激活函数、损失函数及其导数,并给出了权重更新的公式。
摘要由CSDN通过智能技术生成

LeNet-5 CNN 反向传播过程(back propagation)推导

by ztx

说明

本篇博客是学习过程中的笔记,谨慎阅读,欢迎指正。
时间仓促,LeNet-5的具体结构可能会有偏差,具体以论文为准,留坑待填。
另外,csdn的latex公式挂掉了,不知道怎么回事,以代码形式给出式子。
KaTex 多行公式只支持aligned,不支持align = =

前置技能

感知器,数学技巧,脑补能力

MLP-NN BP

MLP-NN(Multilayer perceptron neural network 多层感知器神经网络)

结构

MLP
上面是自己画的一张图。

正向传播

过程如上图中左边箭头指示的过程。
y k = f ( ∑ j = 0 H f ( ∑ i = 0 D x i W j i ) W k j ) y_k =f\left( \sum_{j=0}^{H} f\left( \sum_{i=0}^{D}x_iW_{ji} \right) W_{kj} \right) yk=f(j=0Hf(i=0DxiWji)Wkj)

反向传播

Loss function:L2 distance
E ( W ) = 1 2 ∑ k = 0 c − 1 ( t k − y k ) 2 = 1 2 ∣ ∣ t − y ∣ ∣ 2 E(\mathbf{W}) =\frac{1}{2}\sum_{k=0}^{c-1}(t_k − y_k)^2 =\frac{1}{2}||\mathbf{t} −\mathbf{y}||^2 E(W)=21k=0c1(tkyk)2=21ty2

Activation function:sigmoid

f ( x ) = 1 1 + e − x f(x) = \frac{1}{1+e^{-x}} f(x)=1+ex1

Sigmoid Derivative function:

f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x))

隐藏层到输出层的BP如下

∂ E ∂ W k j = ∂ E ∂ y k ∂ y k ∂ n e t k ∂ n e t k ∂ W k j = − ( t k − y k ) f ′ ( n e t k ) y j = δ k y j \begin{aligned} \frac{\partial E}{\partial W_{kj}} &= \frac{\partial E}{\partial y_k}\frac{\partial y_k}{\partial net_{k}} \frac{\partial net_{k}}{\partial W_{kj}} \\ &= -(t_k-y_k)f'(net_k)y_j \\ &= \delta_k y_j \end{aligned} WkjE=ykEnetkykWkjnetk=(tkyk)f(netk)yj=δkyj

其中:

δ k = − ( t k − y k ) f ′ ( n e t k ) = ∂ E ∂ n e t k \delta_k = -(t_k-y_k)f'(net_k) = \frac{\partial E}{\partial net_{k}} δk=(tkyk)f(netk)=netkE

设学习率为 η \eta η则梯度下降权值更新为:

Δ W k j = η δ k y j \Delta W_{kj} = \eta \delta_k y_j ΔWkj=ηδkyj

输入层到隐藏层的BP如下

∂ E ∂ W j i = ∂ E ∂ y j ∂ y j ∂ n e t j ∂ n e t j ∂ W j i = ∂ ∂ y j ( 1 2 ∑ k = 0 c − 1 ( t k − y k ) 2 ) f ′ ( n e t j ) x i = ( − ∑ k = 0 c − 1 ( t k − y k ) ∂ y k ∂ y j ) f ′ ( n e t j ) x i = ( − ∑ k = 0 c − 1 ( t k − y k ) ∂ y k ∂ n e t k ∂ n e t k ∂ y j ) f ′ ( n e t j ) x i = ( − ∑ k = 0 c − 1 ( t k − y k ) f ′ ( n e t k ) W k j ) f ′ ( n e t j ) x i = ( ∑ k = 0 c − 1 δ k W k j ) f ′ ( n e t j ) x i = δ j x i \begin{aligned} \frac{\partial E}{\partial W_{ji}} &= \frac{\partial E}{\partial y_j} \frac{\partial y_j}{\partial net_{j}} \frac{\partial net_{j}}{\partial W_{ji}} \\ &= \frac{\partial }{\partial y_j} \left( \frac{1}{2}\sum_{k=0}^{c-1}(t_k-y_k)^2 \right) f'(net_j) x_i \\ &= \left( -\sum_{k=0}^{c-1}(t_k-y_k)\frac{\partial y_k}{\partial y_j} \right) f'(net_j) x_i \\ &= \left( -\sum_{k=0}^{c-1}(t_k-y_k)\frac{\partial y_k}{\partial net_k}\frac{\partial net_k}{\partial y_j} \right) f'(net_j) x_i \\ &= \left( -\sum_{k=0}^{c-1}(t_k-y_k)f'(net_k)W_{kj} \right) f'(net_j) x_i \\ &= \left( \sum_{k=0}^{c-1}\delta_k W_{kj} \right) f'(net_j) x_i \\ &= \delta_j x_i \end{aligned} WjiE=yjEnetjyjWjinetj=yj(21k=0c1(tkyk)2)f(netj)xi=(k=0c1(tkyk)yjyk)f(netj)xi=(k=0c1(tkyk)netkykyjn

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值