| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习11 -> 正文阅读 |
|
[人工智能]深度学习11 |
Generative Adversarial Network 难点:seq2seq model + discriminator是没有办法做微分的(因为token是通过sampling的方式获得的,当整个network中有一个sampling process时,是没有办法进行微分的,基于微分的定义(输出的改变除以输入的改变)因为对分布修改参数后sampling出来的token其实是不一样的,对output的影响是不确定的) continuous Input for discriminator unsupervised abstractive summarization(摘要生成) Evaluation 之所以需要迁移学习是因为,在现实中,符合要求的图片相对较少。如上图,如果要分析一张医学方面的图片,但是相关的数据很少,这时可以给训练数据加进去一些猫狗等其它的图片。 Overview 拥有的数据种类不同,要使用不同的方法。 source data有label,target data有label 做法是: 用source data作为训练数据,去训练模型。 这个方法很简单,但是要注意,如果target data的数据非常少,需要加一些技巧(Conservative Training、Layer Transfer)来防止模型发生过拟合。 如果target data很少,为了防止使用target data训练时发生过拟合,可以在训练时加一些限制(比如加一些像L1、L2之类的正则项),让两边产生的模型不要相差太远。 用source data训练出一个neural network后,把其中的一些layer的参数(黄色的箭头)复制到右边去训练。 当然,如果target data足够多的话,还是可以在用source data训练出模型后,用target data去微调整个模型的参数。 现在有一个问题,我们要决定那些layer应该是copy的呢? Layer Transfer 在 Image上的效果 X轴代表复制多少layer,Y轴代表准确度。下面数字代表上图不同的线 1.没做Layer Transfer Multitask Learning Multitask Learning能让机器学会多个任务。Multitask Learning很适合用neural network 来做。 上图左边,在network的前几层共用layer,到了后面要细分任务的时候再分为多个layer。 如果两个任务只有中间比较像,那就可以用上图右边的做法。 Multitask Learning一个很成功的的应用就是 多语言的语音辨识。 虽然是不同语言,但是声音的信号都差不多,所以前面的layer可以共用。到了细分语言再拆成多个layer。 上图是一个普通话(mandarin)的识别。 X轴是普通话的数据的时长,Y轴是错误率。 可以看到,虽然欧洲语言和普通话好像一点都不像。但是把欧洲语言和普通话一起做 Multitask Learning,让欧洲语言去帮忙调整前几层layer的参数,可以看到训练出来的结果会比只有普通话作为训练数据要好。 从图中横线的位置可以看出,Multitask Learning 达到和 Mandarin only 相同的错误率,Multitask Learning使用的训练数据明显更少。 Progressive Neural Networks 1.先训练一个network解决task 1 。 source data有label,target data没label 以手写数字识别为例,source data是MNIST数据集,而target data是MNIST-M。 这时可以把source data看做training data,而target data看做testing data。但是这里有一个问题是,这两者的特征不是很像
所以我们要使得source data和target data输入model后,经过feature extractor后,所得到的特征是比较像的,即如上图是“混在一起”的。 所以这里将feature extractor的output接到一个domain classifier。domain classifier是分类source data和target data的特征,所以最好的情况是feature extrator的output,能使的domain classifier的准确率达到最低(即代表source data和target data的特征没被区分开)。 但这里有个漏洞,如果要使domain classifier的准确率很低,那feature extractor可以不管input是什么,都output 同一个数值。这明显是不对的,所以还要加一个限制。如下。 在刚才的基础上,再加一个label predictor。所以现在feature extractor不仅要能最小化domain classifier的准确度,还要最大化分类的准确率。
上图是使用有无Domain-adversarial training的对比结果。 但在 Zero-shot Learning 里,source data和target data是两种不同task。如上图,source data是分类猫狗的data,而target data则是分类羊驼的任务。这时可以有两个方法可以做:Representing each class by its attribute、Attribute embedding。 Representing each class by its attribute 既然使用target data没办法直接预测图中的物体是什么,那就换一种角度。 让neural network去预测图中物体有哪些特征(例如毛茸茸,4条腿,有尾巴等)。 Attribute embedding
这里需要引进word vector。word vector的每一维代表这个word的某一种attribute。 现在直接把动物的名字所对应的word vector来代替每一种动物的attribute。其他步骤和刚才Attribute embedding一样。 Convex Combination of Semantic Embedding 步骤如下: 把image输入到一个NN(随便找个现成的NN就行),NN输出这张图片属于不同种类的几率。比如上图属于狮子和老虎的几率都是0.5 。
上面两张图是Zero-shot Learning应用在翻译的例子。这个例子的training data除了日转韩,其它都有。所以使用Zero-shot Learning后就能实现日转韩的翻译。 它的步骤大概可以理解为: 输入的英语日语韩语到机器中。 source data有label,target data没label 这个方法步骤如下: 从source data里去learn 一个性能更好的feature extractor source data没label,target data没label |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 16:41:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |