迁移学习之基本概念

news2024/9/23 13:29:50

迁移学习

1、通俗定义

  • 迁移学习是一种学习的思想和模式

  • 迁移学习作为机器学习的一个重要分支,侧重于将已经学习过的知识迁移应用于新的问题中

  • 迁移学习的核心问题是,找到新问题和原问题之间的相似性,才可以顺利地实现知识地迁移

  • 定义:迁移学习,是指利用数据、任务或者是模型之间地相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。

2、为什么要迁移学习

1、大数据与少标记之间的矛盾

我们正处在一个大数据时代。每天、每时,社交网络、智能交通、视频监控、行业物流等领域都产生着海量的图像、文本、语音、语言等各类数据。然而,这些大数据也带来了严重的问题:它们总是缺乏完善的数据标注。传统有监督机器学习模型的训练和更新均依赖于数据的标注,这些数据往往是很初级的原始形态,很少有数据被加以正确的人工标注。

如何解决:只凭借少量的标注数据,无法准确地训练高可用度的模型,为解决这个问题,可以参赛用一些与目标数据相似的有标注的数据,从而利用这些数据来构建模型,增加我们目标数据的标注。

2、大数据与弱计算之间的矛盾

大数据需要强计算能力的设备来进行存储和计算,但是普通的研究人员从头训练一个普通的BERT模型,也是仅拥有一般硬件设备的研究人员所无法承受的。

如何解决:迁移学习提供了一种基于大数据“预训练”的模型在自己的特定数据集上进行“微调”的技术,大大降低了训练难度和成本,并且可以保证在自己的任务上取得优良的表现。

3、普适化模型与个性化需求之间的矛盾

机器学习的目标是构建一个尽可能通用的模型使其能很好地适应不同用户、不同设备、不同环境、不同需求。基于此愿望,我们构建了多种多样的普适化模型服务于现实应用。然而,人们的个性化需求五花八门,短期内根本无法用一个通用的模型去满足。

如何解决:为了解决个性化需求的挑战,我们利用迁移学习的思想,进行自适应的学习。考录到不同用户之间的相似性和差异性,我们对普适化模型进行灵活的调整,以便完成我们的任务。

4、特定应用的需求

为了满足特定领域应用的需求,我们可以利用上述介绍过的手段(微调),从数据和模型方法上进行迁移学习。

总结

矛盾传统机器学习迁移学习
大数据与少标注增加人工标注,但是昂贵且耗时数据的迁移标注
大数据与弱计算只能依赖强大计算能力,但是受众少模型迁移
普适化模型与个性哈需求通用模型无法满足个性化需求模型自适应调整
特定应用冷启动问题无法解决数据迁移

3、研究领域

在这里插入图片描述

1、按目标域标签分类

类比如机器学习。按照目标领域有无标签,迁移学习可以分为以下三个大类:

1、监督迁移学习(Supervised Transfer Learning)

2、半监督迁移学习(Semi-Supervised Transfer Learning)

3、无监督迁移学习(UnSupervised Transfer Learning)

2、按照学习方法分类

1、基于实例的迁移学习方法(Instance-based Transfer Learning ):于实例的迁移学习方法通过权重重用对源域和目标域的样例进行迁移。通过给不同的样本赋予不同权重,例如给相似的样本更高的权重来完成迁移。

2、基于模型的迁移学习方法(Model-based Transfer Learning ):通过对特征进行变换来完成迁移。

3、基于特征的迁移学习方法(Feature-based Transfer Learning ):通过在不同模型间进行参数的迁移来进行迁移学习。

4、基于关系的迁移学习方法(Relation-based Transfer Learning ):通过挖掘和利用领域和实体间的关系来进行迁移学习。

此分类按照实例、特征、模型的机器学习逻辑进行区分。另外,不同领域之间的高层关系也可以被用来进行分类。

3、按特征空间分类

1、同构迁移学习(Homogeneous Transfer Learnin)

2、异构迁移学习(Heterogeneous Transfer Learning)

