【机器学习】042_迁移学习

一、概述、定义

目的:

迁移学习的目的是将某个领域或任务上学习到的模式、知识应用到不同但相关的领域里,获取更多数据,而不必投入许多时间人力来进行数据的标注。

举例:

已经会下中国象棋,就可以类比着来学习国际象棋;已经会编写Java程序,就可以类比着来学习C#;已经学会英语,就可以类比着来学习法语;已经学会了骑自行车,就可以类比学习骑摩托车等等。

定义:

Transfer Learning Definition:
Ability of a system to recognize and apply knowledge and skills learned in previous domains/tasks to novel domains/tasks.

通俗地讲,迁移学习就是运用已有的知识、模型来学习新的知识,构建新模型。其核心是找到已有知识与新知识的相似性与关联性。

重要概念:

域:某个时刻的某个特定领域——例如书本评论、电影评论;

任务:所要完成的任务与实现的功能——例如情感分析、实体识别;

给定源域 D_s 和学习任务 T_s、目标域 D_t 和学习任务 T_t,迁移学习的目的是获取源域 D_s 和学习任务 T_s 中知识来帮助提升目标域 D_t 中预测函数 f_t(.) 的学习。其中 D_s\neq D_t 或者 T_s\neq T_t

二、迁移学习的分类

1. 基于实例的迁移

研究如何从源域中找出对目标领域训练有作用的实例。

例:在对源域的有标记数据实例中进行有效的权重分配,让源域的实例分布接近目标域的实例分布,从而在目标领域中建立一个分类精度较高并且可靠的学习模型。

迁移学习中,源域与目标域的数据分布不一致,故源域中并非所有有标记的数据实例都对目标域有作用。基于实例的迁移有现有的一些迁移算法,来对源域的有效数据迁移到目标域中。

TrAdaBoost算法就是典型基于实例的迁移。

TrAdaBoost算法的工作机制如下:

  1. 初始化:算法开始时,对源域和目标域数据的权重进行初始化。通常,目标域数据的初始权重会高于源域数据。

  2. 迭代更新:在每一轮中,算法使用当前的权重来训练一个弱分类器。分类器首先在目标域上测试,然后在两个域上进行误差评估。

  3. 权重调整:算法根据分类器的表现来调整数据点的权重。对于源域数据,分类正确的数据点权重会增加(使得算法在后续迭代中更少地关注这些点),而分类错误的数据点权重会减少。这与传统的AdaBoost相反,其核心思想是减少源域中对目标域帮助不大或有害的数据点的权重。对于目标域数据,权重更新与传统AdaBoost相同,即增加被错误分类数据点的权重。

  4. 终止条件:算法会在达到预定的迭代次数后停止,或者当目标域上的误差不再显著减少时停止。

  5. 组合弱分类器:最后,算法结合所有的弱分类器,形成一个强分类器。每个弱分类器根据其在目标域上的性能加权,性能越好的分类器影响越大。

通过这种方式,能够有效利用源域数据来帮助构建在目标域上表现良好的分类器,即便源域和目标域的数据分布有所不同。

2. 基于特征的迁移

①特征选择

找出源域和目标域之间共同的特征表示,找出特征之间对应的不同相关性,利用这些特征进行知识迁移。

②特征映射

将源域和目标域的数据从原始特征空间映射到新的特征空间之中。

源域的特征值经过一系列变换,对应到目标域的特征值,经过一一映射,使得源域数据与目标域的数据分布相同,从而在新的空间中,更好地利用源域已有的标记数据样本进行分类训练。最终对目标域的数据进行分类测试。

3. 基于共享参数的迁移

找到源域与目标域空间模型之间的共同参数或先验分布。

前提:学习任务的每个相关模型都会共享一些相同的参数或者先验分布。

三、迁移学习使用场景

1. 有大量数据样本,但大部分样本无标注

要想继续增加更多数据标注,需要付出很多成本。利用迁移学习思想,可以寻找一些和目标数据相似而且已经有标注的数据,利用数据之间的相似性对知识进行迁移,提高对目标数据的预测效果或者标注精度。

2. 帮助解决算法的冷启动问题

在跨域推荐系统将用户偏好模型从现有域(如图书推荐领域)迁移到一个新域(如电影推荐领域)中。

3. 想要获取具有更强泛化能力,但是数据样本较少. 许多应用场景数据量小

高质量有标签数据总是供不应求。传统的机器学习算法常常因为数据量小而产生过拟合问题,因而无法很好地泛化到新的场景中。

4. 数据来自不同的分布时

数据分布不仅会随着时间和空间而变化,也会随着不同的情况而变化,我们可能无法使用相同的数据分布来对待新的训练数据。已经训练完成的模型需要在使用前进行调整,在不同于训练数据的新场景下。

四、迁移学习的示例

