深度学习500问——Chapter10:迁移学习(1)

news2024/11/27 20:41:01

文章目录

11.1 迁移学习基础知识

11.1.1 什么是迁移学习

11.1.2 为什么需要迁移学习

11.1.3 迁移学习的基本问题有哪些

11.1.4 迁移学习有哪些常用概念

11.1.5 迁移学习与传统机器学习有什么区别

11.1.6 迁移学习的核心及度量准则

11.1.7 迁移学习与其他概念的区别

11.1.8 什么是负迁移?产生负迁移的原因有哪些?

11.1.9 迁移学习的基本思路


11.1 迁移学习基础知识

11.1.1 什么是迁移学习

找到目标问题的相似性,迁移学习任务就是从相似性出发,将旧领域(domain)学习过的模型应用在新领域上。

11.1.2 为什么需要迁移学习

1. 大数据与少标注的矛盾:虽然有大量的数据,但往往都是没有标注的,无法训练机器学习模型。人工进行数据标定太耗时。

2. 大数据与弱计算的矛盾:普通人无法拥有庞大的数据量与计算资源。因此需要借助于模型的迁移。

3. 普适化模型与个性化需求的矛盾:即使是在同一个任务上,一个模型也往往难以满足每个人的个性化需求,比如特定的隐私设置。这就需要在不同人之间做模型的适配。

4. 特定应用(如冷启动)的需求。

11.1.3 迁移学习的基本问题有哪些

基本问题主要有3个:

  • How to transfer:如何进行迁移学习?(设计迁移方法)
  • What to transfer:给定一个目标领域,如何找到相对应的源领域,然后进行迁移?(源领域选择)
  • When to transfer:什么时候可以进行迁移,什么时候不可以?(避免负迁移)

11.1.4 迁移学习有哪些常用概念

基本定义:

  •         域(Domain):数据特征和特征分布组成,是学习的主体

                        源域(Source domain):已有知识的域

                        目标域(Target domain):要进行学习的域

  •         任务(Task):由目标函数和学习结果组成,是学习的结果。

按特征空间分类:

  •         同构迁移学习(Homogeneous TL):源域和目标域的特征空间相同,D_s=D_t
  •         异构迁移学习(Heterogeneous TL):源域和目标域的特征空间不同,D_s\ne D_t

按迁移情景分类:

  •         归纳式迁移学习(Inductive TL):源域和目标域的学习任务不同
  •         直推式迁移学习(Transductive TL):源域和目标域不同,学习任务相同
  •         无监督迁移学习(Unsupervised TL):源域和目标域均没有标签

按迁移方法分类:

  •         基于实例的迁移(Instance based TL):通过权重重用源域和目标域的样例进行迁移
  •         基于特征的迁移(Feature based TL):将源域和目标域的特征变换到相同空间
  •         基于模型的迁移(Parameter based TL):利用源域和目标域的参数共享模型
  •         基于关系的迁移(Relation based TL):利用源域中的逻辑网络关系进行迁移

11.1.5 迁移学习与传统机器学习有什么区别

迁移学习传统机器学习
数据分布训练和测试数据不需要分布训练和测试数据同分布
数据标签不需要足够的数据标注足够的数据标注
建模可以重用之前的模型每个任务分分别建模

11.1.6 迁移学习的核心及度量准则

迁移学习的总体思路可以概括为:开发算法来最大限度地利用有标注的领域的知识,来辅助目标领域的知识获取和学习。

迁移学习的核心是:找到源领域和目标领域之间的相似性,并加以合理利用。这种相似性非常普遍。比如,不同人的身体构造是相似的;自行车和摩托车的骑行方式是相似的;国际象棋和中国象棋是相似的;羽毛球和网球的打球方式是相似的。这种相似性也可以理解为不变量。以不变应万变,才能立于不败之地。

有了这种相似性后,下一步工作就是,如何度量和利用这种相似性。度量工作的目标有两点:一是很好地度量两个领域的相似性,不仅定性地告诉我们它们是否相似,更定量地给出相似程度。二是以度量为准则,通过我们所采用的学习手段,增大两个领域之间的相似性,从而完成迁移学习。

