小模型中的一个代表作MobileNet v1,它是一种基于流水线结构,使用深度级可分离卷积构建的轻量级神经网络,并通过两个超参数的引入使得开发人员可以基于自己的应用和资源限制选择合适的模型,如下面的1和2
MobileNet是基于深度级可分离卷积构建的网络,其实这种结构最早是出现在GoogleNet v3的inception中,它是将标准卷积拆分为了两个操作:深度卷积(depthwise convolution) 和 逐点卷积(pointwise convolution),Depthwise convolution和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而depthwise convolution针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说depthwise convolution是depth级别的操作。而pointwise convolution其实就是普通的卷积,只不过其采用1x1的卷积核。
1.宽度因子
虽然MobileNet网络结构和延迟已经比较小了,但是很多时候在特定应用下还是需要更小更快的模型,为此引入了宽度因子 alpha(Width Mutiplier)在每一层对网络的输入输出通道数进行缩减,输入通道数由 M 到 alpha*M,输出通道数由 N 到 alpha*N,变换后的计算量变为: DK x DK x alpha x M x DF x DF + alpha x M x alpha x N x DF x DF;
通常alpha在(0, 1]之间,比较典型的值有 1, 0.75, 0.5 和 0.25。计算量和参数数量减少程度与未使用宽度因子之前提高了1/alpha**2倍。
2.分辨率因子ρ(resolution multiplier ),用于控制输入和内部层表示,即用分辨率因子控制输入的分辨率。
深度卷积和逐点卷积的计算量:
DK x DK x alpha x M x ρ x DF x ρ x DF + alpha x M x alpha x N x ρ x DF x ρ x DF;
通常 ρ在(0, 1]之间,比较典型的输入分辨为224、192、160、128。计算量量减少程度与未使用宽度因子之前提高了1/(alpha**2 x ρ x ρ)倍,参数量没有影响。
来源:oschina
链接:https://my.oschina.net/u/4287847/blog/4271893