概述
什么是迁移学习?
迁移学习是指将一个场景下学习到的知识迁移到另一个场景应用(这个场景是自己模型需要的场景)。
简单举例说明一下:
比如说你学会走了在去跑是不是就更容易了。
会英语就更容易学习语法了
这就是人类与生俱来的能力,利用已有的知识经验来解决相似的任务,当然我们也希望机器也具备这样的能力。
在举例子说明:假如你现在能区分一张猫和狗的图片,那么现在能不能区分苹果和梨的区别,这样就可以让机器有了前者的经验来实现后者,我们都知道,这个任务可以使用CNN网络去实现的,cnn就是提取特征,只有在最后的全连接层进行了分类,cnn是不是可以将猫狗数据训练出来,直接使用,然后苹果和梨肯定也可以的。
其实这样就是迁移学习,利用模型之间的数据,任务,以及相似性,将训练好的模型应用到新的任务上,被称为迁移学习,由于这两个任务发生在两个领域之间,已有的知识和数据,也就是被迁移的对象被称为源领域,被赋予的对象被称为目标领域。
特别注意:迁移学习不是具体的模型,我们使用迁移学习有很多原因,有时是目标领域逇数据太少,需要更多带有标注的源域的帮助,优势是为了节约训练时间。
像我们NLP中bert,transformer等等的模型他们在经过微调后可以应用到各种各样的领域上,这就是迁移学习应用到NLP领域上。
为什么要进行迁移学习?
1.深度学习中最基础的就需要大量的数据支持,而往往我们得不到大量的数据。
2.使用大量数据训练出来的模型,可以通过迁移学习很好的运用到,同领域不同的问题。
迁移学习中两个最要的概念:
域:比如说:电视剧的评论,和书本的评论就是两个域
任务:要做的下游任务不一样,比如情感分析和实体识别
负迁移:
我们在处理的两个领域之间差距特别大,就会导致严重的负迁移现象,也就是说我们的旧知识对新知识的学习产生了严重的阻碍,这就是负迁移,应该避免负迁移。
迁移学习的分类:分为三类
基于实例的迁移:从源领域中挑选出来有用的数据,让源领域的实例分布很接近目标领域,这样就可以学到一个比较可靠的模型。可以使用TrAdaBoost算法实现迁移。
TrAdaBoost算法:
基于特征的迁移:关键就在于找到源领域和目标领域之间的共同特征,然后利用这些特征去做知识迁移。
基于共享参数的迁移:也就是说源领域和目标领域中有一些相同的层和相同的参数,这个时候就可以使用源领域的层数以及参数。
论文:
1801.06146v5.pdf (arxiv.org)
最后
以上就是缥缈汉堡为你收集整理的简单容易理解的迁移学习(TrAdaBoost),附带迁移学习的原论文的全部内容,希望文章能够帮你解决简单容易理解的迁移学习(TrAdaBoost),附带迁移学习的原论文所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复