一句话总结:相似性是核心,度量准则是重要手段。

11.1.7 迁移学习与其他概念的区别

1. 迁移学习与多任务学习关系:

        多任务学习:多个相关任务一起协同学习;

        迁移学习:强调信息复用,从一个领域(domain)迁移到另一个领域。

2. 迁移学习与领域自适应:领域自适应:使两个特征分布不一致的domain一致。

3. 迁移学习与协方差漂移:协方差漂移:数据的条件概率分布发生变化。

11.1.8 什么是负迁移?产生负迁移的原因有哪些?

负迁移(Negative Transfer)指的是,在源阈上学习到的知识,对于目标域上的学习产生负面作用。

产生负迁移的原因主要有:

  • 数据问题:源域和目标域压根不相似,谈何迁移?
  • 方法问题:源域和目标域是相似的,但是,迁移学习方法不够好,没找到可迁移的成分。

负迁移给迁移学习的研究和应用带来了负面影响。在实际应用中,找到合理的相似性,并且选择或开发合理的迁移学习方法,能够避免负迁移现象。

11.1.9 迁移学习的基本思路

迁移学习的总体思路可以概括为:开发算法来最大限度地利用有标注的领域的知识,来辅助目标领域的知识获取和学习。

  1. 找到目标问题的相似性,迁移学习任务就是从相似性出发,将旧领域(domain)学习过的模型应用在新领域上。
  2. 迁移学习,是指利用数据、任务或模型之间的相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。
  3. 迁移学习最有用的场合是,如果你尝试优化任务B的性能,通常这个任务数据相对较少。例如,在放射科中你知道很难收集很多射线扫描图来搭建一个性能良好的放射科诊断系统,所以在这种情况下,你可能会找到一个相关但不同的任务上做的更好,尽管任务没有那么多数据。
  4. 迁移学习什么时候是有意义的?它确实可以显著提高你的学习任务的性能,但我有时候也见过有些场合使用迁移学习时,任务实际上数据量比任务要少,这种情况下增益可能不多。

什么情况下可以使用迁移学习?

假如两个领域之间的区别特别的大,不可以直接采用迁移学习,因为在这种情况下效果不是很好。在这种情况下,推荐使用[3]的工作,在两个自相似度很低的domain之间一步步迁移过去(踩着石头过河)。

  1. 迁移学习主要解决方案有哪些?
  2. 除直接看infer的结果的Accurancy以外,如何衡量迁移学习学习效果?
  3. 对抗网络是如何进行迁移的?

Reference:

  1. 王晋东,迁移学习简明手册
  2. Ben-David, S., Blitzer, J., Crammer, K., Kulesza, A., Pereira, F., & Vaughan, J. W. (2010). A theory of learning from different domains. Machine learning, 79(1-2), 151-175.
  3. Tan, B., Song, Y., Zhong, E. and Yang, Q., 2015, August. Transitive transfer learning. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 1155-1164). ACM.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

达梦数据库相关SQL及适配Mysql配置总结

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

Leetcode 力扣109. 有序链表转换二叉搜索树 (抖音号:708231408)

给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为 平衡 二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高…