此分类相对直观:如果特征语义和维度都相同则为同构;反之则为异构。例如,不同图片的迁移就可以认为是同构的;而图片到文本的迁移则是异构的。

4、按离线与在线形成分类

1、离线迁移学习(Offline Transfer Learning)

2、在线迁移学习(Online Transfer Learning)

目前,绝大多数的迁移学习方法均采用了离线方式,即源域和目标域均给定、迁移一次即可。这种方式的缺点是显而易见的:算法无法对新加入的数据进行学习,模型也无法更新。与之相对的是在线的方式:随着数据的动态加入,迁移学习算法也可以不断更新。

4、基本概念

1、领域

是进行学习的主体。领域主要由两部分构成:数据和生成这些数据的概率分布。通常用D来表示一个domain,用大写P来表示一个概率分布。知识从源领域传递到目标领域,就完成了迁移。

源领域(Source Domain):源领域是有知识、有大量数据标注的领域,是我们迁移的对象。

目标领域(Target Domain):目标领域是我们最终要赋予知识、赋予标注的对象。

领域上的数据,通常用小写粗体x来表示,也是向量的表示形式。用大写的黑体X来表示一个领域的数据,这是一种矩阵的形式。我们用大写花体X来表示数据的特征空间。通常使用小写下标s和t分别指代两个领域。结合领域的表示方式,则:Ds表示源领域,Dt表示目标领域。

2、任务

任务(Task):是学习的目标。任务主要由两部分组成:标签和标签对应的函数。通常使用花体Y来表示一个标签空间,用f()来表示一个学习函数。对应的是,源领域和目标领域的类别空间分别表示为Ys,Yt,我们用小写 y s 和 y t y_s和y_t ysyt分别表示源领域和目标领域的实际类别 y s ∈ Y s , y t ∈ Y t y_s{\in}Y_s,y_t{\in}Y_t ysYs,ytYt

3、迁移学习

给定一个有标签的源域 D t = { X i , y i } i = 1 n + m D_t={\{X_i,y_i}\}^{n+m}_{i=1} Dt={Xi,yi}i=1n+m和一个无标签的目标域 D t = { X j } j = n + 1 n + m D_t={\{X_j}\}^{n+m}_{j=n+1} Dt={Xj}j=n+1n+m。这两个领域数据分布 P ( X s ) 和 P ( X t ) P(X_s)和P(X_t) P(Xs)P(Xt)不同,即 P ( X s ) ≠ P ( X t ) P(X_s){\neq}P(X_t) P(Xs)=P(Xt)。迁移学习的目的就是借助 D s D_s Ds的知识,来学习目标域 D t D_t Dt的知识(标签)。

进一步考虑,则是:

(1)特征空间的异同:即 X s 和 X t X_s和X_t XsXt是否相等

(2)类别空间的异同:即 y s 和 y t y_s和y_t ysyt是否相等

(3)条件概率分布的异同:即 Q s ( y s ∣ x s ) 和 Q_s(y_s|x_s)和 Qs(ysxs)Q_t(y_t|x_t)$是否相等

5、迁移学习方法

1、分布差异的度量

迁移学习的核心是找到源域和目标域之间的相似性,并加以合理地利用。所谓的相似性是普遍的:不同人之间的身体结构是相似的;自行车和摩托车的骑行方式是相似的;羽毛球和网球的打球方式是相似的。而这种相似也可以理解成:以不变应万变。

有了这种相似性的思想后,接下来需要度量和利用这种相似性。度量工作的目标有两个:一是度量两个领域的相似性,不仅要定性地告诉我们它们是否相似,还要定量地给出相似程度;二是以度量为准则,通过我们所要采用的学习手段,增大两个领域之间的相似性,以完成迁移学习。

一句话总结:相似性是核心,度量准则是重要手段。那么这种相似性应该如何刻画?从迁移学习的问题定义出发,答案呼之欲出:通过对源域和目标域不同的概率分布建模来刻画二者的相似性

2、边缘分布、条件分布、联合分布

