当前位置: 首页 > news >正文

卷积神经网络-迁移学习

文章目录

  • 一、迁移学习
    • 1.定义与性质
    • 2.步骤
  • 二、Batch Normalization(批次归一化)
  • 三、ResNet网络
    • 1.核心思想
    • 2.残差结构
      • (1)残差块
      • (2)残差结构类型
  • 四、总结

一、迁移学习

迁移学习(Transfer Learning)是一种强大的机器学习方法,其核心思想是将在一个任务(源任务)上学到的知识或模型迁移到另一个相关任务(目标任务)上,以提高新任务的性能。以下是对迁移学习的详细解析:

1.定义与性质

  • 定义:迁移学习是指利用已经训练好的模型,在新的任务上进行微调。迁移学习可以加快模型训练速度,提高模型性能,并且在数据稀缺的情况下也能很好地工作。
  • 性质:迁移学习侧重于将已经学习过的知识迁移应用于新的问题中,以减少目标任务对大量新数据的依赖,加快模型训练速度,并提高模型的泛化能力。

2.步骤

  • 选择预训练的模型和适当的层:通常,我们会选择在大规模图像数据集(如ImageNet)上预训练的模型,如VGG、ResNet等。然后,根据新数据集的特点,选择需要微调的模型层。对于低级特征的任务(如边缘检测),最好使用浅层模型的层,而对于高级特征的任务(如分类),则应选择更深层次的模型。
  • 冻结预训练模型的参数:保持预训练模型的权重不变,只训练新增加的层或者微调一些层,避免因为在数据集中过拟合导致预训练模型过度拟合。
  • 在新数据集上训练新增加的层:在冻结预训练模型的参数情况下,训练新增加的层。这样,可以使新模型适应新的任务,从而获得更高的性能。
  • 微调预训练模型的层:在新层上进行训练后,可以解冻一些已经训练过的层,并且将它们作为微调的目标。这样做可以提高模型在新数据集上的性能。
  • 评估和测试:在训练完成之后,使用测试集对模型进行评估。如果模型的性能仍然不够好,可以尝试调整超参数或者更改微调层。

二、Batch Normalization(批次归一化)

Batch Normalization(批归一化,简称BN)是一种在深度学习中广泛使用的技术,旨在加速神经网络的训练过程并提高模型的性能。
作用:

  • 加速训练过程:Batch Normalization通过减少内部协变量偏移(Internal Covariate Shift),即隐藏层输入分布的变化,使得网络对初始权重选择的依赖较小,对学习率的选择也相对不敏感。这有助于加速神经网络的收敛速度。

  • 提高模型性能:通过归一化操作,Batch Normalization有助于减少梯度消失和梯度爆炸问题,从而提高模型的训练稳定性和泛化能力。

  • 减少过拟合:Batch Normalization在小批量样本上计算均值和方差,可以看作是对小批量样本进行一种正则化处理,有助于减少过拟合现象。

三、ResNet网络

为了解决深层网络中的退化问题,可以人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为 残差网络 (ResNets)。

1.核心思想

ResNet的核心思想在于残差学习(Residual Learning),即网络学习的是输入和输出之间的残差(即差异),而不是直接学习完整的输出。这种设计有助于减少深层网络在训练过程中的信息损失,从而提高训练效率和模型性能。

2.残差结构

残差结构是深度学习中一种非常重要的网络设计思想,它通过引入直接连接来缓解梯度消失、梯度爆炸和退化问题、提升网络性能和泛化能力。

(1)残差块

在这里插入图片描述
一个典型的残差块包含两条路径:一条是主路径(通常由几个卷积层组成),另一条是shortcut路径(直接连接输入和输出)。主路径的输出与shortcut路径的输出相加后作为残差块的最终输出。通过这种方式,残差块能够在保持原始输入信息的同时,对输入进行进一步的特征提取和转换。

(2)残差结构类型

