【机器学习300问】37、什么是迁移学习?

一、什么是迁移学习?

(1)它的出现是为了解决什么问题?

        迁移学习是为了解决深度学习中由于数据不足导致的学习效果受限以及跨领域知识的有效利用等问题而发展起来的一种重要技术手段。

① 缺少训练数据

        在许多实际应用中,获取大量标注数据的成本高、难度大。迁移学习允许模型利用在大规模相关任务上训练得到的知识,来应对那些只有有限或无标注数据的新任务。

② 计算资源受限

        预训练模型可以作为初始化权重,在此基础上进行微调,相比随机初始化参数,通常能更快地收敛至较好的结果。通过迁移学习,可以从已经学习到的特征表示和模式中受益,避免从头开始训练时可能陷入局部最优解的问题,从而提高新任务的学习效率和最终表现。

(2)迁移学习的定义

  • 例一:经验丰富的画家 

         比如,你是一名经验丰富的画家,已经掌握了如何细致地画出苹果的技巧——对苹果的形状、颜色、光影变化等细节了如指掌。有一天,你需要开始画梨子。虽然梨和苹果在形状和纹理上有一定差异,但它们都是水果,有类似的质地、光照下的表现以及基本的三维结构。

        迁移学习就像这个绘画过程:你在“画苹果”的任务上学到的知识(比如对色彩层次的理解、阴影处理方法)可以被“迁移”到“画梨子”的新任务上,这样你就无需从零开始学习所有的绘画原理,而是可以在已有的知识基础上快速适应并提高新任务的表现。

  • 例二:图像识别

         比如我想要训练一个手写数字识别模型,我手头只有5000张手写0到9的训练数据。但与此同时我可以从网上获得100万张猫、狗、人、车的训练集和训练好的模型参数来进行迁移学习。

        通过这样的迁移学习过程,即使只有有限的手写数字数据,也可以借助预训练模型强大的特征提取能力,快速构建出一个相对准确的手写数字识别模型。

  • 定义: 迁移学习是一种机器学习方法,它能把在一个问题上训练获得的信息和经验利用到解决另一个类似问题上,特别是当这两个问题有共同点时。

(3)预训练模型

        从迁移学习的定义中我们可以得到预训练模型的定义,它是指你想要迁移过来的带有已经训练好的参数的模型。

  • 在CV领域,预训练模型可能是经过ImageNet等大型图像数据集训练过的卷积神经网络(CNN)。这些模型学会了识别图片中的各种物体和它们的特征,如边缘、形状、颜色组合等。
  • 在NLP领域,预训练模型通过大量文本语料库(如维基百科、网页等)进行了自我监督学习,学习到了丰富的语言结构和上下文信息。

(4)模型微调

        迁移学习中的模型微调(Fine-Tuning)是指在预训练模型的基础上,针对特定任务或目标数据集进行进一步的训练过程。预训练模型是在大规模、标注好的源数据集上预先训练好的模型,其参数已经学习到了丰富的特征表示能力。

二、两种迁移学习的微调策略

(1)冻结预训练模型部分层并仅更新输出层

        这种情况下,我们通常会利用一个在大规模数据集上预训练好的深度学习模型。由于预训练模型的早期层已经学习到了非常通用且抽象的特征表示,例如图像识别中的边缘、纹理等信息,这些特征对于许多视觉任务都有用。

        因此,在新任务中,我们会将模型的大部分或所有前期层参数“冻结”,即保持不变不再进行训练,只对输出层或者最后几层进行重新训练或微调。

        这样做的好处:是让模型利用已有的高质量特征提取能力,针对新任务的特定分类或回归需求调整最终决策层。

(2)使用全部可用数据更新所有层参数

        当手头的数据集相对较大,尽管可能不如预训练模型使用的原始数据集那么大,但仍具有一定的规模时,可以考虑采用此策略。此时,我们可以基于预训练模型初始化整个网络的权重,然后在整个模型的所有层上进行训练或微调。

        这样做的好处:是可以使模型更充分地适应新数据集的特点,同时保留预训练模型的部分知识。当然,在实际操作中,可能会选择逐步解冻之前冻结的层,以平衡学习新任务特性和保留预训练知识之间的关系。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/457915.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手动创建线程池各个参数的意义?

今天我们学习线程池各个参数的含义,并重点掌握线程池中线程是在什么时机被创建和销毁的。 线程池的参数 首先,我们来看下线程池中各个参数的含义,如表所示线程池主要有 6 个参数,其中第 3 个参数由 keepAliveTime 时间单位组成。…

DM数据库安装(Linux)

Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 先把压缩包扔过去 新建 dmdba 用户 创建用户所在的组,命令如下: groupadd dinstall 创建用户,命令如下: useradd -g dinstall -m -d /home/dmdba -s /…

MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2

MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,在物联网和消息传递系统中广泛应用。MQTT 提供了三个不同的 QoS(Quality of Service)等级,用于确保消息的可靠性和传输效率。本文将详细…

java数据结构与算法刷题-----LeetCode47. 全排列 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力回溯2. 分区法回溯 此题为46题的衍生题,在46题…