当目标域是图3.1所示的目标域I时,源域和目标域数据整体存在较大的分布差异(即整体不相似),因此,边缘分布的迁移更重要;而当目标域是图3.1所示的目标域时,源域和目标域整体有较高的相似性,差异主要体现在个体差异(即整体相似、具体到每个类不太相似),因此,应该优先考虑条件概率分布上的差异。

在这里插入图片描述

概率学的基本知识告诉我们,联合概率和边缘概率、条件概率之间具有如下关系:P(x,y)=P(x)P(y|x)=P(y)P(x|y)

根据公式中描述的边缘概率、条件概率、联合概率的性质,按照由特殊到一般、由易到难的逻辑,我们可以大致将迁移学习的方法进行如下分类。

1、边缘分布自适应(Marginal Distribution Adaptation,MDA)

2、条件分布自适应(Conditional Distribution Adaptation,CDA)

3、联合分布自适应(JointDistribution Adaptation,JDA)

4、动态分布自适应(Dynamic Distribution Adaptation,DDA)

边缘分布:边缘分布自适应假设源域和目标域的条件概率分布可能相似,但边缘概率分布(即整体数据分布)不同。因此,它专注于调整整个数据空间的分布,使得源域和目标域的整体数据分布更加接近。例如,在跨领域推荐系统中,用户的行为数据在不同领域(如电商和社交媒体)中可能呈现出完全不同的分布特性,此时边缘分布自适应可以通过学习一个特征变换来减小这种差异。

边缘分布自适应方法用源域和目标域之间的边缘分布距离来近似二者之间的联合分布距离:

D ( P s ( x , y ) , P t ( x , y ) ) ≈ D ( P S ( x ) , P t ( x ) ) D(P_s(x,y),P_t(x,y)){\approx}D(P_S(x),P_t(x)) D(Ps(x,y),Pt(x,y))D(PS(x),Pt(x))

条件分布:条件分布自适应假设源域和目标域的边缘概率分布(即整体数据分布)可能相似,但条件概率分布(即给定某个特征下标签的分布)不同。因此,它专注于调整特征空间中的条件分布,使得在相同特征下,源域和目标域的标签分布更加接近。例如,在图像分类中,如果源域和目标域的图像在整体风格上相似,但某些类别的图像在细节上存在差异,那么条件分布自适应可以帮助提高分类精度。

条件分布自适应方法用源域和目标域之间的条件分布距离来近似二者之间的联合分布距离,即

D ( P s ( x , y ) , P t ( x , y ) ) ≈ D ( P S ( y ∣ x ) , P t ( x ∣ y ) ) D(P_s(x,y),P_t(x,y)){\approx}D(P_S(y|x),P_t(x|y)) D(Ps(x,y),Pt(x,y))D(PS(yx),Pt(xy))

联合分布:联合分布自适应方法同做出了更一般的假设,其目标是减小源域和目标域的联合概率分布的距离,从而完成迁移学习。特别地,由于联合分布无法直接进行度量,因此,联合分布自适应方法用源域和目标域之间的边缘分布距离和条件分布距离之和来近似二者之间的联合分布距离。

D ( P s ( x , y ) , P t ( x , y ) ) ≈ D ( P S ( x ) , P t ( x ) ) + D ( P S ( y ∣ x ) , P t ( x ∣ y ) ) D(P_s(x,y),P_t(x,y)){\approx}D(P_S(x),P_t(x))+D(P_S(y|x),P_t(x|y)) D(Ps(x,y),Pt(x,y))D(PS(x),Pt(x))+D(PS(yx),Pt(xy))

动态分布:动态分布自适应方法通过采用一种平衡因子μ来动态调整两个分布之间的距离:

D ( P s ( x , y ) , P t ( x , y ) ) ≈ ( 1 − u ) D ( P S ( x ) , P t ( x ) ) + u D ( P S ( y ∣ x ) , P t ( x ∣ y ) ) D(P_s(x,y),P_t(x,y)){\approx}(1-u)D(P_S(x),P_t(x))+uD(P_S(y|x),P_t(x|y)) D(Ps(x,y),Pt(x,y))(1u)D(PS(x),Pt(x))+uD(PS(yx),Pt(xy))

