mobileNet v2 paper笔记

本文围绕MobileNet v2展开,它面向算力有限的移动模型。介绍了其新型模块中的关键结构inverted residual和linear bottleneck,阐述了linear bottleneck中以ReLU为例说明非线性映射问题及信息损失,还对比了MobileNet v2与ResNet的bottleneck结构,最后提及减少计算量方法和PyTorch实现接口。
部署运行你感兴趣的模型镜像

mobileNet v2和v1一样面向的是算力有限的mobile models.

主要贡献是一个新型module:
在这里插入图片描述
这里面提到了两个关键结构:inverted residual, linear bottleneck,
而linear bottleneck是用在inverted residule里面的。

关于linear bottleneck,有一个故事线,
故事讲了non-linear存在的问题,为什么要用linear,以ReLU为例。

下面就来讲讲这个故事:

首先给了一个前提假设,nerual network的兴趣区域特征应该能被嵌入一个低维的空间,
比如一个很深的卷积层,它里面的特征应该能被嵌入某个低维空间。
在这里插入图片描述
然而如果减少层数到低维,又会遇到non-linear映射的问题,比如ReLU,

回忆一下ReLU结构
在这里插入图片描述
那ReLU有什么问题呢,你会发现它只能映射右半边,而损失掉左半边。
特征经过它的映射会变成分段的线。
在这里插入图片描述

为了证明这一点(ReLU确实有信息损失),作者用一个spiral做了实验,
先用随机的矩阵T把spiral映射到n维空间,经过ReLU后再用T-1映射回来,
当维度n比较小时(2,3), 确实会损失,而维度高时会好一些。

在这里插入图片描述

所以说如果input的有很多channels, 那么就有可能信息得到保留
在这里插入图片描述
因此得到2个性质:
在这里插入图片描述

又是low-dimensional, 又是higher-dimensional,很绕口有木有,
其实是想说,兴趣区域的信息会嵌入到低维的空间中,但是在activation时需要一个高维的输入。

第1条说明了什么呢,
如果信息保留下来,那肯定是经过ReLU的右半边,右半边是线性的,所以为线性layer打下了基础。

在这里插入图片描述

ReLU能保留兴趣区域的信息,前提是信息在低维子空间。

所以这个故事得到了一个结论,
假设兴趣区域的信息就在低维子空间,
那么可以插入linear bottleneck来得到它。
因为linear layer不会造成信息的损失,然后non-linear再bottleneck结构中确实会影响performance.

你肯定想说为什么是linear bottleneck而不是linear 其他的,
mobileNet v2提出的就是改进版的bottleneck结构。

mobileNet v2中的bottleneck, 它的名字叫做
在这里插入图片描述
透露了几个点:
bottleneck里面沿用了mobileNet v1的深度可分离卷积,还有residuals
具体如下

在这里插入图片描述
第一层是expansion,增加channel到t倍的,t 默认是6
然后是3x3深度卷积,再配上1x1卷积调整output channel。

对比一下resNet中的 bottleneck,
具体的参考链接
在这里插入图片描述

你会发现resNet的bottleneck,channel是在bottleneck结尾处扩张的,
而mobileNet v2中,channel是在bottleneck开头处扩张的,正好反过来,
所以叫做inverted residual.
因为inverted会更省内存

在这里插入图片描述

在这里插入图片描述

整体结构如下
在这里插入图片描述

如果想进一步减少计算量,可以在除了最后一个layer的其他layer加上width multiplier(缩放channel)

在这里插入图片描述

关于shortcut连接到哪一层

在这里插入图片描述

pytorch已经有实现好的mobileNet v2接口,使用方法

import torch
model = torch.hub.load('pytorch/vision:v0.10.0', 'mobilenet_v2', pretrained=True)

源码解析可以参考这篇文章

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值