轻量级网络之mobilenet_v1

1、动机

MobileNet是为移动和嵌入式设备提出的高效模型,使用深度可分离卷积(depthwise separable convolutions,即Xception变体结构)来构建轻量级深度神经网络。

2、核心技术

depthwise separable卷积

depthwise separable convolution可以进一步拆分成depthwise卷积和pointwise卷积,如下图所示为普通卷积和depthwise separable卷积的对比

轻量级网络之mobilenet_v1

优点:既增加了网络的非线性,又极大的减少了计算量。大约变成了 1  / (K_h * K_w) 的计算量。对于3*3的卷积核,差不多减少了9倍。然而在实际的使用中,dw卷积加速没有那么快,一是加速库支持的不好,另外就是dw卷积对访存性能要求比较高。

Relu6

使用relu6.  对relu输出的最大值进行clip。Relu在x>0的区域使用x进行线性**,有可能造成**后的值太大,影响模型的稳定性,为抵消ReLU激励函数的线性增长部分,可以使用Relu6函数。

另外一种解释:主要是为了在移动端设备float16/int8的低精度时也能有很好的数值分辨率,如果对普通relu函数的**范围不加限制,输出的范围为0到正无穷,如果**值非常大,分布在一个很大的范围内,则低精度的loat16/int8就无法良好地精确描述如此大范围地数值,从而带来精度地损失。

网络大小控制

MobileNetV1引入了两个超参数来进一步平衡模型大小以及准确率:通道系数α∈(0,1]与分辨率系数ρ∈(0,1]。所有层的 通道数(channel) 乘以 α 参数(四舍五入),模型大小近似下降到原来的 α^2倍,计算量下降到原来的 α^2 倍;输入层的 分辨率(resolution) 乘以 ρ 参数 (四舍五入),等价于所有层的分辨率乘 ρ ,模型大小不变,计算量下降到原来的 ρ^2倍

轻量级网络之mobilenet_v1

3、网络结构

轻量级网络之mobilenet_v1

 

4、网络性能

Model

Million MACs

Million Parameters

Top-1 Accuracy

Top-5 Accuracy

MobileNet_v1_1.0_224

569

4.24

70.9

89.9

MobileNet_v1_1.0_192

418

4.24

70.0

89.2

MobileNet_v1_1.0_160

291

4.24

68.0

87.7

MobileNet_v1_1.0_128

186

4.24

65.2

85.8

MobileNet_v1_0.75_224

317

2.59

68.4

88.2

MobileNet_v1_0.75_192

233

2.59

67.2

87.3

MobileNet_v1_0.75_160

162

2.59

65.3

86.0

MobileNet_v1_0.75_128

104

2.59

62.1

83.9

MobileNet_v1_0.50_224

150

1.34

63.3

84.9

MobileNet_v1_0.50_192

110

1.34

61.7

83.6

MobileNet_v1_0.50_160

77

1.34

59.1

81.9

MobileNet_v1_0.50_128

49

1.34

56.3

79.4

MobileNet_v1_0.25_224

41

0.47

49.8

74.2

MobileNet_v1_0.25_192

34

0.47

47.7

72.3

MobileNet_v1_0.25_160

21

0.47

45.5

70.3

MobileNet_v1_0.25_128

14

0.47

41.5

66.3

 

5、参考资料

MobileNet 进化史: 从 V1 到 V3(V1篇)

来自 <https://blog.csdn.net/kuweicai/article/details/103267230>

来自 <https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md>