神经网络瘦身:SqueezeNet

今年二月份,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)。

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

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2018-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

ECAI 2016论文精选 | 更快,更精确的人脸识别方法

导读:ECAI 2016是欧洲展示AI科学成果的最佳场所,大会为研究人员提供了很好的机会,去介绍和听取当代最优秀的人工智能研究成果。 人脸识别的随机典型相关判别...

2728
来自专栏Python中文社区

深度学习入门:用MNIST完成Autoencoder(续)

專 欄 ❈那只猫,Python中文社区专栏作者,Python中文社区新Logo设计人,纯种非CS科班数据分析人,沉迷Keras。在Cambridge做了点小...

1818
来自专栏CVer

[计算机视觉论文速递] 2018-03-31

通知:这篇文章有10篇论文速递信息,涉及Re-ID、深度估计、超分辨率、显著性检测、GAN、VOA和卷积神经网络综述等方向 往期回顾 [计算机视觉论文速递] 2...

36314
来自专栏AI研习社

引用次数最多的七篇深度学习论文出自谁手?Hinton、Yoshua榜上有名(理解/泛化/迁移篇)

编者按:我们通常都会学习前辈或大牛的经典作品,而引用次数自然也成为了论文的一个重要标杆。在 GitHub 上,大神 @Terryum 整理了一份精心编写的论文推...

3458
来自专栏FD的专栏

良心GitHub项目:各种机器学习任务的顶级结果(论文)汇总

项目地址:https://github.com//RedditSota/state-of-the-art-result-for-machine-learning...

1115
来自专栏人工智能头条

鸡蛋煎的好不好?Mask R-CNN帮你一键识别

773
来自专栏机器人网

科普: 神经网络的黑盒不黑

神经网络 ? 当然, 这可不是人类的神经网络, 因为至今我们都还没彻底弄懂人类复杂神经网络的运行方式. 今天只来说说计算机中的人工神经网络. 我们都听说过, ...

2746
来自专栏机器之心

学界 | CMU&amp;FAIR ICCV论文:通过传递不变性实现自监督视觉表征学习

选自arXiv 机器之心编译 参与:路雪、黄小天 通过自监督学习学习视觉表征在计算机视觉领域逐渐开始流行。本文提出可通过不变性的传递实现视觉表征自监督学习,该网...

33715
来自专栏机器之心

专栏 | CVPR 2017论文解读:基于视频的无监督深度和车辆运动估计

机器之心专栏 作者:单乐 本届 CVPR 2017大会上出现了很多值得关注的精彩论文,国内自动驾驶创业公司 Momenta 联合机器之心推出 CVPR 2017...

2543
来自专栏新智元

Andrej Karpathy 最新演讲:计算机视觉深度学习技术与趋势 (104PPT)

2016年10月18日, 世界人工智能大会技术分论坛,特设“新智元智库院长圆桌会议”,重量级研究院院长 7 剑下天山,汇集了中国人工智能产学研三界最豪华院长阵容...

3518

扫描关注云+社区