MobileNets(v1), SqueezeNet

MobileNets

MobileNets 总体来说是一个减少参数计算量的一个网络架构。并且提出了两个参数进行网络模型参数的缩减(其实就是两个比例来进行计算量的缩放,在【0,1】之间)
MobileNets 的网络参数缩减,其实可以将卷积分成两个步骤如下图所示:

简单来说,原先我们的卷积核是一个 K * K * M (channel) 的一步卷积拆分成两步走,第一我们设计一个 K * K * 1 (channel) 的卷积核,对当前深度的 feature map 进行卷积操作,那么我们会生成一个 w * h 的 feature map (假设卷积不进行下采样)。然后,这样的卷积核我们设计 M 个,相当于每一个卷积核只对应其深度的平面进行卷积。这之后出来的 feature map是缺失通道深度上的关联信息。因为需要补上其深度上的相联关系,所以需要在深度上进行一次非线性拟合。所以第二步,我们做 N 个 11M 的卷积核去进行卷积,然后得到深度信息的叠加拟合。
如下图所示:

SqueezeNet

SqueezeNet 设计的本身就不是为了识别达到高精度的识别,而是希望简化网络的复杂程度。主要通过降低CNN模型参数的方式来进行模型缩小。
SqueezeNet 的核心思想其实可以非常的简单,就是利用多次卷积的感受野来代替一次的卷积操作。
简单来说,对于一个 55 的卷积操作, 其实可以使用两个 33 的卷积核进行替代。通过增大深度与计算量的方式,达到模型的缩小。
但是,我们通过实验还发现了一个问题,为什么在增加深度和计算量的同时,它的速度并没有减慢呢?
因为对于一个卷积来说,大量的参数读取计算,需要的内存消耗时间远远大于计算的时间。所以不考虑网络本身架构的优劣性,深层网络之所以如此成功,就是因为把参数读取的代价转移到计算量上了,考虑的目前人类计算机的发展水平,计算耗时还是要远远小于数据存取耗时的,这也是“多层小卷积核”策略成功的根源

【参考资料】:

  1. https://blog.csdn.net/shenxiaolu1984/article/details/52266391
  2. https://blog.csdn.net/Jesse_Mx/article/details/70766871
  3. https://blog.csdn.net/xbinworld/article/details/50897870
  4. https://www.jianshu.com/p/8e269451795d

你可能感兴趣的:(MobileNets(v1), SqueezeNet)