transfer-learing

2020李宏毅 transfer learning 笔记

意义

利用 data not directly related to the task considered 去帮助解决现在我们关心的task

不直接相关的数据有两种

  1. similar domain,different task
  2. different domains, same task

例如:

在这里插入图片描述

transfer-learning 概述

注意:transfer-learning的划分定义在学术界不太统一,这里不具体纠结。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aXiTsUAQ-1642495564507)(transfer-learing.assets/image-20220117214014420.png)]

labelled-labelled 情况

Fine-tuning

问题描述:

  • 目标数据:很少

  • 源数据(我们已有的):很大量

  • 例子

    语音辨识系统中我们需要识别一个特别的人的声音。—> 直接fine-tuning,但是很容易overfitting

Conservative training

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSesgLQF-1642495564508)(transfer-learing.assets/image-20220117195254140.png)]

加正则,想办法让我们两个模型比较接近

“变了但没完全变”

Layer Transfer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hDu6FgHn-1642495564508)(transfer-learing.assets/image-20220117195429535.png)]

copy某些层,只训练其他没换的层

  1. 语音问题:复制后面几层(前面是抽每个人的说话的模式,后面几层是转为文字)
  2. 图像问题:复制前面几层(前几层是抽横线竖线这种通用纹理信息,后面的是语义的信息)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保失败,源站可能有防盗链机制,建议将图片保存下来直接上传存上传(im5Fiz5WstV0-1642495564509)(transfer-learing.assets/image-202201172005147.png60)(transfer-learing.assets/image-20220117200435167.png)]

上图横坐标是copy的层数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVdqxW8H-1642495564510)(transfer-learing.assets/image-20220117200819802.png)]

上图表示target和source就算很不一样,第一层做的工作也是差不多的

Multitask Learning

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jxT194XI-1642495564511)(transfer-learing.assets/image-20220117201154893.png)]

Multitask learning有一个很成功的例子:多语音识别翻译,如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CA2RmYhw-1642495564512)(transfer-learing.assets/image-20220117201334069.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6eQ4NXrU-1642495564514)(transfer-learing.assets/image-20220117201609826.png)]

可以帮助现任务做的更好,如上图

Progressive Neural Networks

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OHzvwXHW-1642495564515)(transfer-learing.assets/image-20220117201958125.png)]

不同的任务的隐藏层可以连起来,有点像GoogleNet/resnet

unlabelled-labelled

Domian-adversarial training

问题描述:

  • 源数据: ( x s , y s ) (x^s, y^s) (xs,ys)
  • 目标数据: ( x t ) (x^t) (xt) (没有y,即label;但是和源数据比较像)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bc0Yh8cF-1642495564517)(transfer-learing.assets/image-20220117203124477.png)]

我们的网络前面几层是来抽特征的,于是就出现问题了,不同的数据的domain完全不一样;前面几层不变的话就会直接烂掉,无法区分,分类;如上图

所以我们希望做到前面抽特征的几层网络可以去除domian的特性

具体做法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fbi1cFNb-1642495564518)(transfer-learing.assets/image-20220117204057425.png)]

这里红色的分类器吐出的结果是输入数据是来着哪一类的,然而我们需要的是分不出两个domain,所以我反向传播的时候红色的分类器给的feature extractor 的梯度会额外乘上一个**$ -\lambda$**, 来破坏前面绿色的网络,使得其达到下面的效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Vj0rtfB-1642495564518)(transfer-learing.assets/image-20220117204437021.png)]

即绿色的feature extractor 抽出来的东西的分布是混杂的,无法明显分别两个原始的domain

但是我们最终还是要让网络分类,所以蓝色的网络也需要去训练来正确分类;所以最后的训练好的网络大概是蓝色可以正确分类,但是红色的完全区分不出来数据是属于哪个domian的

我这里的理解就是加入红色的网络来不让前面的feature extractor 用比较偷懒的方式来得到正确的结果,而是真的去提取这两个domain相似的的特征(比如说是数字的轮廓而不是数字“0”占黑色背景的百分比这种“不是很正确的特征”)

Zero-shot learning

问题描述:

  • 源数据: ( x s , y s ) (x^s, y^s) (xs,ys)
  • 目标数据: ( x t ) (x^t) (xt) (没有y,即label;但是源数据里从来没有出现过x; 也就是比上一个要求更严格了)

例如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cwq3LWnQ-1642495564520)(transfer-learing.assets/image-20220117210218006.png)]

如上图,我们的网络绝对不可能能认出草泥马;所以我们退一步,只要求我们的网络认出客体的属性,也就是有没有毛等等。然后跟根据这些属性来查表来得到分类结果; 如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4eyHs6S6-1642495564521)(transfer-learing.assets/image-20220117210723104.png)]

更进一步我们可以把这些属性进行embedding(类似word2vec); 如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I6vDNSzP-1642495564522)(transfer-learing.assets/image-20220117210945547.png)]

这里我们再讲一下loss

  • 首先如果我们按下图所示定义loss可以嘛?

不行的,这样会出现一个问题,那就是我的模型会把所有东西都投影到一个点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Apvuglw-1642495564522)(transfer-learing.assets/image-20220117211941029.png)]

  • 解决方案:我们让类别一致的尽可能靠近的情况下还要让不同的类别分的尽可能的远;如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-edKeNPdu-1642495564523)(transfer-learing.assets/image-20220117212148194.png)]

理解:k是我设置的“边缘”超参数

因为argmin,所以模型会尽力让 k − f ( x n ) ∗ g ( y n ) + m a x f ( x n ) ∗ g ( y m ) k-f(x^n)*g(y^n)+maxf(x^n)*g(y^m) kf(xn)g(yn)+maxf(xn)g(ym)小于0,也就是

 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZ0XghG7-1642495564524)(transfer-learing.assets/image-20220117212443836.png)]

根据上面不等式的变换我们可以得知这意味着我们的同一类别 比 其他最接近这一类别的类别还要大k个值,所以可以分开

例子:google多语言翻译系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iEYMiQCa-1642495564524)(transfer-learing.assets/image-20220117213448856.png)]

它可以直接把不同语言投射到semantic的空间上,相同的意思空间上很接近,如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w90aYjFH-1642495564525)(transfer-learing.assets/image-20220117213739251.png)]

可以把这个语义空间理解为模型自己“发明的一种语言”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值