2017-08-22
论文共读小组
本期论文
One Model To Learn Them All
从语音识别、图像分类到翻译,许多领域都取得了丰硕的成果。但要解决一个问题,得到一个深层模型更好地工作,需要包括对体系结构的研究和长期的调优。特别是,对这一模型进行训练,同时在 ImageNet,多翻译任务,图像字幕(Coco 数据集),一个语音识别语料库和英语句法分析的任务。
本文模型体系结构包含多个域的模块:卷积层、注意机制和稀疏门层。这些模块中的每一个因素对于训练任务的子集都是至关重要的。有趣的是,即使一个模块对某个任务不重要,添加它也不会影响性能,而且在大多数情况下都会对所有任务会有优化。结果表明,数据较少的任务主要得益于与其他任务的联合培训,而大型任务的性能也只会略有降低。
本文工作来自 Google。
论文链接:
https://arxiv.org/pdf/1706.05137.pdf
阅读笔记精选
❶
geminifox
传统具有一定迁移学习能力的深度学习模型大多采用同一问题类型下的不同数据来训练,而本文则旨在突破此局限性,尝试创建一个统一的深度学习模型来自适应地适配解决不同领域、不同数据模态下的多个不同类型的任务,且在特定任务上的性能没有明显损失或接近于现有的主流方法结果。
本文的新意在于提出了一个组件化配置的统一的深度学习框架来克服上述局限性,通过基于编解码器框架内不同子网表示与其对应的转换空间之间的关联关系及不同模态数据间的某种隐含共享性或潜在关联性来迁移知识,以协助提高在具体应用层面看来似乎不相关的任务上的性能提高。本文框架中各组件的设计与组合通过实验验证了其合理性和有效性,但其蕴含的架构设计上的考虑及经验似乎未做过于清晰的解释。
❷
RyanHuang
这篇论文提出了一个 MultiModel,可以在各种领域中的不同问题都能取得不错的效果(论文中表示虽然效果不是最好的,但是也比目前很多的研究要好),这个模型包含包含卷积层、注意力机制、稀疏门控层。
上面提到的每个计算模块,都会在某些类任务中发挥着关键作用,在那些发挥不了关键作用的任务中,这些模块也不会干扰,反而能在大多数的情况下还能发挥一些作用。在数据比较少的任务上,用这个模型和其他任务联合训练效果尤其好,但是在大型任务的性能会稍微下降。
MultiModel 由几个模式网络、一个编码器、I/O 混合器、一个自回归解码器构成,它的主体由多个卷积层、注意力机制、和稀疏门控专家混合层组成:
1. 卷积模块的作用是发现局部模式,然后将它泛化到整个空间,包含线性整流函数 (ReLU)、SepConv 和归一层;
2. 注意力模块中的注意力机制和论文 Attention Is All You Need 中差不多;
3. 稀疏阵列混合专家层模块由一些简单的前馈神经网络(专家)和可训练的门控网络组成,其选择稀疏专家组合处理每个输入;
4. 该模型的主体由主体由 3 部分组成:仅处理输入的编码器、将编码输入与先前输出(自动回归部分)混合的混合器、以及处理输入和混合以产生新输出的解码器。
总结:个人感觉设计一种多模式架构,work 的关键是不是在于其中共享尽可能多的参数,并将不同领域的计算模块一起使用。相比这篇论文,对 2 和 3 中提到的两个模型更有兴趣,而且 2 中的论文在 github 上面有 tensor2tensor 项目的代码实现。
❸
YinongLong
不得不说 Google 的文章 title 越来越“大胆”,但估计也因为是 Google,才敢这样。关于这篇文章,整个 multimodel 可以分为两个部分,一是 modality nets,二是一些领域相关的 building blocks。
刚开始看文章的时候,我对文章的 modality nets 抱了很大的期望,因为作者在写 modality nets 时说了三个目的,一是计算量小,二是有利于后面大量特征的提取,三是将大量计算转移到共用的计算模块上,但最后看到各个 modality nets 的构建,就知道是我对 title 产生太大的迷信了。
❹
xwzhong
paper 提出了多模态多任务模型,目的是希望在一个模型中完成不同的任务,该论文重点介绍不同模块的整合。在 2016.12 也有一篇论文研究多任务模型(Overcoming catastrophic forgetting in neural networks),同时取得了不错的效果,这篇论文重点介绍了如何“整合”,即,在学习了某个任务后,如何尽量不忘记之前所学过的内容,这两篇论文有相互结合的地方。
讨论精选
❶
Robin_CityU
[batch size, sequence length, feature channels]
图像和文本都是这种表达?如果是句子,可以理解成 [batchsize, sequencelength, embedding_size];如果是图像,不应该是 [batchsize, height, width, featurechannels] 吗?如何将图像与 sequence_length 对应起来?
zhouyiwei:for text: height (sequence length), width (embedding dim), channel (1 if use only one kind of embedding).
caogang440:变成 1D 的,把 [batchsize, sequencelen, embeddingsize] 理解成 [batchsize, height = 1, width=sequencelen, channel=embeddingsize]。
ChaosFreeNeb:文本视为图像的例子可以看一下:http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ 里面有详细的解释和代码。
❷
soloice
Our model architecture incor-porates building blocks from multiple domains.
单模型的边界在哪里?为什么把各个组件说成是单模型的 building block,而不当成单独的模型?这和普通的 multi-task learning 又有什么区别?区别仅仅在于这篇文章训出来的效果好,没有主从任务之分吗?
Miopas:1. 单模型的边界问题我也不是很清晰,不过这里没有“把各个组件说成是单模型的 building block”,而是提出了可以加入各种模型的框架。 2. 普通的 multi-task learning 一般都是在用一个领域内的吧(在 introduction 里面有提到)。
❸
smileli
language (text data), images, audio, and categorical data.
相当于还是不同的数据用不同的模型。
mev:除了输入输出用的 task oriented modality net, 模型的中间部分应该是共享的。