MobileNet V2 论文笔记

版权声明:本文为博主原创文章,转载请注明出处! https://blog.youkuaiyun.com/qq_14975217/article/details/79410324
                                        <div class="markdown_views">
            <p>论文:Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation</p>

文章在residual net和MobileNet V1的基础上,提出MobileNet V2模型,一方面保证准确性,另一方面大幅的减少multiply-adds(MAdd)的计算量,从而减少模型的参数量,降低内存占用,又提高模型的计算速度,以适应移动端应用。

Block 基本结构

文章的主要贡献:提出一种颠倒的、bottleneck为线性变换的resdual 结构。这中结构的一个block如下:
输入:一个低维 k(通道)的、经压缩的数据
然后经过:
step 1, point wise卷积扩展维度(通道),扩展因子为t;
step 2, depthwise separable 卷积,stride为 s;
step 3, linear conv把特征再映射的低维,输出维度为 k’;
输出作为下一个block的输入,堆叠block。
具体结构如表:
这里写图片描述

1. Depthwise separable conv

这种卷积方式早已被广泛使用,实现方法是把常规卷积层分为两个独立的层。第一层称为depthwise convolution,对输入的每个通道做单独的卷积,第二层称为pointwise convolution,使用1x1的卷积核做常规卷积。
如果使用的是kxk的卷积核,这种卷积几乎能减少k2的计算量。

2. Linear bottlenecks

用线性变换层替换channel数较少的层中的ReLU,这样做的理由是ReLU会对channel数低的张量造成较大的信息损耗。ReLU会使负值置零,channel数较低时会有相对高的概率使某一维度的张量值全为0,即张量的维度减小了,而且这一过程无法恢复。张量维度的减小即意味着特征描述容量的下降。因而,在需要使用ReLU的卷积层中,将channel数扩张到足够大,再进行激活,被认为可以降低激活层的信息损失。文中举了这样的例子:
这里写图片描述
上图中,利用nxm的矩阵B将张量(2D,即m=2)变换到n维的空间中,通过ReLU后(y=ReLU(Bx)),再用此矩阵之逆恢复原来的张量。可以看到,当n较小时,恢复后的张量坍缩严重,n较大时则恢复较好。

3. inverted residual sturcture

这里写图片描述
原residual structure 出自Deep Residual Learning for Image Recognition. 这种结构解决了深度神经网络随着网络层数的加深带来的梯度消失/爆炸,模型不收敛的问题,使DNN可以有上百甚至更多的层,提高准确率。
从图中可以看出,这种结构使用一个快捷链接(shortcut)链接了block的输入与输出(实际做的是element wise add),block内部是常规conv,一般block内部数据的维度低于block边缘–即bottleneck的数据维度。
论文的题目,inverted residual,颠倒的正是block 内数据维度与bottleneck数据维度的大小,这从上图的中数据块的深度情况可以看出。
这种颠倒基于作者的直觉:bottleneck层包含了所有的必要信息,扩展的层做的仅仅是非线性变换的细节实现。
实际上,这中翻转能节省内存,分析见后。

MobileNet V2网络结构

网络机构如下:
这里写图片描述
上图中,t代表单元的扩张系数,c代表channel数,n为单元重复个数,s为stride数。注意,shortcut只在s==1时才使用。

实验

文章从classification、detection、segmentation三个应用方面测试了该模型的效果。

1. classification

直接使用MobileNetV2的结构,输入图像size为224x224,在Imagenet上的分类表现
这里写图片描述

2.detection

使用预训练的MobileNetV2卷积层特征+SSD的检测网络,输入图像size为320x320,在mscoco上的表现如下表:
这里写图片描述

3.segementation

使用预训练的MobileNetV2卷积层特征+DeepLabv3分割网络,
这里写图片描述

结论

社区对MobileNetV2的评价还是很高的,而且简单易实现,可以作为基本层用到detection和segmentation等领域。这里有一个Tensorflow实现的版本,欢迎交流。github



<think>好的,我现在需要帮助用户找到关于MobileNet V2网络结构的论文PDF。首先,用户提供的引用中已经提到了相关的论文,特别是引用[1]和引用[2],其中引用[1]提到了《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》,但注意这可能是指MobileNet V1,而MobileNet V2论文可能需要确认正确的标题。不过根据引用[2]和[3],用户明确提到了MobileNet V2的改进和结构,比如倒残差结构(Inverted residual block)。因此,我需要确认MobileNet V2的正确论文标题。 根据我的知识,MobileNet V2论文标题应该是《MobileNetV2: Inverted Residuals and Linear Bottlenecks》,作者是Mark Sandler等人,发表在2018年的CVPR会议上。用户可能需要这份论文的PDF。接下来,我应该指导用户如何获取它,比如通过arXiv、CVPR会议论文集或者Google Scholar。同时,用户提供的引用中,引用[2]和[3]提到了倒残差结构,这与论文中的创新点一致,可以引用这些信息来支持回答。 另外,用户的问题可能涉及到网络结构的具体细节,比如倒残差块和线性瓶颈的结构,这些在论文中有详细描述。因此,在回答中需要指出这些关键点,并确保用户能够正确找到论文。同时,考虑到版权问题,我不能直接提供PDF文件,但可以提供获取途径,如官方链接或学术平台。</think>关于MobileNet V2网络结构的论文信息如下: **论文标题**: $$MobileNetV2: Inverted Residuals and Linear Bottlenecks$$ **作者**:Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, Liang-Chieh Chen **会议/年份**:CVPR 2018 ### 核心创新点[^2][^3] 1. **倒残差结构**(Inverted residuals): 与传统残差块的"宽-窄-宽"维度变化不同,MobileNet V2采用"窄-宽-窄"结构,中间通过深度可分离卷积进行升维。 2. **线性瓶颈层**(Linear bottlenecks): 在残差块末端使用线性激活函数(而非ReLU),避免低维空间中的信息损失。 ### 获取论文PDF的途径 1. **arXiv预印本平台**: 直接访问链接:[https://arxiv.org/abs/1801.04381](https://arxiv.org/abs/1801.04381) 可下载PDF版本 2. **CVPR 2018论文集**: 通过IEEE Xplore数据库搜索会议论文(需机构订阅权限) 3. **Google Scholar检索**: 搜索论文标题,部分学术平台提供公开下载 ### 关键结构示意图(基于引用[4]) ```python # 倒残差块伪代码示例(步长=1时) def inverted_residual(input, expansion_ratio, output_channels, stride): hidden_dim = input_channels * expansion_ratio # 升维 x = conv1x1(input, hidden_dim) # 点卷积升维 x = depthwise_conv3x3(x, stride) # 深度卷积 x = linear_activation(x) # 线性激活 x = conv1x1(x, output_channels) # 点卷积降维 if stride == 1 and input_channels == output_channels: return x + input # 残差连接 return x ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值