Transfer Learning - Overview(详细讲解)
大象和老虎都是在自然界中的所以与猫和狗有关系,卡通则是都是分类猫和狗任务一样,所以目标域不一样。
为什么要transfer learning,比如在speech recognition、image recognition、text analysis 方面,找到一些数据和target数据没有直接联系的source数据,看是否对recognition 有帮助。
source和target都有标签。target data 样本数目非常少,所以称为one-shot learning,接下来将用target data做实验的时候应作如何处理。
用target data 做实验进行如何处理。用source data training 一个neural network。之后将train的neural network参数初始化一个新的neural network。用target data 微调新的neural network。微调的时候数据少有可能就过拟合(overfiting)所以需要conservative train。就是让俩个neural netwoek不要差太多。比如给予相同的input时候output不要有太大差别,或者经过微调之后俩个neural network parameter close。
或者训练的时候做一些限制,copy some parameters,之后用target data只train 一部分layer,其余的layer fix(固定)。假如target data 数据足够多的,可以微调整个network。
调哪一个layer的讲解。
speech task:通常固定后几层layer,微调(fine-tune)first layer。
image task:通常固定前几层,微调(fine-tune)last layer。
多种语言辨识,不同的task和一起做效果会更好,前边几个layer是一样的,直接将声音讯号丢进去。
横轴代表train data 的量,纵轴代表误差。蓝色只学习zhongwen,粉线带着欧洲国家的语言一起学。可以看出效果要好于只学中文的,并且用到的数据量还少。
progressive neural networks(也就是RNN循环神经网络)
蓝色的output接到绿色的neural上,蓝色绿色接到橘色neural上,新接上的neural network是锁死的。
先选好足够大的neural network,之后训练task1,固定训练好的task1参数。之后在训练task2,训练好后固定task1和task2,再训练之后的,以此类推。参数不会增加的。
Domain-adversarial training(对抗域训练)
source data有标签,target data 无标签。虽然可以假设下边训练集测试集,但是target data 和source data分布是不一样的。performance是不好的,所以进行特殊处理在下一页。
对于这个neural work来说,如果不能用同样的feature来表示source data和target data 就没有好的classification 的结果
下边的点就是每张手写字的feature分布。(多维决定一个点的,相当于多为坐标也是就是向量)
希望feature extractor(特征提取 )从source data 和target data抽出来的feature有同样的distribution。点分布均匀。为了分布均匀引入Domain classifier,它的作用就是侦测feature extractor output 的feature来自于source data 还是 target data 。现在feature extractor就是尽量骗过Domain classifier。feature extractor 就是尽量去除source data 和 target data不一样的地方,让他俩输出的feature是很接近的可以骗过domain classifier,只用domain classifier是train不好的,因为你管input什么output的feature都是零,这就骗过了domain classifier。
不仅要骗过 domain classifier而且还要满足标签的分类预测出正确的class label y。这是一个大的network,不同的部分有不同的目标。label predictor input image属于哪一类根据feature,domain classifier也是根据feature分辨是哪个数据。
Zero-shot Learning(零样本学习)
如下图source data有标签,target data 无标签。source data 和target data有不同的tasks,一个source data是猫狗分类,一个target data是草泥马分类。俩种不同的任务分类。语音辨识则是如何解决的,将不同的单词提取出来音素,之后在组合成单词。找出比单词更小的单位,找出比动物更小的单位。
找出比动物更小的单位就是这些动物的特征,每一种动物都用一组特征来描述它,例如是不是毛茸茸,有没有尾巴,是不是四只脚等等这些属性如下表。train的时候教机器识别出图像里都有哪些属性的组合如下图。
test时候 输入金鱼的图片network识别出它都有哪些属性,之后再table base里寻找最相似的class类对应的属性。
f()和g()都可以是NN,train的时候是f(x)和g(y)接近。之后拿来新的照片输入f()中生成的点看看和embedding space中g()的点哪个近,也就是class类的属性在embedding space的点,接近哪个就是哪类动物如下图。
loss function 最小时更新f,g 参数。内积越大代表他们距离越近。
如果没有动物的database那就拿他们的名字作为attributes。也就是word embedding。我的博客中有详细解说word embedding。
没有train的数据,只有NN,和word embedding,将照片输入到NN中得到属于哪种的各0.5。之后各自乘以各自的word embedding,得到的结果在比较谁距离他最近,就是哪种动物。machine就可以辨识从来没看过的东西。
在train的时候即使是无标签的source data train的参数对target data也是有帮助的 对于self-taught learning和self-taught clustering。
获取以上文本PPT请点击这里
Transfer Learning - Overview(详细讲解)相关推荐
- EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
EL:集成学习(Ensemble Learning)的概念讲解.算法分类.问题应用.关键步骤.代码实现等相关配图详细攻略 目录 集成学习Ensemble Learning 1.集成学习中弱分类器选择 ...
- 【深度学习】一文看懂 (Transfer Learning)迁移学习(pytorch实现)
前言 你会发现聪明人都喜欢"偷懒", 因为这样的偷懒能帮我们节省大量的时间, 提高效率. 还有一种偷懒是 "站在巨人的肩膀上". 不仅能看得更远, 还能看到更多 ...
- 迁移学习 Transfer Learning—通俗易懂地介绍(常见网络模型pytorch实现)
前言 你会发现聪明人都喜欢"偷懒", 因为这样的偷懒能帮我们节省大量的时间, 提高效率. 还有一种偷懒是 "站在巨人的肩膀上". 不仅能看得更远, 还能看到更多 ...
- Taskonomy: Disentangling Task Transfer Learning
[2]Zamir A, Sax A, Shen W, et al. Taskonomy: Disentangling Task Transfer Learning[J]. 2018. 目录 摘要: 1 ...
- 《A Survey on Transfer Learning》迁移学习研究综述 翻译
迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要: 在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...
- 论文阅读:A Survey on Transfer Learning
本文主要内容为论文<A Survey on Transfer Learning>的阅读笔记,内容和图片主要参考 该论文 .其中部分内容引用与博客<迁移学习综述a survey o ...
- transfer learning
Transfer learning 顾名思义就是就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练数据集.就跟其他知友回答的那样,考虑到大部分数据或任务是存在相关性的,所以通过transfer ...
- 【美团云】TensorFlow 迁移学习识花实战案例(Transfer Learning)
TensorFlow 迁移学习识花实战案例(Transfer Learning) TensorFlow 迁移学习识花实战案例 什么是迁移学习 为什么要使用迁移学习 识花模型中迁移学习的思路 VGG模型 ...
- 【李宏毅2020 ML/DL】P85 Transfer Learning
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 要做一项任务,但是数据不直接与任务相关.这就涉及到了迁移学习.在现实生活中,我们其实不断在做&q ...
最新文章
- Linux:shell脚本命令: /dev/null 21 的理解
- 使用nagios监控oracle
- java里面cin怎么用_刚学Java,弱弱一问,eclipse中怎样输入啊,我写了输入语句但它不像C++的cin一样弹出输入窗口。。...
- 手动同步OCS的通讯簿
- 大数据该如何使用进行分析
- 汽车CAN通信解析(一)
- 从零开始学习CANoe(六)—— CAPL 测试节点
- 关于ie浏览器不能访问localhost的问题
- 白帽子黑客生存环境变好,顶级人才年入千万
- 陶渊明笔下的桃花源就在此,连郭沫若都赞不绝口
- WEB学习——JQury
- Linux 常用命令大全(虚拟机)
- 2018年android常用的框架介绍
- No matching version found for @soda/friendly-errors-webpack-plugin@1.8.0.
- 单片机英文缩写(单片机常用的英文缩写及英文全称)
- 号外丨边缘计算社区品牌升级!
- 基于51单片机的智能护眼台灯设计proteus仿真原理图PCB
- 有赞 mysql go agent_有赞数据库服务实践
- 【吴恩达deeplearning.ai】2.7 Inception 网络
- 软件培训学习中自律很重要