【转载】深度解读谷歌MobileNet

https://blog.csdn.net/t800ghb/article/details/78879612


文章全名:MobileNets: Efficient Convolutional Neural Networks for MobileVision Applications

1.原文链接

论文地址:https://arxiv.org/abs/1704.04861

2.简介

深度学习在图像分类,目标检测和图像分割等任务表现出了巨大的优越性。

但是伴随着模型精度的提升是计算量,存储空间以及能耗方面的巨大开销,对于移动或车载应用都是难以接受的。

之前的一些模型小型化工作是将焦点放在模型的尺寸上。

因此,在小型化方面常用的手段有:

(1)卷积核分解,使用1×N和N×1的卷积核代替N×N的卷积核

(2)使用bottleneck结构,以SqueezeNet为代表

(3)以低精度浮点数保存,例如Deep Compression

(4)冗余卷积核剪枝及哈弗曼编码

MobileNet进一步深入的研究了depthwise separable convolutions使用方法后设计出MobileNet,depthwiseseparable convolutions的本质是冗余信息更少的稀疏化表达。在此基础上给出了高效模型设计的两个选择:宽度因子(width multiplier)和分辨率因子(resolutionmultiplier);通过权衡大小、延迟时间以及精度,来构建规模更小、速度更快的MobileNet。Google团队也通过了多样性的实验证明了MobileNet作为高效基础网络的有效性。

3.网络结构

3.1 Deep-wise卷积

MobileNet使用了一种称之为deep-wise的卷积方式来替代原有的传统3D卷积,减少了卷积核的冗余表达。在计算量和参数数量明显下降之后,卷积网络可以应用在更多的移动端平台。

传统的3D卷积使用一个和输入数据通道数相同的卷积核在逐个通道卷积后求和最后得出一个数值作为结果,计算量为

其中M为输入的通道数,Dk为卷积核的宽和高

一个卷积核处理输入数据时的计算量为(有Padding):

其中DF为输入的宽和高

在某一层如果使用N个卷积核,这一个卷积层的计算量为:

如果使用deep-wise方式的卷积核,我们会首先使用一组二维的卷积核,也就是卷积核的通道数为1,每次只处理一个输入通道的,这一组二维卷积核的数量是和输入通道数相同的。

在使用逐个通道卷积处理之后,再使用3D的1*1卷积核来处理之前输出的特征图,将最终输出通道数变为一个指定的数量,论文原图说明的比较到位,请看

图a中的卷积核就是最常见的3D卷积,替换为deep-wise方式:一个逐个通道处理的2D卷积(图b)结合3D的1*1卷积(图c)

从理论上来看,一组和输入通道数相同的2D卷积核的运算量为:

3D的1*1卷积核的计算量为:

因此这种组合方式的计算量为:

deep-wise方式的卷积相比于传统3D卷积计算量为:

举一个具体的例子,给定输入图像的为3通道的224x224的图像,VGG16网络的第3个卷积层conv2_1输入的是尺寸为112的特征图,通道数为64,卷积核尺寸为3,卷积核个数为128,传统卷积运算量就是

如果将传统3D卷积替换为deep-wise结合1x1方式的卷积,计算量为:

可见在这一层里,MobileNet所采用卷积方式的计算量与传统卷积计算量的比例为:

3.2 网络结构

传统的3D卷积常见的使用方式如下图左侧所示,deep-wise卷积的使用方式如下图右边所示。

从图中可以看出,deep-wise的卷积和后面的1x1卷积被当成了两个独立的模块,都在输出结果的部分加入了Batch Normalization和非线性激活单元。

Deep-wise结合1x1的卷积方式代替传统卷积不仅在理论上会更高效,而且由于大量使用1x1的卷积,可以直接使用高度优化的数学库来完成这个操作。以Caffe为例,如果要使用这些数学库,要首先使用im2col的方式来对数据进行重新排布,从而确保满足此类数学库的输入形式;但是1x1方式的卷积不需要这种预处理。

在MobileNet中,有95%的计算量和75%的参数属于1x1卷积。下图为MobileNet在ImageNet上训练时使用的网络架构(表格中含有dw的就表示这一层采用了deep-wise结合1x1的方式)

下图为MobileNet对于不同结构单元在计算量和参数数量方面的统计。

3.3 训练细节

作者基于TensorFlow训练MobileNet,使用RMSprop算法优化网络参数。考虑到较小的网络不会有严重的过拟合问题,因此没有做大量的数据增强工作。在训练过程中也没有采用训练大网络时的一些常用手段,例如:辅助损失函数,随机图像裁剪输入等。

deep-wise卷积核含有的参数较少,作者发现这部分最好使用较小的weight decay或者不使用weightdecay。


3.4 宽度因子和分辨率因子

