MobileNet V2
前言
MobileNet V2 是谷歌团队2018年提出的网络,相比于MobileNet V1。
主要改进
Inverted Residuals Block
Residual Block
首先我们回顾传统的残差块,它是由一个 1 1的卷积降维+ 3 3 卷积 + 1* 1卷积升维。(激活函数与BN省略)
Expansion Layer
倒残差结构如上图,他是先用 1 1卷积升维+DW卷积 + 1 1卷积降维。
ReLU6
作者把ReLU激活函数换成了ReLU6,y的数值不在随着x的增长而增长,到6之后不再变化。
原因:
由于ReLU的值域是0到正无穷,在低精度浮点数下不能很好的表示,于是改成了ReLU6可以增加模型的稳定性。
这里所说的“低精度”,我看到有人说不是指的float16,而是指的定点运算(fixed-point arithmetic)。
Linear Activation Function
作者通过证明,对低维度做ReLU运算,很容易造成信息的丢失。而在高维度进行ReLU运算的话,信息的丢失则会很少。
所以作者把最后1 * 1卷积降维后的激活函数换成线性激活函数。
小结
把上面内容汇聚到一起,于是就有了如下模块:
这里注意只有stride =1 的时候才有残差模块,因为要保证输入矩阵特征与输出矩阵特征一致才可以执行add操作。