WRN详解

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中残差块的结构对与模型最终的性能其这决定性作用,那么如果可以提高残差快的特征提取能力的话,模型最终的效果也一定会有所提升。常用的方法有如下几种:

  1. 增加残差块中conv的数量,即提高深度因素l;
  2. 增加残差块中conv的宽度(增加filter数量),即提高宽度因素k;
  3. 增加残差块中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并非最佳。

在这里插入图片描述

在这里插入图片描述

​ 文中通过上述几个实验发现:

  1. 增加宽度可以提高Residual Network的性能;
  2. 增加宽度和深度都会对提高Residual Network的性能有所帮助,前提是模型参数数量不会变的很大,否则将需要一个更强的正则化器;
  3. 相同参数数量下,WRN要比Residual Netwrok的性能好

3.4 Dropout

​ 文中在残差块中加入了Dropout,模型的性能有了一定提升,实验结果见下图。

在这里插入图片描述

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

在这里插入图片描述

4 总结

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

在这里插入图片描述

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

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值