尽管标准的MobileNet在计算量和模型尺寸方面具备了很明显的优势,但是,在一些对运行速度或内存有极端要求的场合,还需要更小更快的模型,如何能够在不重新设计模型的情况下,以最小的改动就可以获得更小更快的模型呢?本文中提出的宽度因子(width multiplier)和分辨率因子(resolutionmultiplier)就是解决这些问题的配置参数。

宽度因子α是一个属于(0,1]之间的数,附加于网络的通道数。简单来说就是新网络中每一个模块要使用的卷积核数量相较于标准的MobileNet比例。对于deep-wise结合1x1方式的卷积核,计算量为:

α常用的配置为1,0.75,0.5,0.25;当α等于1时就是标准的MobileNet。通过参数α可以非常有效的将计算量和参数数量约减到α的平方倍。

通过下图可以看出使用α系数进行网络参数的约减时,在ImageNet上的准确率,为准确率,参数数量和计算量之间的权衡提供了参考(每一个项中最前面的数字表示α的取值)。

分辨率因子β的取值范围在(0,1]之间,是作用于每一个模块输入尺寸的约减因子,简单来说就是将输入数据以及由此在每一个模块产生的特征图都变小了,结合宽度因子α,deep-wise结合1x1方式的卷积核计算量为:

下图为使用不同的β系数作用于标准MobileNet时,对精度和计算量以的影响(α固定)

要注意再使用宽度和分辨率参数调整网络结构之后,都要从随机初始化重新训练才能得到新网络。


4.实验结果

为了验证MobileNet作为基础网络的有效性,Google团队使用MobileNet在不同的视觉识别任务上组为基础网络都表现出了优异的性能。

任务1:基础网络

MobileNet极大地降低了网络参数数量和计算量,但是相比起经典的基础网络,其精度并未明显的降低

如下图所示,与VGG相比,在ImageNet分类任务上的精度差距较小

如下图所示,与经典的小型网络SqueezeNet相比,在精度和计算量方面都有明显提升

任务2:精细分类

在 Stanford Dogs 数据集上训练MobileNet 进行精细分类。结果下图所示,MobileNet 在大大减少计算量和减小模型大小的情况下分类精度接近于InceptionV3。

任务3:大规模地理定位

PlaNet 用于分辨一张照片拍摄于哪个地理位置的分类问题任务。基本思想是将地球划分为成网格,用数量巨大的有地理标记的照片训练网络。PlaNet 可以较为准确的将各种各样的照片标记地理位置,代表了这个领域的顶级水平。

使用 MobileNet 作为基础网络在相同的数据上重新训练 PlaNet。如下图所示,MobileNet作为基础网络的PlaNet与经典 PlaNet 相比,规模小了很多,性能稍有降低,但比 Im2GPS 各方面更佳。

任务4:人脸属性提取

MobileNet 的一个使用情景是压缩具有未知或复杂训练程序的大型系统。在人脸属性分类任务中,本文证明了 MobileNet 与 distillation间的协同关系,这是网络的一种知识迁移技术。本文在 YFCC100M 多属性数据集上训练。

使用 MobileNet 架构提取一个人脸属性分类器。distillation是通过训练分类器模拟一个更大的模型的输出,而非人工标注标签工作,因此能够从大型(可能是无限大)未标记数据集训练。结合 distillation 的可扩展性和MobileNet 的简约参数化,相比于一个具有7500万超参数和16亿 Mult-Adds 的大型人脸属性分类器,终端系统不仅不需要正则化,而且表现出更好的性能。结果如下图所示

任务5:目标检测

MobileNet 可以作为一个有效的基网络部署在目标检测系统上。基于2016 COCO 数据集,比较了在 COCO 数据上训练的 MobileNet 进行目标检测的结果。下图列出了在 Faster-RCNN 和 SSD 框架下,MobileNet,VGG 以及 Inception V2 作为基础网络的对比结果。在不同而检测框架和输入尺寸设定下,以MobileNet为基础网络的检测框架表现出了不明显逊色于两个基础网络的性能,而且在计算量和模型尺寸方面有较大优势。

任务6:人脸识别

FaceNet 模型是目前顶级水平的人脸识别模型,它基于 triplet loss 构建 faceEmbedding。为了能够在移动设备上运行 FaceNet 模型,使用 distillation来最小化训练数据上 FaceNet和 MobileNet 输出的方差。下图列出了输入尺寸较小的MobileNet在此任务上的性能表现,可以看出主要还是在没有过分损失精度的情况下,运算量大大减少。

5.总结

MobileNet在计算量,存储空间和准确率方面取得了非常不错的平衡。与VGG16相比,在很小的精度损失情况下,将运算量减小了30倍。通过实验结果,我们认为MobileNet的设计思想会在自动驾驶汽车,机器人和无人机等对实时性、存储空间、能耗有严格要求的终端智能应用中发挥显著作用。

---------------------

作者:徘徊者GHB

来源:CSDN

原文:https://blog.csdn.net/t800ghb/article/details/78879612

版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容