Android14之报错:error:add its name to the whitelist(一百九十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Vscode 修改C++版本

1. 首先要检查GCC版本,有的gcc版本过低会导致C版本升级不成功 可以用cmd,用gcc --version命令查看gcc版本 我这里就是gcc版本较低,不支持c17 需要先升级gcc版本 gcc与c对应的版本,大家可以在这位大佬的博客中看,写…

json-server库的使用,实现数据模拟

项目目录 安装 npm i json-server -g 启动单个json服务,在cookbook目录下执行命令: json-server ./mock/a.json -p 9000 待实现

本地调试 Github Actions:维护纯净代码,减少调测记录 | 开源日报 No.200

nektos/act Stars: 47.6k License: MIT act 是一个可以在本地运行 GitHub Actions 的工具。 快速反馈:无需每次都提交/推送更改到 .github/workflows/ 文件(或嵌入式 GitHub actions),使用 act 可以在本地运行 actions&#xff…

【华为 ICT HCIA eNSP 习题汇总】——题目集16

1、下面哪一个最适合使用室内分布方式部署 WLAN? A、运动场 B、办公室 C、高校单排宿舍 D、广场 考点:无线局域网 解析:(C) 室内分布方式部署 WLAN 一般适用于需要大面积、高密度、高质量无线覆盖的场所,从…

<JavaEE> 数据链路层 -- 以太网协议、MTU限制、ARP协议

目录 以太网协议 什么是以太网? 以太网的帧格式 什么是MAC地址? MAC地址和IP地址的对比? MTU(最大传输单元)限制 什么是MTU限制? MTU对IP协议有什么影响? MTU对UDP协议有什么影响&…

Css提高——flex布局及其相关属性

目录: 1、传统布局与flex布局的区别 2、flex的布局原理 3、flex常见的父项属性 3.1、flex-direction :设置主轴的方向 3.2、justify-content 设置主轴上的子元素排列方式 3.3、flex-wrap 设置子元素是否换行 3.4、align-items 设置侧轴上的子元素排…

电阻器的等效电路与高频无感电阻的性能

电阻器的结构比较简单,但在高频情况下,不能简单地把电阻器看成只是一个电阻分量的理想元件。电阳器实际上是由许多电阻、电感和电容分量组成的复杂阻抗系统,电阻只是其中的一个主要成分。因此必须研究电阻器的直流等效电路、高频等效电路和集…

面试题系列一之-css画三角形(原理解析)

用html写一个三角形的图标算是一个比较简单的,但是工作中用的还是比较多的&#xff0c;面试也可能会问&#xff0c;但了解背后的原理才能熟练使用 我们首先写一个div,设置边框 <body><div class"border"></div> </body> <style> .bo…

HNU计算机系统·汇编进阶

知识回顾&#xff1a; 寻址&#xff1a; 其中&#xff0c;比例因子S&#xff0c;只能是1&#xff0c;2&#xff0c;4&#xff0c;8中的数&#xff0c;这是因为在LEA的独立电路中使用移位寄存器 上节课的补充&#xff1a; mov部分: mov value , %eax mov $value , %eax 第一条…

Python数据分析-5

1.时间序列 2.pandas重采样 重采样&#xff1a;指的是将时间序列从一个频率转化为另一个频率进行处理的过程&#xff0c;将高频率数据转化为低频率数据为降采样&#xff0c;低频率转 化为高频率为升采样。 统计出911数据中不同月份电话次数的变化情况&#xff1a…

Mysql---库表操作

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.Mysql数据库简介 MySQL是一种关系型数据库管理系统&#xff0c;是最流行的开源数据库之一。它是由瑞典MySQL AB公司开发的&#xff0c;后来被Sun Microsystems收购&#xff0c;之后又被Oracl…

vue iview 级联选择器遇到的坑

我们PC项目用到的前端技术栈是vue+iview,最近有个需求,要做个级联选择器,并且是懒加载动态加载后端返回的数据。效果如下: 如下图所示,在我们封装的公共组件form-box.vue里有我们级联选择器: 代码如下: <!--级联选择器--><template v-else-if="item.type…

传统机器学习 基于TF_IDF的文本聚类实现

简介 使用sklearn基于TF_IDF算法&#xff0c;实现把文本变成向量。再使用sklearn的kmeans聚类算法进行文本聚类。 个人观点&#xff1a;这是比较古老的技术了&#xff0c;文本转向量的效果不如如今的 text2vec 文本转向量好。 而且sklearn 不支持GPU加速&#xff0c;处理大量…

Spring Boot整合STOMP实现实时通信

目录 引言 代码实现 配置类WebSocketMessageBrokerConfig DTO 工具类 Controller common.html stomp-broadcast.html 运行效果 完整代码地址 引言 STOMP&#xff08;Simple Text Oriented Messaging Protocol&#xff09;作为一种简单文本导向的消息传递协议&#xf…

物联网技术助力智慧城市转型升级:智能、高效、可持续

目录 一、物联网技术概述及其在智慧城市中的应用 二、物联网技术助力智慧城市转型升级的路径 1、提升城市基础设施智能化水平 2、推动公共服务智能化升级 3、促进城市治理现代化 三、物联网技术助力智慧城市转型升级的成效与展望 1、成效显著 2、展望未来 四、物联网技…