例:假设现在要构建一个对手写数字进行识别的模型,但目前已有的已标注数据较少,如何不花费大量时间精力标注数据也能获得一个效果较好的模型?

方法:借助迁移学习,利用其它模型来辅助实现该任务。

假设有一个已经训练好的可以识别猫、狗、汽车和人的图像识别模型。复制此神经网络,在其中插入新的参数,那么对于最后的输出层,可以消除输出层并用一个更小的输出层(10个)替换它。

可以做的是使用前几层隐藏层的参数(实际上是除输出层之外所有隐藏层),然后采用两种方法训练新的网络:

①将五个新的输出层参数作为顶部的值,固定它们然后使用随机梯度下降或Adam算法更新参数,来降低识别数字0到9的成本函数。

②更新并训练网络中的所有参数,但前几层参数可以借助之前的神经网络。

首先在大数据集上进行训练,然后再在较小的数据集上进一步调整参数,这就是监督预训练。

然后进行微调,在其中获取已初始化或从监督预训练中获得的参数,进一步运行梯度下降微调权重以适应对应新的学习任务的特定应用参数。

原理:如果同样是图像识别的神经网络,那么在前几层——检测图像边缘、检测角点、检测通用形状、基本曲线等等都是相同的步骤,因而可以通用进行。

故而,可以下载、借助他人预训练的神经网络来根据自己的数据进一步训练、微调神经网络以达成相应目的。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell脚本实战之mysql-物理备份实现周内备份策略

一.shell脚本要求 # 数据库备份脚本方式: 物理备份# 工具:xtrabackup过程# 需求1:不允许有任何的安在脚本中,# 需求2:在脚本中,不允许有任何的交互式代码容,使用日志记录# 需求3:在脚本中,不允许有任何输出# 需求4:每周为一个循环…

SSD数据在写入NAND之前为何要随机化?-part2

接part1介绍: 如何达到这个目的?业内常用的是对写入数据的数据进行随机化处理,这部分主要在SSD控制器中通过硬件实现。 上图b/c:在控制器芯片通过硬件方式实现随机化的读写流程,这个也是业内通常做法。随机化处理是在写…

JVM虚拟机:命令行查看JVM垃圾回收器的执行信息

在eclipse中打开命令行窗口 window->show view->Terminal 这样就打开了Terminal窗口,效果如下所示: java -XX:PrintCommandLineFlags -version 这个命令可以查看一些配置信息,其中最重要的配置信息就是,当前使用的G1回收器…

机器学习算法性能评估常用指标总结

考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive&#xff0…

Java到底是什么?学了我们能做什么?

一、Java是什么? Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实…

软件设计中如何画各类图之九活动图:系统行为与流程的可视化描述

目录 1 前言2 活动图的符号及说明2.1 开始和结束节点2.2 活动(Action)2.3 控制流(Control Flow)2.4 决策节点(Decision Node)2.5 合并节点(Merge Node) 3 画活动图的步骤3.1 确定活动…

Vue3拖拽功能【VueDraggablePlus】

一、介绍 由于 Sortablejs 的 vue3 组件一直没有更新,已经跟 vue3 严重脱节,所以诞生了这个项目,这个组件是基于 Sortablejs 的,所以如果你想了解更多关于 Sortablejs 的信息,可以查看Sortablejs 官网。VueDraggableP…

WIFI直连(Wi-Fi P2P)

一、概述 Wifi peer-to-peer(也称Wifi-Direct)是Wifi联盟推出的一项基于原来WIfi技术的可以让设备与设备间直接连接的技术,使用户不需要借助局域网或者AP(Access Point)就可以进行一对一或一对多通信。这种技术的应用…

微表情检测(三)----基于光流特征的微表情检测

Micro-expression spotting based on optical flow features 基于光流特征的微表情检测 Abstract 本文提出了一种高精度和可解释性的自动微表情检测方法。首先,我们设计了基于鼻尖位置的图像对齐方法,以消除由头部晃动引起的全局位移。其次&#xff0…

C语言----文件操作(一)

一:C语言中文件的概念 对于文件想必大家都很熟悉,无论在windows上还是Linux中,我们用文件去存储资料,记录笔记,常见的如txt文件,word文档,log文件等。那么,在C语言中文件是什么样的存…

【Hung-Yi Lee】强化学习笔记

文章目录 What is RLPolicy GradientPolicy Gradient实际是怎么做的On-policy v.s. Off-policyExploration配音大师 Actor-Critic训练value function的方式网络设计DQN Reward ShapingNo Reward:Learning from Demonstration What is RL 定义一个策略网络&#xff0…

SOA 的关键技术

SOA 伴随着无处不在的标准,为企业的现有资产或投资带来了更好的复用性。SOA 能够在最新的和现有的系统之上创建应用,借助现有的应用产生新的服务,为企业提供更好的灵活性来构建系统和业务流程。SOA 是一种全新的架构,为了支持其各…