美文网首页
迁移学习简介

迁移学习简介

作者: Septieme | 来源:发表于2020-04-05 21:26 被阅读0次

简介

比如我们已经会编写Java程序,就可以类比着来学习C++,都是面向对象的语言,就很快学会了,或者在学会骑自行车之后,骑摩托车也自己比较容易了,因为这两种交通工具有许多相似之处。迁移学习,总结起来就是说我们要帮助机器获得举一反三的能力。

几种分类
  • 基于实例的迁移:

    • 通过权重的分配,来分别作用到源域和目标域来进行迁移,关于什么是源域,什么是目标域,这里可以先不用细究,你就明白是两个不同的空间就行了,具体的概念,后面的部分会详细的进行概述
    • 举例:比如说在源域中有一个样本和目标域中的一个样本非常的相似,那么我们就可以加大此样本对应的权重。
  • 基于特征的迁移:

    • 将源域和目标域的特征变换到同一个空间。
    • 举例:比如说在两个域上的feature具有很大的区别,那么我们就可以通过将这两个域的feature变换到同样的空间,这个时候我们就可以很方便的研究这两个域上的相关内容和性质了。
  • 基于模型的迁移:

    • 通过源域和目标域的参数共享机制
    • 举例:这也是我们在做DL中用到最多的一个方法了,比如说,将pre-trained的模型拿过来,通过固定一些layer的parameters,修改部分layer的parameters得到最终的非常好的结果。
  • 基于关系的迁移:

    • 利用源域中某种一般性的逻辑关系进行迁移

几种具体迁移方法

介绍主要侧重于训练集有标记的方法,训练集无标记的方法仍需进一步学习

训练集目标集均有标记

微调

  1. conservative training
    conservative training

    此处的关键是确保参数变化不大,避免过拟合

  2. Layer transfer
    Layer transfer

    copy几层layer到新的模型,只训练没有被copy的层

    几种策略

    • 语音:往往copy最后几层,前几层从声音讯号到发音方式(主要需要迁移的部分),后几层与说话者无关系。
    • 图片:前面copy前面几层,前几层是检测最简单的特征(例如直线、曲线),泛用性较强,后几层往往包含更多抽象特征,需要迁移。

多任务学习

  • 可以共用输入:主要用于多层结构的学习共用前几层,后几层分别处理:
共用输入
  • 不可共用输入:共用中间几个layer
不可共用输入

常见的使用:

一个常用的例子

例如单语言翻译为多种语言,在训练中文时即便借鉴英文(或其他语言)的知识,也可带来训练速度的提升:

跨语言学习

渐进式神经网络(仍待提升)

所有的之前任务的网络,保留并且fix,每次有一个新任务就新建一个网络(一列)。而为了能使用过去的经验,他们同样也会将这个任务的输入输入进所有之前的网络,并且将之前网络的每一层的输出,与当前任务的网络每一层的输出一起输入下一层。

渐进式神经网络

目前看来仍有较大的局限性,需要有相同的input feature

目标集无标记

Domain-adversarial learning

可以消除掉domain之间的区别

方法:在提取完Feature之后,增加一个domain classifier,再交给最后的classifier

我们希望特征可以尽可能的混合在一起

希望样本特征可以均匀分布

此处和GAN有关(不太了解)

结构大致如下:

网络结构

feature extractor不仅要尝试骗过domain classifier,还要(保留足够特征)满足label predictor的需要。它要提取一个供B和P共享的feature,这个feature有两个目标:最小化目标loss(帮助B);最大化二分类误差(对抗P)。Why?

所谓的domain adaption,其实也就是feature对于两个不同的域是自适应的,所以我们的这个feature尽可能让两个域区分不开,feature自己不就渐渐趋于域自适应了吗?

feature extractor希望将两个domain提取出来的feature尽可能的混合在一起。但是domain classifier却希望他能够尽可能的把从feature extractor中提取出来的feature划分到两个domain中。所以增加一个负向梯度优化提供给domain classifier,DC必须努力不能被骗过,否则就无法优化FE的特征提取能力。

负向梯度优化

zero-shot learning(零次学习)

希望模型能够对其从没见过的类别进行分类,让机器具有推理能力,实现真正的智能。其中零次(Zero-shot)是指对于要分类的类别对象,一次也不学习。