其中μ∈[0,1]表示平衡因子。当μ→0,表示源域和目标域数据本身存在较大的差异性,因此边缘分布适配更重要;当μ→1时,表示源域和目标域数据集有较高的相似性,因此条件分布适配更重要。

3、分布差异的统一表征

在这里插入图片描述

从表中可以清晰地看出,随着假设的不同,问题退化形式亦不同。从边缘分布自适应到最近的动态分布自适应,研究者们对于迁移学习中的概率分布差异的度量的认知和探索也在不断发展。显然,上述表格表明,动态分布自适应的问题退化形式更为一般,通过改变μ的值,动态分布自适应可以退化为其他方法。

(1)令μ=0,则退化为边缘分布自适应方法。

(2)令μ=1,则退化为条件分布自适应方法。

(3)令μ=0.5,则退化为联合分布自适应方法。

4、迁移学习方法统一表征

在迁移学习问题中,期望迁移学习算法可以在目标域没有标签的情况下还可借助于源域学习到目标域上的一个最优的模型。在此过程中运用一些手段来减小源域和目标域的数据分布差异。因此,从SRM准则出发将迁移学习统一表征为下面的形式。

迁移学习算法统一框架在迁移学习中给定一个 D t = { X i , y i } i = 1 N s D_t={\{X_i,y_i}\}^{N_s}_{i=1} Dt={Xi,yi}i=1Ns和一个无标签的目标域 D t = { X j } j = 1 N t D_t={\{X_j}\}^{N_t}_{j=1} Dt={Xj}j=1Nt,两个领域的联合概率分布不同,即 P s ( x , y ) ≠ P t ( x , y ) P_s(x,y) ≠ P_t(x,y) Ps(x,y)=Pt(x,y)。迁移学习方法的统一表征可以被表示为

在这里插入图片描述

其中:

  • v ∈ R N v{\in}R^N vRN为源域样本的权重,v¡∈[0,1]。 N s N_s Ns为源域样本的数量。
  • T为作用于源域和目标域上的特征变换函数。
  • 为方便理解,采用 1 N s \frac{1}{N_s} Ns1来计算平均值。显式引入样本权重v后,平均值亦需更新为加权平均值。具体计算方式并不统一,需要根据问题来相应处理。

R ( T ( D s ) , T ( D t ) ) R(T(Ds),T(Dt)) R(T(Ds),T(Dt)) 来代替SRM中的正则化项R(f)。此替代并非等价,只是形式上的替代。事实上,由于正则化项的广泛应用,通常我们可以在模型的目标函数中加入特定的正则化项。为了强调迁移学习的特殊性,为了叙述方便,将此项称为迁移正则化项(TransferRegularization )。

通过对公式 中 v i v_i vi和 T取不同的情况,对迁移学习的方法进行表征,由此也派生出了三大类迁移学习方法。

1)样本权重迁移法

核心思想:通过调整源域样本的权重,使得在迁移过程中,与目标域更相似的源域样本对目标域模型的训练产生更大的影响。

应用场景:当源域和目标域之间存在一定程度的相似性,但直接迁移可能因样本分布差异而导致性能下降时,样本权重迁移法能够有效地缓解这一问题。

2)特征变换迁移法

核心思想:学习一个特征变换 T,使得变换后的源域和目标域数据在特征空间中更加接近,从而减小它们之间的差异。

分类:特征变换迁移法可以进一步分为统计特征变换和几何特征变换。统计特征变换显式地最小化源域和目标域的分布差异,而几何特征变换则从几何分布的角度出发,隐式地实现这一目标。

应用场景:当源域和目标域之间的数据分布差异较大时,特征变换迁移法能够有效地将源域的知识迁移到目标域中。

3)模型预训练迁移法

核心思想:首先在一个大型数据集(源域)上预训练一个模型,然后将该模型作为初始点,在目标域的数据集上进行微调。

