0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

神经网络瘦身:关于SqueezeNet的创新点、网络结构

MqC7_CAAI_1981 来源:未知 作者:李倩 2018-03-13 16:41 次阅读

今年二月份,UC Berkeley和Stanford一帮人在arXiv贴了一篇文章:

SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and<0.5MB model size(https://arxiv.org/abs/1602.07360)

这篇文章做成了许多人梦寐以求的事——压缩神经网络参数。但和以往不同,原作不是在前人网络基础上修修补补(例如Deep Compression),而是自己设计了一个全新的网络,它用了比AlexNet少50倍的参数,达到了AlexNet相同的精度!

关于SqueezeNet的创新点、网络结构,国内已经有若干爱好者发布了相关的简介,如这篇(http://blog.csdn.net/xbinworld/article/details/50897870)、这篇(http://blog.csdn.net/shenxiaolu1984/article/details/51444525),国外的文献没有查,相信肯定也有很多。

本文关注的重点在SqueezeNet为什么能实现网络瘦身?难道网络参数的冗余性就那么强吗?或者说很多参数都是浪费的、无意义的?

为了更好的解释以上问题,先给出AlexNet和SqueezeNet结构图示:

AlexNet

图1 AlexNet示意图

图2 AlexNet网络结构

SqueezeNet

图3 SqueezeNet示意图

图4 SqueezeNet网络结构

为什么SqueezeNet能够以更少的参数实现AlexNet相同的精度?

下面的表格直观的展示了SqueezeNet的参数量,仅为AlexNet的1/48。

网络 参数量
AlexNet 60M
SqueezeNet 1.25M

乍一看,感觉非常不科学,怎么可能相差如此悬殊的参数量实现了相同的识别精度?

我们先考虑一个非常简单的例子,这个例子可以说是SqueezeNet和AlexNet的缩影:

1、一层卷积,卷积核大小为5×5

2、两层卷积,卷积核大小为3×3

以上两种卷积方式除了卷积核大小不同,其它变量均相同,为了方便后文计算,定义输入通道数1,输出通道数为C(两层卷积为C'),输出尺寸N×N。

按照目前的理论,神经网络应该尽可能的采用多层小卷积,以减少参数量,增加网络的非线性。但随着参数的减少,计算量却增加了!根据上面的例子,大致算一下,为了简便,只考虑乘法的计算量:

5×5一层卷积计算量是25×C×N×N

3×3两层卷积的计算量是9×C×(1+C')×N×N

很明显25C<9C(1+C')。

这说明了什么?说明了“多层小卷积核”的确增大了计算量!

我们再回过头考虑SqueezeNet和AlexNet,两个网络的架构如上面4幅图所示,可以看出SqueezeNet比AlexNet深不少,SqueezeNet的卷积核也更小一些,这就导致了SqueezeNet计算量远远高于AlexNet(有待商榷,需要进一步确认,由于Fire module中的squeeze layer从某种程度上减少了计算量,SqueezeNet的计算量可能并不大)。

可是论文原文过度关注参数个数,忽略计算量,这样的对比方式貌似不太妥当。事实上,目前最新的深层神经网络都是通过增加计算量换来更少的参数,可是为什么这样做效果会很好?

因为内存读取耗时要远大于计算耗时!

如此一来,问题就简单了,不考虑网络本身架构的优劣性,深层网络之所以如此成功,就是因为把参数读取的代价转移到计算量上了,考虑的目前人类计算机的发展水平,计算耗时还是要远远小于数据存取耗时的,这也是“多层小卷积核”策略成功的根源。

关于Dense-Sparse-Dense(DSD)训练法

不得不说一下原作的这个小发现,使用裁剪之后的模型为初始值,再次进行训练调优所有参数,正确率能够提升4.3%。 稀疏相当于一种正则化,有机会把解从局部极小中解放出来。这种方法称为DSD (Dense→Sparse→Dense)。

这个和我们人类学习知识的过程是多么相似!人类每隔一段时间重新温习一下学过的知识,会增加对所学知识的印象。我们可以把“隔一段时间”理解为“裁剪”,即忘却那些不怎么重要的参数,“再学习”理解为从新训练,即强化之前的参数,使其识别精度更高!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4574

    浏览量

    98758

原文标题:神经网络瘦身:SqueezeNet

文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    神经网络DNN知识总结

    DNN:关于神经网络DNN的知识总结(持续更新)
    发表于 12-26 10:41

    【案例分享】ART神经网络与SOM神经网络

    的拓扑结构,即将高位空间中相似的样本映射到网络输出层中的邻近神经元。SOM神经网络中的输出层神经
    发表于 07-21 04:30

    神经网络结构搜索有什么优势?

    近年来,深度学习的繁荣,尤其是神经网络的发展,颠覆了传统机器学习特征工程的时代,将人工智能的浪潮推到了历史最高点。然而,尽管各种神经网络模型层出不穷,但往往模型性能越高,对超参数的要求也越来越严格
    发表于 09-11 11:52

    卷积神经网络的层级结构和常用框架

      卷积神经网络的层级结构  卷积神经网络的常用框架
    发表于 12-29 06:16

    卷积神经网络(CNN)是如何定义的?

    什么是卷积神经网络?ImageNet-2010网络结构是如何构成的?有哪些基本参数?
    发表于 06-17 11:48

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高模型的预测
    发表于 07-12 08:02

    卷积神经网络模型发展及应用

    神经网络已经广泛应用于图像分类、目标检测、语义分割以及自然语言处理等领域。首先分析了典型卷积神经网络模型为提高其性能增加网络深度以及宽度的模型结构,分析了采用注意力机制进一步提升模型性
    发表于 08-02 10:39

    神经网络分类

    神经网络分类 特征提取和选择完成后,再利用分类器进行图像目标分类,本文采用神经网络中的BP网络进行分类。在设计神经网络结构时,
    发表于 03-01 17:55 1541次阅读
    <b class='flag-5'>神经网络</b>分类

    基于自适应果蝇算法的神经网络结构训练

    基于自适应果蝇算法的神经网络结构训练_霍慧慧
    发表于 01-03 17:41 0次下载

    一种新型神经网络结构:胶囊网络

    胶囊网络是 Geoffrey Hinton 提出的一种新型神经网络结构,为了解决卷积神经网络(ConvNets)的一些缺点,提出了胶囊网络
    的头像 发表于 02-02 09:25 5459次阅读

    一种改进的深度神经网络结构搜索方法

    为提升网络结构的寻优能力,提岀一种改进的深度神经网络结构搜索方法。针对网络结构间距难以度量的问题,结合神经网络结构搜索方案,设计基于图的深
    发表于 03-16 14:05 3次下载
    一种改进的深度<b class='flag-5'>神经网络结构</b>搜索方法

    几种典型神经网络结构的比较与分析

    几种典型神经网络结构的比较与分析说明。
    发表于 04-28 10:11 3次下载

    卷积神经网络结构_卷积神经网络训练过程

    (channel)。比如黑白图片的深度为1,而在RGB色彩模式下,图像的深度为3。从输入层开始,卷积神经网络通过不同的神经网络结构下将上一层的三维矩阵转化为下一层的三维矩阵转化为下一层的三维矩阵,直到最后的全连接层。
    的头像 发表于 05-11 17:02 1.6w次阅读
    卷积<b class='flag-5'>神经网络结构</b>_卷积<b class='flag-5'>神经网络</b>训练过程

    什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

    神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。
    的头像 发表于 07-26 18:28 1989次阅读
    什么是<b class='flag-5'>神经网络</b>?为什么说<b class='flag-5'>神经网络</b>很重要?<b class='flag-5'>神经网络</b>如何工作?

    卷积神经网络结构

    卷积神经网络结构 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,常用于图像处理、自然语言处理等领域中。它是一种深度学习(Deep
    的头像 发表于 08-17 16:30 884次阅读