Searching for MobileNetV3
论文链接: https://arxiv.org/abs/1905.02244
一、 Problem Statement
提升MobileNet V2。
二、 Direction
- Complementary search techniques
- 重新设计网络层
- 新的 nonlinearities 函数 h-swish
三、 Method
1. 网络架构搜索
一个是platform-aware NAS for Block-wise Search,另一个是NetAdapt for layer-wise Search。
2. 重新设计网络层
经过上面的搜索之后,作者发现两个网络层计算花费较大。因此作出了以下改变:
- 直接把3x3 Depthwise Convolution 和 后面的1x1 Convolution用 Average Pooling代替。
- 网络最初始的卷积层使用16通道,而不是MobileNet V2的32通道,并且使用h-swish。
3. Nonlinearities
一个非线性激活函数swish:
swish
(
x
)
=
x
⋅
σ
(
x
)
\text{swish}(x) = x \cdot \sigma(x)
swish(x)=x⋅σ(x)
但这个 sigmoid 函数在移动设备上的计算是花费很大的。因此,作者重新设计了这个swish函数。
第一个方面,作者把sigmoid函数改为:
ReLU6(x+3)
6
\frac{\text{ReLU6(x+3)}}{6}
6ReLU6(x+3)
所以 h-swish 具体如下:
h-swish [ x ] = x ⋅ ReLU6(x+3) 6 \text{h-swish}[x] = x \cdot \frac{\text{ReLU6(x+3)}}{6} h-swish[x]=x⋅6ReLU6(x+3)
具体曲线如下:
作者提出: h-swish大部分的提升来自于较深的网络层,因此只在模型的后半部分使用。
四、 Conclusion
结合网络结构搜索,修改激活函数和重新设计网络框架,提升MobileNet V2的性能。