笔记二,ShuffleNet,卷积神经网络

ShuffleNet 是 Face++团队提出的,与 MobileNet 一样,发表于 CVPR-2017,但晚于 MobileNet 两个月才在 arXiv 上公开。论文标题:

《ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices》

一看名字 ShuffleNet,就知道 shuffle 是本文的重点,那么 shuffle 是什么?为什么要进行 shuffle?


shuffle 具体来说是 channel shuffle,是将各部分的 feature map 的 channel 进行有序的打乱,构成新的 feature map,以解决 group convolution 带来的「信息流通不畅」问题。(MobileNet 是用 point-wise convolution 解决的这个问题)


笔记二,ShuffleNet,卷积神经网络_第1张图片

ShuffleNet 的创新点在于利用了 group convolution 和 channel shuffle,那么有必要看看 group convolution 和 channel shuffle。

如下图 (a) 所示, 为了提升模型效率,采用 group convolution,但会有一个副作用,即:「outputs from a certain channel are only derived from a small fraction of input channels.」

于是采用 channel shuffle 来改善各组间「信息流通不畅」问题,如下图 (b) 所示。

具体方法为:把各组的 channel 平均分为 g(下图 g=3)份,然后依次序的重新构成 feature map

笔记二,ShuffleNet,卷积神经网络_第2张图片

下图展示了 ShuffleNet unit 的演化过程 

图 (a):是一个带有 depth-wise convolution 的 bottleneck unit; 

图 (b):作者在 (a) 的基础上进行变化,对 1*1 conv 换成 1*1 Gconv,并在第一个 1*1 Gconv 之后增加一个 channel shuffle 操作; 

图 (c): 在旁路增加了 AVG pool,目的是为了减小 feature map 的分辨率;因为分辨率小了,于是乎最后不采用 Add,而是 concat,从而「弥补」了分辨率减小而带来的信息损失。

笔记二,ShuffleNet,卷积神经网络_第3张图片



笔记二,ShuffleNet,卷积神经网络_第4张图片


ShuffleNet 小结:

1. 与 MobileNet 一样采用了 depth-wise convolution,但是针对 depth-wise convolution 带来的副作用——「信息流通不畅」,ShuffleNet 采用了一个 channel shuffle 操作来解决。

2. 在网络拓扑方面,ShuffleNet 采用的是 resnet 的思想,而 mobielnet 采用的是 VGG 的思想,2.1 SqueezeNet 也是采用 VGG 的堆叠思想

你可能感兴趣的:(笔记二,ShuffleNet,卷积神经网络)