【深度学习】One Model to Learn Them All详解

本文详细解析谷歌2017年的论文《One Model To Learn Them All》,探讨如何使用一个通用模型解决跨领域的AI问题,如图像分类、自然语言处理等。文章介绍了模型的结构,包括body网络的卷积模块、注意力模块和混合专家模块,以及输入编码、I/O混频器和解码器等关键组件。研究发现,这种通用模型在多个任务上训练不会损害单个任务的精度,甚至可能提升小数据集任务的性能。
摘要由CSDN通过智能技术生成

Kaiser, Lukasz, et al. “One Model To Learn Them All.” arXiv preprint arXiv:1706.05137 (2017).

概述

Google于2017年6月16日在arxiv上提交了这篇论文,甫一问世立刻引发各方关注。除了标题劲爆之外,本文的野心和气魄令人惊叹,实验也确实给出了一些相当有信息量的结果。

项目的github页面给出了基于tensorflow的源码,完成度一般。本文结合此源码讲解系统结构。

系统

问题

本文尝试用一个通用模型解决跨领域的各类人工智能问题,例如:

  • 图像分类(图像 -> 类标)
  • 看图说话(图像 -> 自然语言)
  • 翻译(自然语言 -> 自然语言)
  • 语义分割(自然语言 -> 分割+类标)

各领域输入输出的信息类别不同,在本文中称为不同形态(modality)。

这种向着大一统模型的努力并非本文首创,创新点如下:

工作 领域 任务
以往文章 单一 多个
e.g. 翻译 英翻法+英翻德
本文 多个 多个
e.g. 翻译+图像分类 英翻法+英翻德+1000类分类

结构

为了适应不同形态的输入和输出,本文的网络被抽象成如下结构:
这里写图片描述
inputoutput:相同/不同形态的数据(例如图像和类标)。
sourcetarget:系统内部的表达。

系统通过三个部分:modality_in, modality_out以及body来完成数据流。

三大理念

  • 绝大部分计算量都集中在body网络中,两个modality网络设计尽量精简。
  • 系统内部的表达(target, source)尺寸不固定。
  • 对于相同形态的不同问题(例如“看图说话”和“英翻德”的输出),使用相同的modality网络

以下分别介绍body网络和modality网络的具体结构。

body网络-模块

body网络各部分都由三种基本模块(block)构成,以下一一介绍。

卷积模块Conv

子模块-ConvStep

这里写图片描述

SepConv:分层卷积,类似这篇博客介绍过的Factorized卷积。有三个超参数:扩展d,步长s,核尺寸f
LayerNorm: 分层归一化。

实现参见/models/common_layers.pyconv_block_internal函数/subseparable_conv_block函数。

Conv构成

使用上述子模块组成卷积模块Conv
这里写图片描述
主体结构是两个residual结构。最后虚线的dropout只在训练时使用。

实现参见/models/slicenet.pymulti_conv_res函数。

注意力模块Attention

在处理时间序列信号时,以往工作多采用RNN, LSTM类型系统。此类系统每一个时刻输出取决于前时刻记忆,天然地不利于并行计算,在训练时尤其耗时。

本文则利用Attention模块,能够同时处理输入序列的各个元素。细节参考自同一团队的论文Attention is All You Need1

该文对应模型为/models/transformer.py

子模块-AddTiming

由于本文不再将时间序列顺序输入系统,所以需要额外告知系统每一元素在序列中的相对位置

首先考虑1维信号 x x x,输入尺寸为 L × D L\times D L×D

对于 D D D通道,按照指数坐标均匀设置从 2 π 2\pi 2π 10000 ⋅ 2 π 10000\cdot 2\pi 100002π的周期,共有 D / 2 D/2 D/2个采样: T 0 , T 1 . . . T D / 2 − 1 T_0, T_1...T_{D/2-1} T0,T1...TD/21
这里写图片描述

每通道的时间信号为上述波长的正弦/余弦,其自变量范围为 [ 0 , L − 1 ] [0,L-1] [0,L1](e.g. D=12, L=128):
D=12, L=128

得到的时间信号和输入信号尺寸相同,直接相加。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值