前向传播和反向传播_复习下前向反向传播以及计算量

和大佬学习:

沐风:GoogLeNet V1的计算量和参数量精算表​zhuanlan.zhihu.com
7bab56af79d3fe298c9e9fd25b5e8524.png
Michael Yuan:卷积神经网络的复杂度分析​zhuanlan.zhihu.com
0bfa0e8185c56ca2751b4e7ea5a499b9.png

以及数据量运算,和运算时间。

首先简单介绍下概念

1.前向传播

779619c6fc96098ed7e634c5f45eef46.gif
卷积过程

72f9a2ab2cfa506405050d524ad66133.png
单个神经元的卷积过程

如上图,首先从一维扩展到了二维。但是有和二维全连接不同的地方是:

  • 稀疏连接:说到底。就是本来后隐层的单个神经元应该对所有的 前隐层的做卷积的,但是这里仅仅对卷积核内的前隐层做卷积。所以就有了“单个神经元的卷积过程”这副图
  • (一张隐层)共享参数:同一张feature map共享一套参数,包括卷积核和bias。这里做一下假设:
    • : 后隐层的第
      个隐层
    • ,
      : 分别是隐层中对应神经元的坐标
    • :是后隐层
      对应的卷积核
    • : 前隐层( 规格为
    • : 这里是该神经元的偏置
    • : 后隐层
      的神经元

所以有公式如下:

acc38f35f61403b5f67f717481e69660.png
二维卷积公式
  • 这里可以看到,每个前隐层的相同区域由不同的大小为
    的核进行卷积,卷积开始的位置由后隐层的神经元位置
    决定。
  • 参数量:所以此处卷积核的数量为
    个,所以参数量为

2.反向传播

2.1 卷积层的反向传播

基本的思路:反向传播的时候要对权重和偏执求偏导数,也就是对卷积核和bias求导。

看的头疼:先放一放,准备别的了。

解释:当然呢,这只是最基本的用来理解卷积的过程。如果是一个完整的过程还需要接下来继续写。这里稍微写一下参数量的计算


3.卷积神经网络的时间复杂度和空间复杂度的计算

3.1 首先是参数量的计算

375718ac0eb3e252c8c47977232f3d6e.png
GoogLeNet的参数量

每一层的参数量只考虑weight,而不考虑bias。所以参数量为 (

为每一层的隐层数):

3.2 空间复杂度(访存量),严格来讲包括两部分:总参数量 + 各层输出特征图。
    • 参数量:模型所有带参数的层的权重参数总量(即模型体积,式第一个求和表达式)
    • 特征图:模型在实时运行过程中每层所计算出的输出特征图大小(下式第二个求和表达式)
    • 总参数量只与卷积核的尺寸
      、通道数
      、层数
      相关,而
      与输入数据的大小无关
    • 输出特征图的空间占用比较容易,就是其空间尺寸
      和通道数
      的连乘
    • 注:实际上有些层(例如 ReLU)其实是可以通过原位运算完成的,此时就不用统计输出特征图这一项了。
3.3 单层时间复杂度

  • :每个卷积核
    输出特征图
    的边长
  • :每个卷积核
    的边长
  • :每个卷积核的通道数,也即输入通道数,也即上一层的输出通道数
  • :本卷积层具有的卷积核个数,也即输出通道数。
  • 可见,每个卷积层的时间复杂度由输出特征图面积
    、卷积核面积
    、输入
    和输出通道数
    完全决定。
  • 其中,输出特征图尺寸本身又由输入矩阵尺寸
    、卷积核尺寸
    这四个参数所决定,表示如下:

  • 注1:为了简化表达式中的变量个数,这里统一假设输入和卷积核的形状都是正方形。
  • 注2:严格来讲每层应该还包含 1 个
    参数,这里为了简洁就省略了。
3.4 整体的时间复杂度

  • 神经网络所具有的卷积层数,也即
    网络的深度
  • :神经网络第
    个卷积层
  • :神经网络第
    个卷积层的输出通道数
    ,也即该层的卷积核个数
  • 对于第
    个卷积层而言,其输入通道数
    就是第
    个卷积层的输出通道数。
  • 可见,CNN整体的时间复杂度并不神秘,只是所有卷积层的时间复杂度累加而已。
  • 简而言之,层内连乘,层间累加。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值