迁移学习简介

2020-04-05  本文已影响0人  Septieme

简介

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

几种分类

几种具体迁移方法

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

训练集目标集均有标记

微调

  1. conservative training
    conservative training

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

  2. Layer transfer
    Layer transfer

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

    几种策略

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

多任务学习

共用输入 不可共用输入

常见的使用:

一个常用的例子

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

跨语言学习

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

所有的之前任务的网络,保留并且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不同

以后有机会学习一下

上一篇 下一篇

猜你喜欢

热点阅读