CNN模型合集 | Resnet变种-WideResnet解读

简介: CNN模型合集 | Resnet变种-WideResnet解读

925b852289a0f7a76d12c864ee84fb6a.png

所要解决的问题


Resnet被证明能够扩展到数千层,并且仍然具有改进的性能。然而,每提高一个百分点的精确度,就要花费将近两倍的层数,因此训练非常深的Resnet存在着减少特征重用的问题,这使得这些网络的训练速度非常慢。为所以该篇论文提出了一种新的体系结构,减少了网络的深度,增加了网络的宽度,这种结构称为宽残差网络(WRN),宽度即网络输出通道数,并通过实验证明它们远远优于常用的薄而深的网络结构。

设计思想


  • 提出了一种新的加宽网络,以提高模型性能;
  • 增加深度和宽度都有好处,但都会参数太大,导致正则化不够容易过拟合,wide-resnet使用dropout来正则化,防止模型训练过拟合;
  • 提高训练速度,相同参数,WideResNet的训练速度快于ResNet。

简介


网络


85a1eeb3569a2b123b96ae141343cb30.png

如上图所示,wide-resnet只比Resnet多了一个加宽因子k,原来架构相当于K=1,N表示组中的块数。

网络由一个初始卷积层conv1组成,然后是residual block的conv2、conv3和conv4的3组(每个大小为N),然后是平均池和最终分类层。在实验中,conv1的大小都是固定的,而引入的加宽因子k缩放了三组conv2-4中剩余块的宽度。

与原始架构相比,residual block中的批量归一化、激活和卷积的顺序从conv-BN-ReLU更改为BN-ReLU-conv。卷积核都用3*3;正则化使用dropout,而ResNet用的BN在这里不好用了。

结构单元


c92fef90624d58004d641fd187ae11fb.png

  • a是最基本的ResNet结构,b 是用了bottleneck(瓶颈)的ResNet结构;
  • d是在最基本的ResNet结构上加入dropout层的WideResNet结构。

增加Conv的Output channels数目即使用更多的conv filters进行计算,所谓的增宽block;

Residual block里面使用的conv层次结构


设B(M)表示剩余块结构,其中M是块中卷积层的核大小列表。例如,B(3,1)表示具有3×3和1×1两个卷积层的剩余块,B(3,1,1)表示3×3和1×1和1×1三个卷积层组成,以此类推;作者做实验设计了几个不同的conv层次,以此来验证residual block中最佳的conv结构。

83775aaf6f6d375a4733ecf35b1a3688.png

f051303220fa6b7bfddd670ddda88471.png

实验结果

下图为以上各个结构最终能够获得的分类结果比较(注意在实验时作者为保证训练所用参数相同,因此不同类型block构成的网络的深度会有不同)。可见B(3,3)能取得最好的结果,这也证明了常用Residual block的有效性接下来的实验中,作者保持了使用B(3,3)这种Residual block结构。

Residual block中的conv层数


l表示单个Residual block里面conv层的数目,以d表示整体网络所具有的residual blocks的数目。通过保持整体训练所用参数不变,作者研究、分析了residual block内conv层数目不同所带来的性能结果差异。从中我们能够看出residual block里面包含2个conv层分类性能可达最优。

96b98b2dcdbc0667d0681775b3e01de5.png

l数目对比结果

Residual block内宽度


k表示wide-resnet加宽因子,当我们增加加宽参数k时,必须保持总参数不变。为了找到一个最佳的数值,我们用k从2到12,深度从16到40进行实验。结果如下表所示。可以看出,当宽度因子从1增加到12时,所有具有40、22和16层的网络都可以看到精度上升。另一方面,当保持相同的固定加宽系数k=8或k=10且深度从16变为28时,也能提升相关性能,但是当我们进一步将深度增加到40时,精度会降低(例如,WRN-40-8的精度会降低到WRN-22-8)。

8a6c9269c0d0f409f8393dfc3b4b3dc8.png

Residual block中Dropout的引入


加宽Residual block势必会带来训练参数的增加,为了避免模型陷入过拟合,作者在Residual block中引入了dropout。另外作者实验表明将Dropout加入在conv层之后比加入在identity mapping连接上可带来更好的效果。因此这里引入的Dropout被放在了Conv出来后的ReLu之后。下图中的结果反映出了Dropout带来的性能提升。

73d311e3e33c02785ae0726b7f78be08.png

Dropout引入对网络性能的影响


如下图所示,总的来说,dropout显示出其自身是一种有效的正则化技术。它可以用来进一步改善加宽的结果,同时也是对加宽因子的补充。与传统的细高Resnet相比,矮胖WRN可具有更好的精度。

2870b1f469dcf8f256e5ca5d0de245e1.png

绿色的线表示wide-resnet损失误差曲线,红色表示原resnet损失曲线

计算效率


如下图所示,条形图旁边的数字表示CIFAR-10上的测试错误,顶部时间(ms)。测试时间是这些基准的比例分数。例如,宽WRN-40-4的速度是薄ResNet1001的8倍,同时具有大致相同的精度。

a0155bc954da6acfef7fa7241da067bb.png

一些对比实验结果


b9d4c1f60562fc913e31d65136e13227.png

3fb14418c05b13563fc7bb02955f2f7f.png

wide-resnet模型可视化结果


9fc4cdce07fd6aed1894ac78494b9331.png

相关文章
|
17小时前
|
机器学习/深度学习
大模型开发:解释卷积神经网络(CNN)是如何在图像识别任务中工作的。
**CNN图像识别摘要:** CNN通过卷积层提取图像局部特征,池化层减小尺寸并保持关键信息,全连接层整合特征,最后用Softmax等分类器进行识别。自动学习与空间处理能力使其在图像识别中表现出色。
27 2
|
17小时前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
71 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
7月前
|
机器学习/深度学习
CNN模型识别cifar数据集
构建简单的CNN模型识别cifar数据集。经过几天的简单学习,尝试写了一个简单的CNN模型通过cifar数据集进行训练。效果一般,测试集上的的表现并不好,说明模型的构建不怎么样。# -*- coding = utf-8 -*-# @Time : 2020/10/16 16:19# @Author : tcc# @File : cifar_test.py# @Software : pycha...
32 0
|
17小时前
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
|
17小时前
|
机器学习/深度学习 人工智能 数据可视化
【视频】CNN(卷积神经网络)模型以及R语言实现回归数据分析
【视频】CNN(卷积神经网络)模型以及R语言实现回归数据分析
|
17小时前
|
机器学习/深度学习 人工智能 数据可视化
CNN(卷积神经网络)模型以及R语言实现
CNN(卷积神经网络)模型以及R语言实现
|
17小时前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言实现CNN(卷积神经网络)模型进行回归数据分析
R语言实现CNN(卷积神经网络)模型进行回归数据分析
|
17小时前
|
机器学习/深度学习 人工智能 测试技术
基于keras平台CNN神经网络模型的服装识别分析
基于keras平台CNN神经网络模型的服装识别分析
|
6月前
|
PyTorch 算法框架/工具
时间序列预测:CNN+LSTM+Attention模型实战
时间序列预测:CNN+LSTM+Attention模型实战
258 0
|
7月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用卷积神经网络构建一个图像分类模型
使用卷积神经网络构建一个图像分类模型
90 0

热门文章

最新文章