7种常见的迁移学习的代码+论文+简介

最近调研了不少迁移学习的工作,分享给大家。因为我感觉迁移学习在NLP领域的很多任务中有很大的利用价值,毕竟高质量的标注数据是很少的,而人工标注费时费力,而且质量不一定好。

1. Domain Adaptation 领域自适应

1.1 动机

领域自适应是一种迁移学习,它将不同源领域的数据或特征映射到同一个特征空间,以便于利用其源领域数据或特征来增强目标领域的训练,进而达到更好的训练效果。领域自适应学习不要求训练数据和测试数据一定具有相同的分布。

1.2 目的

利用数据或特征更多的源领域来提升数据或特征相对较少的目标领域的模型性能。

1.3论文和代码

论文:https://arxiv.org/abs/1707.05956,ICCV 2017

代码:https://github.com/poppinace/TAISL

推荐理由:无监督的领域自适应和张量表示。传统的领域自适应一般是针对向量的本文换了一种方式,值得借鉴。

领域自适应在对话系统领域论文也不少,简单推荐几篇:

https://arxiv.org/abs/1609.02846

https://arxiv.org/abs/1808.02586

http://www.aclweb.org/anthology/C18-1103

https://arxiv.org/abs/1111.0048

http://ttic.uchicago.edu/~klivescu/papers/margolis_etal_danlp2010.pdf

2. Online transfer learning 在线迁移学习

在线迁移学习的框架

2.1 动机

把在线学习和迁移学习相结合,用于训练的源领域的数据在开始训练前并不是全部确定的,而是随着时间的推移而不断增加。

2.2 目的

充分理由源领域的数据进行训练,以便于更好的迁移到目的领域。

2.3 论文和代码

论文:https://icml.cc/Conferences/2010/papers/219.pdf,AIJ 2014.

代码:http://stevenhoi.org/otl

推荐理由:把在线学习和迁移学习相结合,这更符合很实际情况下源领域数据一点一点源源不断的积累的情况。这是在线迁移学习的第一个公开的研究成果,也是目前最值得学习的研究成果。

3. Lifelong transfer learning 终身迁移学习

3.1动机

不再单单是在特定领域终身学习,而是通过终身不断的学习来提升源领域到目标领域的迁移效果。

3.2 目的

通过终身不断的学习来增强源领域到目标领域的迁移。

3.3 论文和代码

论文:http://www.cis.upenn.edu/~eeaton/papers/BouAmmar2015Autonomous.pdf, IJCAI 2015.

代码:https://github.com/haithamb/pginterella

推荐理由:终身策略梯度强化学习与自主跨领域知识转移相结合,很适合缺少训练数据的决策类任务,比如任务型对话系统中的DPL(对话策略学习)。目前这方面工作极少,感觉很适合研究。

4. Heterogeneous Transfer Learning 异构迁移学习

4.1 动机

迁移学习一般不要求训练数据和测试数据有相同的分布,而异构迁移学习连训练数据和测试数据的特征维度也不再要求一样。

4.2 目的

训练数据和测试数据的特征维度也允许不同,这样更有利于扩大迁移学习的适用范围。

4.3 论文和代码

论文:http://proceedings.mlr.press/v95/shen18b/shen18b.pdf, ACML 2018。

代码:https://github.com/Isilendil/OSTL

推荐理由:基于稀疏特征变换的无监督异构域自适应,用稀疏特征变换来做异构迁移学习很贴近实际情况。

5. Deep Transfer Learning 深度迁移学习

5.1 动机

深度学习具有非常强的数据拟合能力,可学习到泛化能力更强的特征表达,而迁移学习能学习到领域无关的特征表达。如果通过深度神经网络利用其他领域的知识,能充分利用神经网络来学习所有领域共同具有的特征表示。

5.2 目的

将深度学习与迁移学习相结合,同时利用深度学习和迁移学习的优势。

5.3 论文和代码

论文:https://arxiv.org/abs/1608.06019,NIPS 2016。

代码:https://github.com/tensorflow/models/tree/master/research/domain_adaptation

推荐理由:

6. Reinforcement Transfer Learning 强化迁移学习

6.1 动机

强化学习需要多步决策,其实在决策时如果数据较少,可能可以尝试策略的迁移学习。

6.2 目的

将强化学习与迁移学习相结合,同时利用强化学习和迁移学习的优势。

6.3 论文和代码

论文:https://arxiv.org/abs/1810.06667,arXiv 1810.06667。

代码:https://github.com/yaserkl/TransferRL

推荐理由:深度学习+强化学习+迁移学习做文本的自动摘要,充分理由三者的优势互补,很适合学习。

7. Adversarial transfer learning 对抗迁移学习

7.1 动机

迁移学习一般是单向的迁移,那么如果双向进行对抗的迁移学习的话,效果可能会更好,因为可以互相迁移而共享共有的数据和特征。

7.2 目的

双向对抗的迁移学习,尽最大努力的充分利用源领域和目标领域的数据和特征。

