MobileNet v3
MobileNet-v3同样是由谷歌于于2019年提出新版本的MobileNet。在MobileNet-v2网络的基础上,MobileNet-v3提出了四个大的改进措施。
- 使用NAS神经架构搜索确定网络结构
- 在MobileNet-v2的block基础上引入Squeeze and Excitation结构
- 使用h-swish激活函数
- 对MobileNet-v2网络尾部结构进行改进
MobileNet-v3论文为Searching for MobileNetV3,将神经架构搜索引入模型中。
关于神经架构搜索NAS这里不细说,感兴趣的朋友可以直接查阅NAS相关论文。MobileNet-v3第二个改进措施就是在v2基础上引入squeeze and excitation结构(可以看看我博客有论文和代码解读),这是一个对通道之间相互依赖关系进行建模的操作。
Squeeze and Excitation包括Squeeze(压缩)和Excitation(激活)两个部分。其中Squeeze通过在特征图上执行Global Average Pooling得到当前特征图的全局压缩特征向量,Excitation通过两层全连接得到特征图中每个通道的权值,并将加权后的特征图作为下一层网络的输入。所以可以看到SE block只跟当前的一组特征图存在依赖关系,因此可以非常容易的嵌入到几乎现在所有的卷积网络中。
MobileNet-v3在MobileNet-v2基础上,改进的block如下图所示。
MobileNet-v3第三个改进点是使用了h-swish激活函数。h-swish激活函数是基于swish的改进,swish激活函数表达式如下:
swish激活函数图像在β取0.1、1.0和10.0时如下图所示:
swish激活函数在一系列深度卷积网络上都对效果有显著提升,但作者认为,作为一个轻量化的网络,swish激活虽然能带来精度提升,但在移动设备上会有速度损失。所以在swish函数的基础上,MobileNet-v3对其进行了改进,提出了h-swish激活函数。
h-swish的基本想法是用一个近似函数来逼近swish函数,让swish函数变得不那么光滑,基于MobileNet-v1和v2的经验,MobileNet-v3还是选择了ReLU6。变换逻辑如下图所示。
swish和h-swish函数对比图像:
可以将h-swish视为swish的低精度化模式,相较于swish,h-swish能够保持相同精度的条件下减少时间和计算量的开销。
总结
MobileNet-v1就是加了深度可分离卷积的VGG;MobileNet-v2则是在v1基础上加了Linear激活、Expansion layer和Inverted residual三大关键操作;而MobileNet-v3则是在v2基础上引入NAS,并且加入Squeeze and Excitation结构、h-swish激活和网络尾部优化等改进措施。v2网络的基础上,v3提出了四个大的改进措施。
本文暂时没有评论,来添加一个吧(●'◡'●)