每日一题——Python实现PAT乙级1042 字符统计(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 优点 缺点和改进建议 时间复杂度分析 空间复杂度分析 改进后的代码 我…

关键字、保留字、标识符

关键字 关键字是被 Java 赋予了特定含义的英文单词。 关键字的字母全部小写。 保留字 现有的 Java 版本尚未使用,但是以后版本可能会作为关键字使用。自己命名标识符时需要避免使用这些保留字。 保留字有:byValue, cast, future, generic, inner, op…

数据并非都是正态分布:三种常见的统计分布及其应用

你有没有过这样的经历?使用一款减肥app,通过它的图表来监控自己的体重变化,并预测何时能达到理想体重。这款app预测我需要八年时间才能恢复到大学时的体重,这种不切实际的预测是因为应用使用了简单的线性模型来进行体重预测。这个…

【吊打面试官系列-Mysql面试题】BLOB 和 TEXT 有什么区别 ?

大家好,我是锋哥。今天分享关于 【BLOB 和 TEXT 有什么区别?】面试题,希望对大家有帮助; BLOB 和 TEXT 有什么区别 ? BLOB 是一个二进制对象,可以容纳可变数量的数据。TEXT 是一个不区分大小写的 BLOB。 1…

Java 语言概述 -- Java 语言的介绍、现在、过去与将来

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 001 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…

使用proteus仿真51单片机的流水灯实现

proteus介绍: proteus是一个十分便捷的用于电路仿真的软件,可以用于实现电路的设计、仿真、调试等。并且可以在对应的代码编辑区域,使用代码实现电路功能的仿真。 汇编语言介绍: 百度百科介绍如下: 汇编语言是培养…

Knife4j 生成 API 文档

文章目录 Knife4j 简介使用步骤Knife4j 常用注解的列表案例注意 Knife4j 简介 Knife4j 是一个增强的 Swagger 文档生成工具,提供了更加友好的界面和更多功能,使得 API 文档更加美观且易于使用。它是基于 Spring Boot 和 Swagger 进行封装的,…

【下篇】从 YOLOv1 到 YOLOv8 的 YOLO 物体检测模型历史

YOLO 型号之所以闻名遐迩,主要有两个原因:其速度和准确性令人印象深刻,而且能够快速、可靠地检测图像中的物体。上回我解释了YoloX, 今天从Yolov6开始。 YOLOv6:面向工业应用的单级物体检测框架 美团视觉人工智能事业部(Meituan Vision AI Department)于 2022 年 9 月在…

《精通ChatGPT:从入门到大师的Prompt指南》第4章:避免常见错误

第4章:避免常见错误 在使用ChatGPT进行Prompt编写时,常见的错误可能会大大影响生成内容的质量和准确性。本章将详细讨论这些错误,并提供如何避免它们的建议。 4.1 不明确的指令 在使用ChatGPT时,一个常见的问题是指令不够明确。…

Vue3中的常见组件通信之$attrs

Vue3中的常见组件通信之$attrs 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $re…

LLVM Cpu0 新后端4

想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1V_tZkt9uvxo5bnUufhMQ_Q?…

动态规划学习(分组背包)

分组背包的定义 分组背包是相比于01背包来讲,其就是多了一个组,给你n个组,每个组里有各自的物品,每个组里的物品只能选择一个,问你,选出来的最大价值是多少 这里我们的遍历顺序的三层循环,最外…

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:Burp Suite Professional 2024.5 (macOS, Linux, Windows) - Web 应用安全、测试和扫描…

Spring boot+vue前后端分离

目录 1、前端vue的搭建 2、后端项目的构建 pom文件中引入的jar包 yml文件用来配置连接数据库和端口的设置 application.property进行一些整合 service层 imp层 mapper 实体类 额外写一个类、解决跨域问题 3、测试 1、前端vue的搭建 建立项目的过程略 开启一个建立好…

Linux之进程信号详解【上】

🌎 Linux信号详解 文章目录: Linux信号详解 信号入门 技术应用角度的信号 信号及信号的产生       信号的概念       信号的处理方式 信号的产生方式         键盘产生信号         系统调用产生信号         软件…

python - pandas常用计算函数

文中所用数据集有需要的可以私聊我获取 学习目标 知道排序函数nlargest、nsmallest和sort_values的用法 知道Pandas中求和、计数、相关性值、最小、最大、平均数、标准偏差、分位数的函数使用 1 排序函数 导包并加载数据集 import pandas as pd ​ # 加载csv数据, 返回df对…

htb-linux-7-cronos-53-dns-nslookup-axfr

nmap DNS服务的枚举 靶机开启了53端口域名服务 枚举DNS服务 - nslookup 使用nslookup工具,设置DNS服务器的地址为10.10.10.13,需要查询10.10.10.13绑定的域名 枚举DNS服务 - axfr 使用dig工具来做区域传输(Zone Transfer)的查询:dig ax…

SpringBoot+Vue免税商品优选购物商城(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 用户商家 功能截图