应用场景:在深度学习领域,预训练的模型通常已经包含了丰富的先验知识,通过微调这些模型可以快速适应新的任务(目标域),而无需从头开始训练。

其中最为常用的是模型预训练方法。在迁移学习中,常见的预训练模型包括BERT、GPT、ResNet等。这些模型在各自的领域(如自然语言处理、计算机视觉)内取得了显著的成果,并被广泛应用于各种具体任务中。

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

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

相关文章

运行pytorch报异常处理

一、问题现象及初步定位: 找不到指定的模块。 Error loading "D:\software\python3\Lib\site-packages\torch\lib\fbgemm.dll 此处缺少.dll文件,首先下载文件依赖分析工具 Dependencies https://github.com/lucasg/Dependencies/tree/v1.11.1 之后下…

leetcode169. 多数元素,摩尔投票法附证明

leetcode169. 多数元素 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输…

C# winform 三层架构 增删改查 修改数据(修改篇)

ss一.留言 本专栏三层架构已经更新了 添加 登录 显示&#xff0c;还差修改以及删除&#xff0c;本篇更新修改&#xff0c;主要操作为点击修改某一条数据&#xff0c;然后跳转页面进行修改。 二.展示 我们先看DAL代码 /// <summary>/// 修改/// </summary>/// &l…

【RTOS面试题】什么是抢占?抢占的原理、抢占的好处、抢占有什么局限性?

&#x1f48c; 所属专栏&#xff1a;【RTOS-操作系统-面试题】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xf…

大语言模型的模型量化(INT8/INT4)技术

目录 一、LLM.in8 的量化方案 1.1 模型量化的动机和原理1.2 LLM.int8 量化的精度和性能1.3 LLM.int8 量化的实践 二、SmoothQuant 量化方案 2.1 SmoothQuant 的基本原理2.2 SmoothQuant 的实践 三、GPTQ 量化训练方案 3.1 GPTQ 的基本原理3.2 GPTQ 的实践 参考资料 一、LLM.i…

让对话AI帮助你做程序架构设计,以及解决你的疑问

我想问下对话AI,本文采取的是chatgpt免费版 我问&#xff1a; 你说程序的设计&#xff0c;前后端分离的BS架构。比如工人基础档案1000条记录&#xff0c;工程项目基础档案10条记录&#xff0c;其他相关这两个基础档案的具体功能&#xff0c;比如打卡记录&#xff0c;宿舍记录&…

SD-WAN解决方案功能概述

SD-WAN&#xff08;软件定义广域网&#xff09;是一种前沿的网络技术&#xff0c;旨在为企业提供灵活、智能且高效的广域网连接。SD-WAN的主要功能可以分为四大类&#xff1a;路由、安全性、性能优化和管理控制。 路由功能 路由功能是SD-WAN解决方案的核心部分之一。传统的广域…

B站宋红康JAVA基础视频教程个人笔记chapter05

1.一维数组的定义方式 // 方式一(静态初始化) double[] prices; prices new double[]{20, 32, 43};// 方式二:&#xff08;动态初始化&#xff09; String[] foods; foods new String[4]; // 内部声明数组的长度 // String foods new String[4];// 其他方式 int[] prices …

【字符串哈希】

题目 代码 #include<bits/stdc.h> typedef unsigned long long ULL; const int N 1e510; const int P 131; char str[N]; ULL h[N], p[N]; ULL get_hash(int l, int r) {return h[r] - h[l-1] * p[r-l1]; } int n, m; int main() { scanf("%d%d", &n,…

Scrapy | 手动请求发送实现的数据爬取-段子王网站

文章目录 概要爬取流程代码技术细节format%回调函数 小结 概要 爬取段子王网站的标题和内容 核心 Scrapy的手动请求发送实现的数据爬取yield scrapy.Request(url,callback):GET-caL1back指宽解析函数&#xff0c;用于解析数据yield scrapy.ForRequest(url,callback,formdata):…

科普课堂走起 | 什么是网络安全和数据安全?

