当前位置: 首页 > 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网络能够训练得更深且性能更强,在计算机视觉和深度学习领域得到了广泛应用。

相关文章:

卷积神经网络-迁移学习

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

数据库:PL/SQL

变量 变量 建议使用V开头 作用: 用来保存一个数据 普通变量 declare --定义一个变量(保存一个数据) v_email varchar2(20); --定义变量并且赋值 v_ename varchar2(20) :张三; beginv_email :553215qq.com;dbms_output.put_line(v_email);dbms_output…...

迅雷笔试 最长相等子段数列长度 滑动窗口

👨‍🏫 牛马Code:最长相等子段数列长度 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashMap;public class Main {// 创建一个输入流读取器,用于读取控制台输…...

MMD模型一键完美导入UE5-VRM4U插件方案(一)

1、下载pmx模型 1、去模之屋官网下载MMD模型,模之屋 2、下载完成得到pmx和Texture文件 2、下载并启用VRM4U插件 1、下载VRM4U插件, VRM4U,点击Latest下载对应引擎版本 2、将插件放到Plugins目录,然后...

bench.sh:一行命令测试Linux服务器基准测试

简介 bench.sh 是一个 Linux 系统性能基准测试工具。它的测试结果如下图:给出服务器的整体配置信息,IO 性能,网络性能。很多人使用它测试 vps 性能。 ​​ 一键运行 服务器在国外可以使用以下命令运行测试 wget -qO- bench.sh | bash复制…...

广播IP与共享IP的关系

什么是广播IP? 广播IP是指一种特殊的IP地址,用于在网络中向所有设备发送信息。广播地址通常是某个网络段的最后一个地址,例如,在一个子网掩码为255.255.255.0的网络中(即/24子网),其网络地址可…...

正则表达式和re模块

正则表达式(Regular Expression,简称Regex或RegExp)是计算机科学中的一个重要概念,它通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,通过事先定义…...

不同的浏览器、服务器和规范对 URL 长度的限制

不同的浏览器、服务器和规范对 URL 长度的限制有所不同。通常的限制如下: 1. 浏览器限制: 常见浏览器对 URL 长度的限制在 2,000 到 8,000 个字符之间。例如: Internet Explorer: 大约 2,083 个字符。Google Chrome: 理论上支持超过 32,00…...

NASA:ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006数据集

目录 简介 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3A Along Track Inland Surface Water Data V006 简介 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006 ATLAS/ICESat-2 L3 A沿线内陆地表水数据V006是指由ATLAS/ICESat-2卫星获取的针对陆地…...

数据结构之链表(1),单链表

目录 前言 一、什么是链表 二、链表的分类 三、单链表 四、单链表的实现 五、SList.c文件完整代码 六、使用演示 总结 前言 本文讲述了什么是链表,以及实现了完整的单链表。 ❤️感谢支持,点赞关注不迷路❤️ 一、什么是链表 1.概念 概念:链…...

如何构建鲁棒高性能 Prompt 的方法?

你好,我是三桥君 在当今时代,利用大型语言模型如ChatGPT进行文本生成和交互已成为一种趋势。然而,要充分发挥这些模型的能力,尤其是在生产环境中,我们需要精心设计和优化我们的提示词(prompt)。…...

基于Springboot+微信小程序 的高校社团管理小程序(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…...

Vue 响应式监听 Watch 最佳实践

一. 前言 上一篇文章我们学习了 watch 的基础知识,了解了它的基本使用方法及注意事项,本篇文章我们继续了解在Vue 中 响应式监听 watch 的妙用。了解 watch 的基础使用请参考上一篇文章: 详解 Vue 中 Watch 的使用方法及注意事项https://bl…...

md编辑器语法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...

RabbitMQ常用管理命令及管理后台

RabbitMQ管理命令 1、用户管理1.1、新增一个用户1.2、查看当前用户列表1.3、设置用户角色1.4、设置用户权限1.5、查看用户权限 2、RabbitMQ的web管理后台2.1、查看rabbitmq 的插件列表2.2、启用插件2.3、禁用插件2.4、访问RabbitMQ的web后台2.4、通过web页面新建虚拟主机 ./rab…...

从准备面试八股文,感悟到技术的本质

工作前几年听说过,大学最重要的几门课其实是数据结构和算法、操作系统、计算机组成原理、计算机网络。 初听时不以为然,感觉没什么用。 近期准备面试八股文得到了一些感悟。这句话随着工作年限和对程序的理解越来越深入,含金量越来越高。 最…...

云手机的默认ip地址是什么

云手机(Cloud Phone)是一种基于云计算技术的虚拟手机,它可以在云端运行,使用户能够通过互联网访问手机应用和服务。云手机的IP地址通常取决于以下几个因素: 1. 云服务提供商 不同的云服务提供商(如AWS、G…...

对接阿里asr和Azure asr

1&#xff1a;对接阿里asr 1.1&#xff1a;pom <dependency><groupId>com.alibaba.nls</groupId><artifactId>nls-sdk-recognizer</artifactId><version>2.2.1</version> </dependency>1.2&#xff1a;生成token package c…...

未来数字世界相关技术、应用:AR/VR/MR;数字人、元宇宙、全息显示

一、AR/VR/MR 增强现实(AR)、虚拟现实(VR)和混合现实(MR)是三种不同的技术,它们都旨在增强用户对现实世界的感知和交互体验。以下是它们的详细介绍: 增强现实(AR) 增强现实(Augmented Reality, AR) 是一种将虚拟信息叠加到现实世界中的技术。通过AR技术,用户可…...

在 Java 中提供接口方法而不是实现接口

问题 我正在阅读有关Java中的接口的文章。其中提到我们必须实现compareTo方法才能在ArrayList容器上调用sort&#xff0c;例如Employee类应该实现 Comparable接口。 后面解释了为什么Employee类不能简单地提供compareTo方法而不实现Comparable接口&#xff1f;之所以需要接口…...

伪类选择器

一、基本概念 伪类选择器以冒号&#xff08;:&#xff09;开头&#xff0c;后面跟着伪类名。它不直接对应DOM中的任何元素&#xff0c;而是用于描述元素的特殊状态或位置。通过使用伪类选择器&#xff0c;可以在不修改HTML文档结构的情况下&#xff0c;为元素添加或修改样式。…...

亚信安全天穹5分钟勒索体检 免费试用今起上线

对于勒索攻击的认知 你是否还停留在“2.0时代”&#xff1f; 勒索攻击无疑是企业面临的最大威胁&#xff0c;2024年上半年&#xff0c;勒索组织数量同步增长超过50%&#xff0c;勒索攻击数量也持续攀升&#xff0c;平均勒索赎金突破520万美元。 当前&#xff0c;勒索攻击治理…...

高校竞赛管理系统的设计与实现

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统高校竞赛管理系统信息管理难度大&#xff0c;容错率低&am…...

物联网行业中通信断线重连现象介绍以及如何实现

01 概述 断线重连是指在计算机网络中&#xff0c;当网络连接遇到异常中断或者断开时&#xff0c;系统会自动尝试重新建立连接&#xff0c;以保证网络通信的连续性和稳定性。这是一种常见的网络通信技术&#xff0c;广泛应用于各种计算机网络场景&#xff0c;包括互联网、局域…...

新手上路:Anaconda虚拟环境创建和配置以使用PyTorch和DGL

文章目录 前言步骤 1: 安装 Anaconda步骤 2: 创建新的 Anaconda 环境步骤 3: 安装最新版本的 PyTorch步骤 4: 安装特定版本的 PyTorch步骤 5: 安装最新版本的 DGL步骤 6: 安装特定版本的 DGL步骤 7: Pycharm中使用虚拟环境解释器第一种情况&#xff1a;创建新项目第二种情况&am…...

centos7系统安装宝塔面板

1、开始安装 适用系统 Centos/OpenCloud/Alibaba 稳定版9.0.0 urlhttps://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_lts.sh $url;fi;bash install_lts.sh ed8484bec等待命令执行&#xff0c;安装完成&#…...

汽车总线之----J1939总线

instruction SAE J1939 是由美国汽车工程协会制定的一种总线通信协议标准&#xff0c;广泛应用于商用车&#xff0c;船舶&#xff0c;农林机械领域中&#xff0c;J1939协议是基于CAN的高层协议&#xff0c;我们来看一下两者之间的关系。在J1939 中&#xff0c;物理层和数据链路…...

基于skopt的贝叶斯优化基础实例学习实践

贝叶斯方法是非常基础且重要的方法&#xff0c;在前文中断断续续也有所介绍&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《数学之美番外篇&#xff1a;平凡而又神奇的贝叶斯方法》 《贝叶斯深度学习——基于PyMC3的变分推理》 《模型优化调参利器贝叶斯优化bay…...

OJ在线评测系统 后端 用策略模式优化判题机架构

判题机架构优化(策略模式) 思考 我们的判题策略可能会有很多种 比如 我们的代码沙箱本身执行程序需要消耗时间 这个时间可能不同的编程语言是不同的 比如沙箱执行Java要额外花费2秒 我们可以采用策略模式 针对不同的情况 定义不同独立的策略 而不是把所有情况全部放在一个i…...

element ui 精确控制日期控件 date-picker

https://github.com/element-plus/element-plus/discussions/17378 -- 某组件 xxx.vue ... <el-date-pickerv-model"timeRange"type"daterange"range-separator"-"start-placeholder"开始日期"end-placeholder"结束日期"…...