WRN
《Wide Residual Network》
1 提出问题
随着卷积神经网络模型的发展,网络的深度问题也一直被关注。到底是选择浅层网络好还是深层网络好?这个问题也一直没有被解答。
ResNet中提出的bottleneck块(如下图)进一步增加了网络的深度。bottleneck块中加入了1*1的conv,主要用于embedding和减少参数。但bottleneck进一步使得网络变得更深更窄(deeper,thiner)。ResNet最大深度已经达到了1001层。

ResNet深度的增加也带了一定的问题:首先,随着深度增加,模型中的参数数量也大量增加,给模型训练带来了一定困难,需要使用各种正则化方法解决过拟合问题;其次,深度过大,使得残差结构中F(x)的激活值很小,对模型最终结果的贡献也减少了,模型的特征重用减弱。
实验表明,Residual Netwrok的优秀效果主要来自于残差结构,而不是网络的深度。针对这一结果,文中尝试增加网络宽度来改进模型。
2 解决方法
2.1 相关定义
为了更好的理解文中提出的Wide Residual Network(WRN),有如下描述定义:
l:深度因素(deepening factor),表示单个残差块中卷积层的数量;
k:宽度因素(widening factor),表示卷积层中filter的数量倍数,此时filter数量为k*N,N=16/32/64;
d:Residual Network中残差块的数量;
B(M):残差块的结构,eg:B(3, 3)表示块中包含2个3*3卷积层;
WRN-n-k-B(M):模型结构,eg:WRN-40-2-B(3, 3),表示层数为40,宽度为2,残差块结构为B(3,3)的WRN。
2.2 主要方法
正如上一节所提到的,ResNet中残差块的结构对与模型最终的性能其这决定性作用,那么如果可以提高残差快的特征提取能力的话,模型最终的效果也一定会有所提升。常用的方法有如下几种:
- 增加残差块中conv的数量,即提高深度因素l;
- 增加残差块中conv的宽度(增加filter数量),即提高宽度因素k;
- 增加残差块中conv的filter大小。
对于3,很多文章都表明,3*3conv是非常有效的,所以文中不在考虑更改fitler大小。
除了更改模型中残差快的结构以外,文中还对Dropout的使用进行了讨论。
3 实验结果
3.1 最优的B(M)
文中对不同的B(M)进行了测试,B(M)主要包括B(1, 3, 1)、B(3, 1)、B(1, 3)、B(3, 1, 1)、B(3, 3)和B(3, 1, 3)。
其中B(1, 3, 1)、B(3, 1)、B(1, 3)和B(3, 1, 1)中只包括一个3*3卷积层,参数数量相对较少,而B(3, 3)和B(3, 1, 3)中包括两个3*3卷积层,参数数量相对较多。为了保证实验中模型的总体参数数量大致相同,基于前四种B(M)构建WRN-40-2-B(M),对于B(3, 3)和B(3, 1, 3),分别构建WRN-22-2-B(3, 1, 3)和WRN-28-2-B(3, 3)。

实验结果上图,基于B(3, 3)构建的WRN在CIFAR-10数据集上测试误差最小。
3.2 最优的l
文中在WRN-40-2的基础上,测试了不同l下模型的测试误差。文中主要针对WRN-40-2-B(3)(l=1)、WRN-40-2-B(3, 3)(l=2)、WRN-40-2-B(3, 3, 3)(l=3)、WRN-40-2-B(3, 3, 3, 3)(l=4)进行了测试。

实验结果如上图,可以发现l=2时模型的模型的效果最好,即WRN-40-2-B(3, 3)最好。
分析原因,可能是因为当l>=2时,随着l的增大,恒等映射的数量减少,使得模型的效果变差。
3.3 最优的depth/k
对于ResNet来说,depth和k(不等于d)决定了模型的规模。若depth或k增加,模型中的参数数量也将增加,在一定范围内,这将对模型的效果起积极作用。
那么问题实际上就转化为了k和deepth的trade-off。

文中对不同的depth和k的组合进行了测试,实验结果如上。
根据上图可以发现,在一定范围内增加depth或k的话,模型的测试误差将会有所降低。
下图是文中做的进一步实验,对比了WRN与其他模型在CIFAR-10和CIFAR-100数据集上的表现。可以发现的事,WRN比起original-ResNet有了明显的提升,这说明original-ResNet的depth/k并非最佳。


文中通过上述几个实验发现:
- 增加宽度可以提高Residual Network的性能;
- 增加宽度和深度都会对提高Residual Network的性能有所帮助,前提是模型参数数量不会变的很大,否则将需要一个更强的正则化器;
- 相同参数数量下,WRN要比Residual Netwrok的性能好
3.4 Dropout
文中在残差块中加入了Dropout,模型的性能有了一定提升,实验结果见下图。

文中对模型的测试误差曲线和loss曲线进行观察发现,模型训练过程中学习率下降后,模型会出现高值震荡直到 学习率再次下降,加入Dropout后可以缓解这种情况。

4 总结
文中给出的WRN总体结构如下。

最后文中通过对比,表明了WRN的计算效率也比thin的Residual Network高。

8016

被折叠的 条评论
为什么被折叠?



