相关文章推荐
呐喊的煎鸡蛋  ·  迁移学习概述(Transfer ...·  7 月前    · 
呐喊的煎鸡蛋  ·  什么是迁移学习(Transfer ...·  7 月前    · 
呐喊的煎鸡蛋  ·  什么是迁移学习(Transfer ...·  7 月前    · 
呐喊的煎鸡蛋  ·  迁移学习| 机器之心·  7 月前    · 
呐喊的煎鸡蛋  ·  【深度学习系列】迁移学习Transfer ...·  7 月前    · 
小百科  ›  迁移学习概述(Transfer Learning)
迁移学习 (Transfer Learning) 机器学习 深度学习 domain 学习迁移
呐喊的煎鸡蛋
7 月前
  • 迁移学习概述
    • 背景
    • 定义及分类
    • 关键点
  • 基于实例的迁移
  • 基于特征的迁移
    • 特征选择
    • 特征映射
  • 基于共享参数的迁移
  • 深度学习和迁移学习结合
    • Pre-training+Fine-tuning
    • DANN (Domain-Adversarial Neural Network)

    迁移学习概述

    随着越来越多的机器学习应用场景的出现,而现有表现比较好的监督学习需要大量的标注数据,标注数据是一项枯燥无味且花费巨大的任务,所以迁移学习受到越来越多的关注。

    传统机器学习 (主要指监督学习)

    • 基于同分布假设
    • 需要大量标注数据

    然而实际使用过程中不同数据集可能存在一些问题,比如

    • 数据分布差异

    • 标注数据过期
      训练数据过期,也就是好不容易标定的数据要被丢弃,有些应用中数据是分布随着时间推移会有变化

    如何充分利用之前标注好的数据(废物利用),同时又保证在新的任务上的模型精度?
    基于这样的问题,所以就有了对于 迁移学习 的研究

    定义及分类

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

    目标
    将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中。

    主要思想
    从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。

    人在实际生活中有很多迁移学习,比如学会骑自行车,就比较容易学摩托车,学会了C语言,在学一些其它编程语言会简单很多。那么机器是否能够像人类一样举一反三呢?

    在这里插入图片描述
    上图是一个商品评论情感分析的例子,图中包含两个不同的产品领域:books 图书领域和 furniture 家具领域;在图书领域,通常用“broad”、“quality fiction”等词汇来表达正面情感,而在家具领域中却由“sharp”、“light weight”等词汇来表达正面情感。可见此任务中,不同领域的不同情感词多数不发生重叠、存在领域独享词、且词汇在不同领域出现的频率显著不同,因此会导致领域间的概率分布失配问题。

    迁移学习的形式定义及一种分类方式
    在这里插入图片描述

    迁移学习里有两个非常重要的概念

    • 域(Domain)
    • 任务(Task)

    域 可以理解为某个时刻的某个特定领域,比如书本评论和电视剧评论可以看作是两个不同的domain
    任务 就是要做的事情,比如情感分析和实体识别就是两个不同的task

    1. 研究可以用哪些知识在不同的领域或者任务中进行迁移学习,即不同领域之间有哪些共有知识可以迁移。
    2. 研究在找到了迁移对象之后,针对具体问题所采用哪种迁移学习的特定算法,即如何设计出合适的算法来提取和迁移共有知识。
    3. 研究什么情况下适合迁移,迁移技巧是否适合具体应用,其中涉及到负迁移的问题。

    当领域间的概率分布差异很大时,上述假设通常难以成立,这会导致严重的负迁移问题。
    负迁移是旧知识对新知识学习的阻碍作用,比如学习了三轮车之后对骑自行车的影响,和学习汉语拼音对学英文字母的影响
    研究如何利用正迁移,避免负迁移

    基于实例的迁移

    基于实例的迁移学习研究的是,如何从源领域中挑选出,对目标领域的训练有用的实例,比如对源领域的有标记数据实例进行有效的权重分配,让源域实例分布接近目标域的实例分布,从而在目标领域中建立一个分类精度较高的、可靠地学习模型。
    因为,迁移学习中源领域与目标领域的数据分布是不一致,所以源领域中所有有标记的数据实例不一定都对目标领域有用。戴文渊等人提出的TrAdaBoost算法就是典型的基于实例的迁移。
    在这里插入图片描述

    基于特征的迁移

    基于特征选择的迁移学习算法,关注的是如何找出源领域与目标领域之间共同的特征表示,然后利用这些特征进行知识迁移。

    基于特征映射的迁移学习算法,关注的是如何将源领域和目标领域的数据从原始特征空间映射到新的特征空间中去。
    这样,在该空间中,源领域数据与的目标领域的数据分布相同,从而可以在新的空间中,更好地利用源领域已有的有标记数据样本进行分类训练,最终对目标领域的数据进行分类测试。

    基于共享参数的迁移

    基于共享参数的迁移研究的是如何找到源数据和目标数据的空间模型之间的共同参数或者先验分布,从而可以通过进一步处理,达到知识迁移的目的,假设前提是,学习任务中的的每个相关模型会共享一些相同的参数或者先验分布。

    深度学习和迁移学习结合

    深度学习需要大量的高质量标注数据,Pre-training + fine-tuning 是现在深度学习中一个非常流行的trick,尤其是以图像领域为代表,很多时候会选择预训练的ImageNet对模型进行初始化。

    下面将主要通过一些paper对深度学习中的迁移学习应用进行探讨

    Pre-training+Fine-tuning

    2014年Bengio等人在NIPS上发表论文 How transferable are features in deep neural networks,研究深度学习中各个layer特征的可迁移性(或者说通用性)
    文章中进行了如下图所示的实验,有四种模型

    • Domain A上的基本模型BaseA
    • Domain B上的基本模型BaseB
    • Domain B上前n层使用BaseB的参数初始化(后续有frozen和fine-tuning两种方式)
    • Domain B上前n层使用BaseA的参数初始化(后续有frozen和fine-tuning两种方式)

    将深度学习应用在图像处理领域中时,会观察到第一层(first-layer)中提取的features基本上是类似于Gabor滤波器(Gabor filters)和色彩斑点(color blobs)之类的。
    通常情况下第一层与具体的图像数据集关系不是特别大,而网络的最后一层则是与选定的数据集及其任务目标紧密相关的;文章中将第一层feature称之为一般(general)特征,最后一层称之为特定(specific)特征

    • 特征迁移使得模型的泛化性能有所提升,即使目标数据集非常大的时候也是如此。
    • 随着参数被固定的层数n的增长,两个相似度小的任务之间的transferability gap的增长速度比两个相似度大的两个任务之间的transferability gap增长更快 两个数据集越不相似特征迁移的效果就越差
    • 即使从不是特别相似的任务中进行迁移也比使用随机filters(或者说随机的参数)要好
    • 使用迁移参数初始化网络能够提升泛化性能,即使目标task经过了大量的调整依然如此。

    DANN (Domain-Adversarial Neural Network)

    这篇paper将近两年流行的对抗网络思想引入到迁移学习中,从而提出了DANN

    在这里插入图片描述
    图中所展示的即为DANN的结构图,框架由feature extractor、label predictor和domain classifier三个部分组成,并且在feature extractor和domain classifier 之间有一个gradient reversal layer;其中domain classifier只在训练过程中发挥作用

    • DANN将领域适配和特征学习整合到一个训练过程中,将领域适配嵌入在特征表示的学习过程中;所以模型最后的分类决策是基于既有区分力又对领域变换具有不变性的特征。
    • 优化特征映射参数的目的是为了最小化label classifier的损失函数,最大化domain classifier的损失函数,前者是为了提取出具有区分能力的特征,后者是为了提取出具有领域不变性的特征,最终优化得到的特征兼具两种性质。

    [1] How transferable are features in deep neural networks(NIPS2014 Bengio et al.)
    [2] Learning and Transferring Mid-Level Image Representations using Convolutional Neural Networks(CVPR2014
    Oquab.et al.)
    [3] Domain Adaptation for Large-Scale Sentiment Classification: A Deep Learning Approach(ICML2011 Glorot. Bengio.et al.)
    [4] Marginalized denoising autoencoders for domain adaptation (ICML2012 Chen et al.)
    [5] Domain-Adversarial Training of Neural Networks(JMLR2016 Ganin.et al.)

    迁移学习 在深度学习应用中已成为提升模型训练效率和性能的关键技术,尤其在目标任务与源任务具有一定关联性、且标注数据有限的情况下效果尤为显著。 迁移学习 通过利用在大规模数据集(如 ImageNet)上预训练的模型知识,将其迁移到新任务中,减少了对大规模数据和计算资源的需求。不同的 迁移学习 策略(如特征提取、微调、参数冻结等)能够针对性地调整模型层级的学习参数,实现高效的模型适应性。 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型;然后利用这个学习到的模型来对测试文档进行分类与预测。然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关键的问题:一些新出现的领域中的大量训练数据非常难得到。我们看到Web应用领域的发展很快速。大量新的领域不断涌现,从传统的新闻,到网页,到图片,再到博客、播客等。传统的机器学习需要对每个领域都标定大量训练数据,这将会耗费大量的人力与物力。而没有大量的标注数据,会使得很多与学习相关研究与应用无法开展。其次,传统的机器学习假设训练数据与测试数据服从相同的数据分布。然而,在许多情况下,这种同分布假设并不满足。通常可能发生的情况如训练数据过期。这往往需要我们去重新标注大量的训练数据以满足我们训练的需要,但标注新数据是非常昂贵的,需要大量的人力与物力。从另外一个角度上看,如果我们有了大量的、在不同分布下的训练数据,完全丢弃这些数据也是非常浪费的。如何合理的利用这些数据就是 迁移学习 主要解决的问题。 文章目录1. 什么是 迁移学习 2. 为什么需要 迁移学习 ?3. 迁移学习 的基本问题有哪些?4. 迁移学习 有哪些常用概念?5. 迁移学习 与传统机器学习有什么区别?6. 迁移学习 的核心及度量准则?7. 迁移学习 与其他概念的区别?8. 什么情况下可以使用 迁移学习 ?9. 什么是finetune?10. 什么是深度网络自适应?11. GAN在 迁移学习 中的应用12. 代码实现13. 参考文献 1. 什么是 迁移学习 ... 迁移学习 ( Transfer L ear ning )是一种机器学习方法,就是把为任务A开发的模型作为初始点,重新使用在为任务B开发模型的过程中。 迁移学习 是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进 迁移学习 的算法的开发是机器学习社区持续关注的话题。 迁移学习 对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。 此外, 迁移学习 和模型微调都是将已有的知识和经验应用到新的任务或数据集中进行训练,而模型蒸馏则是将大模型中的知识和经验传递到小模型中。而模型蒸馏则是在已有的知识和经验的基础上,将大模型中的一些信息压缩到小模型中,来提高小模型的性能。 迁移学习 是一种从一个领域迁移到另一个领域的技术,通过将一个任务中学习到的知识和经验迁移到另一个相关领域中,来加速和改进新领域的学习和解决问题的能力。模型蒸馏是一种将一个大模型蒸馏成一个小模型的技术,通过将大模型的知识和经验转移到小模型中,来提高小模型的性能和效率。 迁移学习 是解决数据稀缺、提高模型性能和加快训练进程的有效方法。随着机器学习和人工智能的不断发展, 迁移学习 在许多领域都显示出巨大的潜力。然而,如何有效地实施 迁移学习 、选择合适的源任务和处理领域差异仍然是该领域的研究热点。随着技术的进步,预计 迁移学习 将在未来的人工智能应用中扮演更加重要的角色。 基于PaddlePaddle的李宏毅机器学习—— 迁移学习 大噶好,我是黄波波,一名入门不久自学AI的AI Trainer,宝可梦训练师(纯属业余)。希望能和大家共进步,错误之处恳请指出! 百度AI Studio个人主页, 我在AI Studio上获得白银等级,点亮2个徽章,来互关呀~ 本项目是在飞桨深度学习学院提供的李宏毅-机器学习特训营课程。 Abstract 本文共分为两大部分:第一部分介绍 迁移学习 的主要概念以及类型,第二部分是实现 迁移学习 布置的作业——领域对抗性训练(Domain Advers 迁移学习 是一种先进的机器学习技术,它允许将一个任务中获得的知识迁移到另一个相关任务上,尤其适用于数据量有限或难以获取标注数据的情况。它基于不同任务之间存在相关性的原则,通过迁移预训练模型的参数来加速新任务的学习过程,并提高模型性能。 在机器学习和深度学习领域,数据是训练模型的重要基础。然而,在很多实际应用场景中,获取高质量标注数据往往成本高昂、耗时费力。例如,在医疗图像识别、自动驾驶、语音识别等领域,标注数据的获取需要专业人员进行长时间的标注,成本高昂。此外,某些领域的数据可能难以获得,或者标注数据的质量难以保证。针对这一问题, 迁移学习 ( Transfer L ear ning )应运而生。 迁移学习 利用在源域上预训练得到的模型或特征,通过在目标域上进行微调,使得模型能够快速适应新的任务,降低对标注数据的依赖。 迁移学习 是一种机器学习技术,旨在将从一个领域中学到的知识应用到另一个相关领域中,以解决目标任务的训练数据不足和模型训练时间过长的问题。首先,在大规模数据集(如ImageNet)上预训练一个深度神经网络,然后将其应用到目标任务中,通过在目标任务数据上继续训练模型,以适应新的任务需求。通过学习一个共享的特征表示,使得在源领域和目标领域的特征分布尽可能一致,从而提升目标任务的性能。特征提取方法是指利用预训练模型的特征提取能力,将其作为固定的特征提取器,然后在提取的特征基础上训练一个新的分类器或回归器。 迁移学习 作为机器学习的一个分支,一直比较好奇,接着这篇文章对 迁移学习 做一个简单的了解(本篇只涉及外围,没有太多细节)。文章围绕以下主题产生:1. 迁移学习 概要2. 迁移学习 的分类3. 迁移学习 的应用场景?
 
推荐文章
呐喊的煎鸡蛋  ·  迁移学习概述(Transfer Learning)-CSDN博客
7 月前
呐喊的煎鸡蛋  ·  什么是迁移学习(Transfer Learning)?定义,优势,方法原创
7 月前
呐喊的煎鸡蛋  ·  什么是迁移学习(Transfer Learning)?【精讲+代码实例】-腾讯云 ...
7 月前
呐喊的煎鸡蛋  ·  迁移学习| 机器之心
7 月前
呐喊的煎鸡蛋  ·  【深度学习系列】迁移学习Transfer Learning - Charlotte77 - 博客园
7 月前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南