zoukankan      html  css  js  c++  java
  • 使用更小卷积核的作用——参数量和计算量的分析

    使用更小卷积核的作用

    使用更小的卷积核是当前在保证网络精度的情况下,减少参数的趋势之一,在VGG16中,使用了3个3*3卷积核来代替7*7卷积核,使用了2个3*3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。

    以下简单地说明一下小卷积(3*3)对于5×5网络感知野相同的替代性。

    这里写图片描述

    关于3个3×3卷积核对于7× 7 卷积的替代性思考方式同上。

    接下来说明以下减少参数的作用。

    对于两个3*3卷积核,所用的参数总量为2*(3*3)*channels, 对于5*5卷积核为5*5*channels, 因此可以显著地减少参数的数量。

    下面是7*7的用三个3*3卷积核替代的情况 
    这里写图片描述


    问题:7*7的卷积核,不是只需要一次加权求和就成了1*1的输出了么。3*3的卷积核,先过滤成5*5,再用3*3卷积核就成了3*3,再一次,就成了1*1。
    3*3的卷积核只有9个参数,卷积3次,也就27个参数。而7*7的卷积核是49个参数,我承认参数变少了。但在加权求和的过程中,显然后者运算步骤更多。
    参数少了,运算步骤却多了,我的疑问就在这。

    假设输入的图片大小为100*100*3,卷积操作不改变大小(padding=same)。先看用128个7*7*3的核进行卷积操作,需要100*100*7*7*3*128次乘法操作然后我们用3层3*3卷积代替上面的7*7卷积,每层仍取128个核,需要100*100*3*3*3*128*3次乘法操作,约掉相同部分,分别剩下7*7=49和3*3*3=27.显然,用三层3*3代替一层7*7可以减少近一半的计算量。

  • 相关阅读:
    71 是否同一棵二叉搜索树(25 分)
    75 平衡二叉树的根(25 分)
    72 树种统计(25 分)
    2018(容斥定理 HDU6286)
    直观的理解计算机中的数值编码
    如何关闭emacs开启时自己打开的欢迎界面
    图论:最短路径:广度优先搜索(C语言实现)
    ubunut 14.04 将Caps Lock设置为Control
    邻接表:C语言实现
    队列(C语言实现)
  • 原文地址:https://www.cnblogs.com/xiaoboge/p/10532962.html
Copyright © 2011-2022 走看看