【ResNet网络模型】

文章

Deep Residual Learning for Image Recognition

CNN经典网络模型

残差神经网络(ResNet)主要贡献是发现了“退化现象(degradation)”,并针对退化现象发明了“直连边/短连接(shortcut connection)”,极大消除了深度过大的神经网络训练困难问题。

网络结构

ResNet的前两层为输出通道数为64、步幅为2的7×7卷积层,后接步幅为2的3×3的最大池化层。 不同于GoogLeNet,ResNet在每个卷积层后增加了批量规一化层。
接着, ResNet使用4个由残差块组成的模块,每个模块使用若干个同样输出通道数的残差块。 第一个模块的通道数同输入通道数一致。 由于之前已经使用了步幅为2的最大池化层,所以无须减小高和宽。 之后的每个模块在第一个残差块里将上一个模块的通道数翻倍,并将高和宽减半
ResNet的一个重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度。最后,输入全局平均汇聚层,以及全连接层输出。通过配置不同的通道数和模块里的残差块数可以得到不同的ResNet模型,例如更深的含152层的ResNet-152。
34层ResNet如下图所示:
在这里插入图片描述第一个构建层,由1个普通卷积层和最大池化层构建。
第二个构建层,由3个残差模块构成。
第三、第四、第五构建层,都是由降采样残差模块开始,紧接着3个、5个、2个残差模块。

残差单元

ResNet团队分别构建了带有“直连边(Shortcut Connection)”的ResNet残差块、以及降采样的ResNet残差块,区别是降采样残差块的直连边增加了一个1×1的卷积操作。
对于直连边,当输入和输出维度一致时,可以直接将输入加到输出上,这相当于简单执行了同等映射,不会产生额外的参数,也不会增加计算复杂度。但是当维度不一致时,这就不能直接相加,通过添加1×1卷积调整通道数。这种残差学习结构可以通过前向神经网络+直连边实现, 而且整个网络依旧可以通过端到端的反向传播训练。结构如下图所示:
在这里插入图片描述

模型特点

网络深度的重要性

因为CNN能够提取low/mid/high-level的特征,网络的层数越多,意味着能够提取到不同level的特征越丰富。并且,越深的网络提取的特征越抽象,越具有语义信息。

为什么不能简单增加网络层数呢?

对于原来的网络,如果简单地增加深度,会导致梯度弥散或梯度爆炸。Batch Normalization可以解决该问题的,因此可以训练到几十层的网络。

残差块

随着网络层数增加,出现了新的问题:退化问题,在训练集上准确率饱和甚至下降了。这个不能解释为过拟合,因为过拟合表现为在训练集上表现更好才对。
退化问题说明了深度网络不能很简单地被很好地优化。
作者通过实验说明:通过浅层网络y=x 等同映射构造深层模型,结果深层模型并没有比浅层网络有更低甚至等同的错误率,推断退化问题可能是因为深层的网络很那难通过训练利用多层网络拟合同等函数。

如何解决退化问题?

深度残差网络。如果深层网络的后面那些层是恒等映射,那么模型就退化为一个浅层网络。所以要解决的就是学习恒等映射函数。但是直接让一些层去拟合一个潜在的恒等映射函数H(x) = x,比较困难,这可能就是深层网络难以训练的原因。
但是,如果把网络设计为H(x) = F(x) + x。我们可以转换为学习一个残差函数F(x) = H(x) - x. 只要F(x)=0,就构成了一个恒等映射H(x) = x. 此外,拟合残差会更加容易。
总的来说,一是其导数总比原导数加1,这样即使原导数很小时,也能传递下去,能解决梯度消失的问题;
二是y=f(x)+x式子中引入了恒等映射(当f(x)=0时,y=2),解决了深度增加时神经网络的退化问题。

代码实现

  • model.py 定义Resnet网络模型
  • train.py 加载数据集并训练,计算loss和accuracy,保存训练好的网络参数
  • predict.py 用自己的数据集进行分类测试
  • spilit_data.py 划分给定的数据集为训练集和测试集
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BiT-ResNet网络模型ResNet网络模型都是深度卷积神经网络,用于提取图像特征,但BiT-ResNet网络模型ResNet网络模型进行了改进。 首先,我们来了解一下ResNet(残差网络模型。在传统的神经网络中,随着网络深度的增加,梯度消失和梯度爆炸等问题可能会变得更加严重。为了解决这些问题,ResNet提出了残差模块(Residual Block)和残差路径(Residual Path)的概念。在残差模块中,通过引入恒等映射(identity mapping)的思想,在网络中插入了一个恒等的非线性变换,使得输入可以直接通过网络而不需要进行参数化。这种设计可以有效地解决梯度消失和梯度爆炸问题,使得深度神经网络可以更好地学习到图像的特征。 在提取图像特征时,ResNet模型通过残差模块将输入图像映射到原始特征图上,同时保留了原始特征图的信息。通过这种方式,ResNet模型可以有效地提取出图像中的特征信息,并且可以更好地处理深度较大的神经网络。 接下来,我们来看一下BiT-ResNet网络模型ResNet网络模型的改进。BiT-ResNet模型主要通过以下几种方法对ResNet模型进行了改进: 1. 改进了残差模块的设计:在BiT-ResNet模型中,对残差模块进行了改进,采用了局部残差模块(Local Residual Block)的设计,通过使用局部感受野和跨层连接等机制,更好地捕捉图像的局部特征和深度信息。 2. 提出了批量归一化技术:BiT-ResNet模型在残差模块中引入了批量归一化技术,以进一步改善模型的性能。批量归一化技术可以有效地改善模型的训练过程,提高模型的稳定性、收敛速度和精度。 3. 优化了模型的架构:BiT-ResNet模型ResNet模型的架构进行了优化,例如采用了更小的卷积核和跳跃连接等机制,以更好地捕捉图像的局部和全局特征。 综上所述,BiT-ResNet网络模型通过对残差模块、批量归一化技术和模型架构的改进,进一步提高了ResNet模型在提取图像特征方面的性能。这些改进有助于更好地捕捉图像的局部和全局特征,提高模型的泛化能力和精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值