7.3 论文和代码

论文:https://arxiv.org/abs/1712.02560

代码:https://github.com/mil-tokyo/MCD_DA

推荐理由:无监督领域自适应的最大分类器差异,让分类器之间不断对抗迁移,以便于提升效果。

原文地址:https://www.cnblogs.com/alan-blog-TsingHua/p/10624200.html

时间: 2024-10-10 00:30:56

7种常见的迁移学习的代码+论文+简介的相关文章

PyTorch 计算机视觉的迁移学习教程代码详解 (TRANSFER LEARNING FOR COMPUTER VISION TUTORIAL )

PyTorch 原文: https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html 参考文章: https://www.cnblogs.com/king-lps/p/8665344.html https://blog.csdn.net/shaopeng568/article/details/95205345 https://blog.csdn.net/yuyangyg/article/details/8001857

迁移学习(Transfer Learning)

深度学习中在计算机视觉任务和自然语言处理任务中将预训练的模型作为新模型的起点是一种常用的方法,通常这些预训练的模型在开发神经网络的时候已经消耗了巨大的时间资源和计算资源,迁移学习可以将已习得的强大技能迁移到相关的的问题上. 什么是迁移学习? 迁移学习(Transfer Learning)是一种机器学习方法,是把一个领域(源领域)的知识,迁移到另外一个领域(目标领域),使得目标领域能够取得更好的学习效果. 通常,源领域数据量充足,而目标领域数据量较小,这种场景就很适合做迁移学习,例如我们我们要对一

pytorch 测试 迁移学习

训练源码: 源码仓库:https://github.com/pytorch/tutorials 迁移学习测试代码:tutorials/beginner_source/transfer_learning_tutorial.py 准备工作: 下载数数据集:https://download.pytorch.org/tutorial/hymenoptera_data.zip          -->  tutorials/beginner_source/data/hymenoptera_data 下载与

TensorFlow keras 迁移学习

数据的读取 import tensorflow as tf from tensorflow.python import keras from tensorflow.python.keras.preprocessing.image import ImageDataGenerator class TransferModel(object): def __init__(self): #标准化和数据增强 self.train_generator = ImageDataGenerator(rescale=

Gluon炼丹(Kaggle 120种狗分类,迁移学习加双模型融合)

http://www.cnblogs.com/fiercex/p/7927804.html fiercex 路漫漫其修远兮,吾将上下而求索 Gluon炼丹(Kaggle 120种狗分类,迁移学习加双模型融合) 这是在kaggle上的一个练习比赛,使用的是ImageNet数据集的子集.注意,mxnet版本要高于0.12.1b2017112.下载数据集. train.zip test.zip labels然后解压在data文件夹下 1. 数据 1.1 整理数据 将解压后的数据整理成Gluon能够读取

[002] 两种常见的代码组织结构

1. 按照应用程序的业务逻辑来组织结构 办公软件: 1. 采购 com.itheima.buy 2. 开会 com.itheima.meeting 3. 请假 com.itheima.leave 2. 根据与代码的类型划分程序包结构 UI界面展现         com.itheima.mobilesafe.activity 自定义的UI         com.itheima.mobilesafe.activity.ui 业务逻辑             com.itheima.mobiles

1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介绍——迁移学习

ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 本文翻译自ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks,原作者保留版权 卷积神经网络在视觉识别任务上的表现令人称奇.好的CNN网络是带有上百万参数和许多隐含层的"庞然怪物".事实上,一个不好的经验规则是:网络越深,效果越好.AlexNet,VGG,Inc

迁移学习、fine-tune和局部参数恢复

参考:迁移学习——Fine-tune 一.迁移学习 就是把已训练好的模型参数迁移到新的模型来帮助新模型训练. 模型的训练与预测: 深度学习的模型可以划分为 训练 和 预测 两个阶段. 训练 分为两种策略:一种是白手起家从头搭建模型进行训练,一种是通过预训练模型进行训练. 预测 相对简单,直接用已经训练好的模型对数据集进行预测即可. 优点: 1)站在巨人的肩膀上:前人花很大精力训练出来的模型在大概率上会比你自己从零开始搭的模型要强悍,没有必要重复造轮子. 2)训练成本可以很低:如果采用导出特征向量

百分点认知智能实验室出品:深度迁移学习十八问

编者按 深度迁移学习是基于深度神经网络的迁移学习方法,BERT通过预训练模型达到深度迁移学习的效果,自从2018年底BERT横空出世以来,就以势不可挡的姿态横扫了众多榜单,甚至在阅读理解任务SQuAD 中超越人类水平.BERT在公检法.媒体出版.军工.快消零售等工业界也迅速落地,如百分点智能对话系统.百分点智能审校系统和百分点智能翻译系统等.BERT几乎在所有的下游任务中效果都获得了明显提升,BERT自此开创了一个NLP的新时代,那就是pre-train + fine-tuning的时代. 基于