用attributes表示每一个类,标记每种类型有哪些特性,需要有足够的attributes,它的维度是固定的,它包含了能够较充分描述数据集中类别的属性。

经过神经网络之后,输出对应的特征,然后进行查表。

假设我们的模型已经能够识别马,老虎和熊猫了,现在需要该模型也识别斑马,那么我们需要告诉模型,怎样的对象才是斑马,但是并不能直接让模型看见斑马。所以模型需要知道的信息是马的样本、老虎的样本、熊猫的样本和样本的标签,以及关于前三种动物和斑马的描述。

attribute embedding
attribute embedding

让attribute embedding和word embedding尽可能的接近

假设目标函数是这个:

f*,g*=arg\min_{f,g}\sum_{n}||f(x^n) - g(y^n)||_2

不妨思考一下,这个公式合理吗?

显然是不合理的,因为这样可能会导致所有的向量都聚在一起,所以应该还要考虑和其他向量的距离:

f*,g*=arg\min_f,g\sum_n\max(0,k-f(x^n)g(y^n)+max_{m\neq n}f(x^n)g(y^m))

(k是自己定义的一个常量)

zero loss:

k-f(x^n)g(y^n)+min_{m\neq n}f(x^n)g(y^m) < 0

(x^n)g(y^n)-max_{m\neq n}f(x^n)g(y^m)>k

既要保证同类相近,又要保证不同的类尽可能的远

convex combination of semantic embedding
向量融合

lion和tiger概率相近,则将这两个的向量混合,查看他更接近哪一个word embedding

对比

测试图片 卷积神经网络 Domain-adversarial zero-shot

几种方法的对比

翻译的zero-shot learning

已知英文<->韩文,英文<->日文

可以做到韩文<->日文

语言encode进向量空间再decode:

一个向量空间的例子

可以发现多个语言的同一种意思会在同一块空间,也可以理解为机器“发明”了自己的语言

训练集无标记目标集有标记

self-taught learning

和半监督学习不同(但可以说相似)

学习如何提取源数据的更好的表示(无监督方法)

获取目标数据的更好表示

均无标记

self-taught Clustering

和普通的transfer learning不同

以后有机会学习一下

相关文章

  • 迁移学习简介

    简介 比如我们已经会编写Java程序,就可以类比着来学习C++,都是面向对象的语言,就很快学会了,或者在学会骑自行...

  • 2018-04-15 迁移学习的度量准则

    迁移学习的方法主要包括:基于样本的迁移,基于特征的迁移,基于模型的迁移和基于关系的迁移。 “迁移学习的总体思路可以...

  • EMSA电泳/凝胶迁移

    服务简介 凝胶迁移或电泳迁移率实验(electrophoretic mobility shift assay,EM...

  • Core Data 版本迁移攻略(上)

    这一部分包含了迁移的简介,回答了迁移是什么,什么时候要迁移的问题,写了轻量级迁移 和 基于 MappingMode...

  • 迁移学习简述

    摘要:什么是迁移学习,迁移学习的例子有哪些,在预测建模中如何使用迁移学习?本文将带你一步步深入探讨。 迁移学习是一...

  • 阿里云rds批量创建用户脚本

    简介 今天迁移rds的时候发现,使用阿里云的dts迁移rds的数据确实没问题,但是用户不能迁移,这就很尴尬了,原来...

  • Swift 4.0 Migration

    最近完成了Swift 4.0的迁移,记录下迁移过程中遇到的坑 Agenda Swift 4.0 简介 Swift ...

  • 教育心理学第五章 第三节 学习迁移

    教育心理学第五章 第三节 学习迁移 一 学习迁移的定义 学习迁移也称迁移,指一种学习对另一种学习的影响或习得经验对...

  • 2022-03-15

    迁移是一种学习对另一种学习的影响,先前学习对后继学习的影响称为顺向迁移,后继学习对先前学习的影响称为逆向迁移,凡是...

  • 2019年上半年收集到的人工智能迁移学习干货文章

    2019年上半年收集到的人工智能迁移学习干货文章 迁移学习全面指南:概念、项目实战、优势、挑战 迁移学习:该做的和...

网友评论

      本文标题:迁移学习简介

      本文链接:https://www.haomeiwen.com/subject/wgvpphtx.html