网络安全和数据安全是现代数字世界中非常重要的两个概念。让我们来详细了解一下这两个领域。 1.网络安全&#xff08;Network Security&#xff09; 网络安全是指保护网络系统免受未经授权的访问、攻击、破坏或滥用的一系列技术和过程。它旨在确保信息的机密性、完整性和可用…

jmeter-beanshell学习16-自定义函数

之前写了一个从文件获取指定数据&#xff0c;用的时候发现不太好用&#xff0c;写了一大段&#xff0c;只能取出一个数&#xff0c;再想取另一个数&#xff0c;再粘一大段。太不好看了&#xff0c;就想到了函数。查了一下确实可以写。 public int test(a,b){return ab; } ctes…

磁盘无法访问的危机与解救:数之寻软件的数据恢复之旅

在数字时代&#xff0c;磁盘作为数据存储的核心&#xff0c;承载着我们的工作文档、珍贵照片、个人视频等无价之宝。然而&#xff0c;当您试图访问某个磁盘时&#xff0c;却遭遇了“磁盘无法访问”的提示&#xff0c;这无疑是一场突如其来的数据危机。本文将深入探讨磁盘无法访…

浮毛季到了,拒绝猫咪变成“蒲公英”,宠物空气净化器去除浮毛

同为铲屎官&#xff0c;面对家中无处不在的猫毛挑战&#xff0c;想必你也深感头疼。衣物、沙发乃至地毯上的明显猫毛尚可通过吸尘器或粘毛器轻松应对&#xff0c;但那些细微漂浮的毛发却成了难以捉摸的“小恶魔”&#xff0c;普通的空气净化器往往力不从心。对于浮毛&#xff0…

平安城市行业无人机解决方案(网格化巡逻场景应用)

场景痛点&#xff1a; 缺少飞手&#xff0c;导致无人机应用频次偏低 无人机需要人工换电池、维护及存储 日常巡逻 | 无人机补盲巡逻 大疆航点飞行功能&#xff0c;重复性任务只飞一遍&#xff0c;后续重复调用 无人机航点规划&#xff0c;一次设置&#xff0c;后续重复调用…

Linux知识复习第3期

目录 网络管理 &#xff08;1&#xff09;查看IP信息&#xff1a; &#xff08;2&#xff09;配置临时生效的网络连接 &#xff08;3&#xff09;修改配置文件配置网络连接&#xff08;network服务&#xff09; &#xff08;4&#xff09;shell脚本批量IP设置 网络…

HarmonyOS Flex布局

前置知识&#xff1a; 一次开发&#xff0c;多端部署:一套代码工程&#xff0c;一次开发上架&#xff0c;多端按需部署。支撑开发者快速高效的开发支持多种终端设备形态的应用&#xff0c;实现对不同设备兼容的同时&#xff0c;提供跨设备的流转、迁移和协同的分布式体验自适应…

Protobuf:原理、用法与 C++ 实践

在当今的软件开发领域&#xff0c;高效的数据序列化和通信协议是构建高性能、可扩展系统的关键。Protobuf&#xff08;Protocol Buffers&#xff09;作为一种流行的开源序列化框架&#xff0c;正因其出色的性能、简洁的语法和跨语言支持而备受青睐。本文将深入探讨 Protobuf 的…

织梦cms站长导航网站源码

介绍&#xff1a; 源码仅供技术参考严禁商业用途&#xff01;版权归原作者所有&#xff01; 源码上传 到服务器 导航源码安装&#xff1a;域名/install/ 后台信息 后台地址&#xff1a;域名/dede 后台账号&#xff1a;admin 后台密码&#xff1a;7206876 代码下载&#x…

【代码随想录】区间和——前缀和方法

本博文为《代码随想录》学习笔记&#xff0c;原文链接&#xff1a;代码随想录 题目 原题链接&#xff1a;58. 区间和&#xff08;第九期模拟笔试&#xff09; 题目描述 给定一个整数数组 Array&#xff0c;请计算该数组在每个指定区间内元素的总和。 输入描述 第一行输入为…