ResNet网络通常采用多个残差块堆叠的结构,这些残差块可以根据不同的需求和网络深度进行调整。例如,ResNet-18、ResNet-34、ResNet-50等变体在网络深度和复杂度之间做了平衡,适用于不同的应用场景。此外,ResNet网络还采用了批量归一化(Batch Normalization)等技术来加速训练过程并提高模型性能。
在这里插入图片描述
在这里插入图片描述
这里我们为大家展示ResNet-18的网络结构,并具体介绍对应的内容。如下:

  • 第一步,残差网络需要的image大小固定为224x224,使用第一步就是确保我们传入的数据大小为224x224,如果不符合,可能会导致后续训练出现问题,所以这里我们可能需要运用数据增强来处理数据。
  • 第二步,我们进入卷积层,一个64x7x7的卷积层,其步长为2、边缘填充为3。该卷积层通常使用较大的卷积核和步长,以快速减小特征图的尺寸,比如这里就将特征图的尺寸减小一倍变成64x112x112。
  • 第三步,进行了最大池化操作,用于进一步减小特征图的尺寸并增加感受野,这里将特征图减小至64x56x56。
  • 第四步,我们进入第一个残差块,内部包含两个卷积层和一个残差连接。第一个卷积层使用3x3的卷积核,步长为1,边缘填充为1,输出通道数与输入相同为64x56x56。该卷积层后通常跟着批量归一化(Batch Normalization)和ReLU激活函数。第二个同样使用3x3的卷积核,步长为1,边缘填充为1。该卷积层后也进行批量归一化和ReLU激活。将两个卷积的结果输出后与shortcut路径的输出相加,这里两者的尺寸匹配,不需要对输入特征图进行操作。下面再一次进行上序残差块的操作,得出结果再次相加。
  • 第五步,这里进入到新一步的残差块,这里第一个卷积层我们将通道数进行加倍操作,由原来的64变成128,同时更改步长为2,使输出结果变成128x28x28,然后同样进行批量归一化(Batch Normalization)和ReLU激活函数。第二个卷积层进行基本一致的操作,只需要将步长更改为1即可,最后我们将输出结果与shortcut路径的输出相加,这里因为我们更改了输出通道与步长,导致两者的尺寸或通道数不匹配,所以我们需要对shortcut路径的输出进行1x1的卷积操作以调整其尺寸和通道数。然后相加并再次进行上序残差块操作。
  • 第六步,下面我们按照上序步骤对其进行同样的通道与步长更改,将其由128x28x28改至256x14x14,再把256x14x14改为512x7x7。并在每次更改通道与步长时,对shortcut路径的输出进行1x1的卷积操作,与输出结果相加即可。
  • 第七步,在经过8次残差块后,我们最终得到512x7x7的输出结果,对该结果进行平均池化,最后得到 FC为(512,1000)。这里最后的结果1000为ResNet_18的特征标签个数,具体运用时,我们应该更改为自己数据集的特征标签个数。可以通过下述方式更改,例如我们的数据集为20,我们可以获取ResNet_18的特征个数,然后创建一个新的全连接层,输入ResNet_18特征,然后再输入自己数据集的输出,即20。
    in_features = resnet_model.fc.in_features  
    resnet_model.fc = nn.Linear(in_features, 20)  
    

残差结构的引入使得训练很深的卷积神经网络成为可能,并在多个图像识别任务中取得了优异的性能。通过残差学习,网络可以更容易地学习到恒等映射,从而缓解深层网络训练中的梯度问题。

四、总结

本文主要通过迁移学习为大家引入ResNet网络,为大家介绍了残差网络的两个核心结构:批次归一化与残差结构,通过这两个核心结构解决梯度消失、爆炸和退化问题。其中着重介绍了残差结构的类型与ResNet_18的网络模型与具体操作。这些核心特点使得ResNet网络能够训练得更深且性能更强,在计算机视觉和深度学习领域得到了广泛应用。

http://www.lryc.cn/news/447167.html

相关文章:

  • 数据库:PL/SQL
  • 迅雷笔试 最长相等子段数列长度 滑动窗口
  • MMD模型一键完美导入UE5-VRM4U插件方案(一)
  • bench.sh:一行命令测试Linux服务器基准测试
  • 广播IP与共享IP的关系
  • 正则表达式和re模块
  • 不同的浏览器、服务器和规范对 URL 长度的限制
  • NASA:ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006数据集
  • 数据结构之链表(1),单链表
  • 如何构建鲁棒高性能 Prompt 的方法?
  • 基于Springboot+微信小程序 的高校社团管理小程序(含源码+数据库+lw)
  • Vue 响应式监听 Watch 最佳实践
  • md编辑器语法
  • RabbitMQ常用管理命令及管理后台
  • 从准备面试八股文,感悟到技术的本质
  • 云手机的默认ip地址是什么
  • 对接阿里asr和Azure asr
  • 未来数字世界相关技术、应用:AR/VR/MR;数字人、元宇宙、全息显示
  • 在 Java 中提供接口方法而不是实现接口
  • 伪类选择器
  • 亚信安全天穹5分钟勒索体检 免费试用今起上线
  • 高校竞赛管理系统的设计与实现
  • 物联网行业中通信断线重连现象介绍以及如何实现
  • 新手上路:Anaconda虚拟环境创建和配置以使用PyTorch和DGL
  • centos7系统安装宝塔面板
  • 汽车总线之----J1939总线
  • 基于skopt的贝叶斯优化基础实例学习实践
  • OJ在线评测系统 后端 用策略模式优化判题机架构
  • element ui 精确控制日期控件 date-picker
  • centos7安装指定版本php及扩展