特征级变换
摘要
许多现实问题需要整合多个信息源。有时这些问题涉及多种不同的信息模态——视觉、语言、音频等——例如理解电影场景或回答关于图像的问题。其他时候,这些问题涉及同一类型的多个输入源,例如总结多个文档或以另一种风格绘制图像。
处理此类问题时,通常需要在一个信息源的上下文中处理另一个信息源;例如,在上面的右例中,可以在问题的上下文中提取图像的含义。在机器学习中,通常将这种基于上下文处理称为条件化:模型执行的计算由从辅助输入中提取的信息条件化或调制。
找到一种有效的方法来条件化或融合信息源是一个开放的研究问题,本文专注于一种特定方法族,称为特征级变换。将研究特征级变换在许多神经网络架构中的应用,以解决大量且多样化的问题;其成功归因于在不同设置中学习条件输入的有效表示的灵活性。
特征级变换
为了激发特征级变换,从一个基本示例开始,其中两个输入分别是图像和类别标签。在此示例中,关注构建各种类别(小狗、船、飞机等)图像的生成模型。模型将类别和随机噪声源(例如,从正态分布采样的向量)作为输入,并输出请求类别的图像样本。
第一种本能可能是为每个类别构建一个单独的模型。对于少量类别,这种方法还不错,但对于数千个类别,很快会遇到扩展问题,因为存储和训练的参数数量随类别数量增长。也错过了利用类别间共性的机会;例如,不同类型的狗(小狗、梗犬、斑点狗等)共享视觉特征,可能在从抽象噪声向量映射到输出图像时共享计算。
现在假设,除了各种类别,还需要建模大小或颜色等属性。在这种情况下,无法合理地期望为每个可能的条件组合训练一个单独的网络!检查一些简单选项。
快速修复方法是将条件信息的表示连接到噪声向量,并将结果视为模型的输入。这种解决方案非常参数高效,因为只需要增加第一层权重矩阵的大小。然而,这种方法隐含地假设模型需要在输入处使用条件信息。也许这个假设是正确的,也许不是;也许模型直到生成过程后期(例如,在根据纹理条件化生成最终像素输出之前)才需要合并条件信息。在这种情况下,将迫使模型在许多层中保持不变地携带此信息。
由于此操作成本低廉,不妨避免任何此类假设,并将条件表示连接到网络中所有层的输入。称这种方法为基于连接的条件化。
基于连接的条件化简单地将条件表示连接到输入。结果通过线性层传递以产生输出。
另一种将条件信息集成到网络中的高效方法是通过条件偏置,即根据条件表示向隐藏层添加偏置。
有趣的是,条件偏置可以被视为实现基于连接的条件化的另一种方式。考虑应用于输入x和条件表示z连接的全连接线性层。
同样的论点适用于卷积网络,前提是忽略零填充带来的边界效应。
基于连接的条件化等同于条件偏置。可以将矩阵向量乘积分解为两个矩阵向量子乘积。然后可以添加结果两个向量。z相关向量是条件偏置。
另一种将类别信息集成到网络中的高效方法是通过条件缩放,即根据条件表示缩放隐藏层。
条件缩放的一个特殊实例是特征级S形门控:将每个特征缩放为0到1之间的值(通过应用逻辑函数强制执行),作为条件表示的函数。直观上,此门控允许条件信息选择哪些特征前传,哪些被清零。
鉴于加性和乘性交互都显得自然和直观,应该选择哪种方法?支持乘性交互的一个论点是它们在学习输入之间关系时有用,因为这些交互自然识别“匹配”:乘以符号一致的元素比乘以符号不一致的元素产生更大的值。此属性是为什么点积通常用于确定两个向量的相似程度。
支持加性交互的一个论点是它们对于较少依赖于两个输入联合值的应用更自然,例如特征聚合或特征检测(即,检查特征是否存在于两个输入中的任何一个)。
本着尽可能少对问题做假设的精神,不妨将两者结合成条件仿射变换。
仿射变换是形式为y = m * x + b的变换。
上述所有方法共享共同特征:它们在特征级别上作用;换句话说,它们利用条件表示和条件网络之间的特征级交互。当然可以使用更复杂的交互,但特征级交互通常在有效性和效率之间取得良好平衡:预测的缩放和/或移位系数数量随网络中特征数量线性扩展。此外,在实践中,特征级变换(通常跨多个层复合)通常具有足够容量来建模各种设置中的复杂现象。
最后,这些变换仅强制执行有限的归纳偏置并保持领域无关。此品质可能是一个缺点,因为某些问题可能更容易用更强的归纳偏置解决。然而,正是这一特性使得这些变换在问题领域间如此广泛有效,如后续将回顾的。
命名法
为了继续讨论特征级变换,需要抽象掉乘性和加性交互之间的区别。不失一般性,专注于特征级仿射变换,并采用Perez等人的命名法,其将条件仿射变换形式化为首字母缩略词FiLM,即特征级线性调制。
严格来说,线性是用词不当,因为允许偏置,但希望更严谨的读者为了更好听的缩略词原谅我们。
在将FiLM层插入其架构后,称神经网络使用FiLM调制或FiLM化。这些层由某种形式的条件信息参数化,从条件信息到FiLM参数(即移位和缩放系数)的映射称为FiLM生成器。换句话说,FiLM生成器基于某些辅助输入预测FiLM层的参数。注意,FiLM参数是一个网络中的参数,但来自另一个网络的预测,因此它们不是具有固定权重的可学习参数,如完全传统意义上。为简单起见,可以假设FiLM生成器输出网络架构所有FiLM参数的连接。
FiLM生成器处理条件信息并产生描述目标网络应如何改变其计算的参数。此处,FiLM化网络的计算由两个FiLM层条件化。
顾名思义,FiLM层对其输入应用特征级仿射变换。通过特征级,意味着缩放和移位按元素应用,或在卷积网络的情况下,按特征图应用。
稍微扩展卷积情况,特征图可以被视为在不同空间位置评估的相同特征检测器,在这种情况下,对所有空间位置应用相同的仿射变换是有意义的。换句话说,假设x是FiLM层的输入,z是条件输入,γ和β是z相关的缩放和移位向量,
FiLM(x) = γ(z) ⊙ x + β(z).
可以与以下全连接和卷积FiLM层交互,以获取它们允许的调制类型的直觉:
在全连接网络中,FiLM对每个特征应用不同的仿射变换。首先,每个特征(或通道)由相应的γ参数缩放。然后,每个特征(或通道)由相应的β参数移位。
在卷积网络中,FiLM对每个通道应用不同的仿射变换,跨空间位置一致。
除了是条件特征级变换的良好抽象外,FiLM命名法很好地适用于任务表示的概念。从多任务学习的角度,可以将条件信号视为任务描述。更具体地说,可以将所有FiLM缩放和移位系数的连接视为如何调制条件网络的指令和手头任务的表示。后续将探索和说明此想法。
文献中的特征级变换
特征级变换进入应用于许多问题设置的方法,但由于其简单性,其有效性很少在其他新颖研究贡献的背景下被强调。以下是文献中特征级变换的一些显著示例,按应用领域分组。这些应用的多样性强调了特征级交互学习有效任务表示的灵活、通用目的能力。
视觉问答+
Perez等人使用FiLM层构建在CLEVR数据集上训练的视觉推理模型,以回答关于合成图像的多步骤、组合问题。
语言管道充当FiLM生成器。每个残差块中的FiLM层调制视觉管道。
每个残差块添加了一个FiLM层。
模型的语言管道是FiLM生成器,提取问题表示,线性映射到FiLM参数值。使用这些值,插入每个残差块内的FiLM层条件化视觉管道。模型在图像-问题-答案三元组上端到端训练。Strub等人后来通过使用注意力机制在关注语言输入和逐层生成FiLM参数之间交替来改进模型。此方法能够更好地扩展到具有更长输入序列的设置,如对话,并在GuessWhat?!和ReferIt数据集上评估。
de Vries等人利用FiLM条件化预训练网络。其模型的语言管道通过条件批归一化调制视觉管道,这可以被视为FiLM的特殊情况。模型学习在GuessWhat?!和VQAv1数据集上回答关于真实世界图像的自然语言问题。
语言管道充当FiLM生成器,并直接将问题表示传递给网络其余部分。FiLM层通过使批归一化参数查询相关来调制预训练视觉管道。
视觉管道包括预训练的残差网络,在整个训练过程中固定。语言管道通过扰动残差网络的批归一化参数来操纵视觉管道,这些参数在激活被归一化为零均值和单位方差后重新缩放和重新移位特征图。如先前提示,条件批归一化可以被视为FiLM的实例,其中后归一化特征级仿射变换被FiLM层替换。
风格迁移+
Dumoulin等人使用特征级仿射变换——以条件实例归一化层的形式——条件化风格迁移网络于所选风格图像。如前一节讨论的条件批归一化,条件实例归一化可以被视为FiLM的实例,其中FiLM层替换后归一化特征级仿射变换。对于风格迁移,网络将每种风格建模为单独的实例归一化参数集,并应用具有这些风格特定参数的归一化。
FiLM生成器预测描述目标风格的参数。风格迁移网络通过使实例归一化参数风格相关来条件化。
Dumoulin等人使用简单嵌入查找来产生实例归一化参数,而Ghiasi等人进一步引入风格预测网络,与风格迁移网络联合训练,直接从给定风格图像预测条件参数。在本文中,选择使用FiLM命名法,因为它与归一化操作解耦,但Perez等人使用的FiLM层本身深受Dumoulin等人使用的条件归一化层启发。
Yang等人使用相关架构进行视频对象分割——在整个视频中分割特定对象的任务,给定该对象在第一帧中的分割。其模型使用特征级缩放因子条件化视频帧上的图像分割网络于提供的首帧分割,并使用位置偏置条件化于前一帧。
到目前为止,覆盖的模型有两个子网络:应用特征级变换的主网络和输出这些变换参数的辅助网络。然而,FiLM化网络和FiLM生成器之间的这种区别并非严格必要。例如,Huang和Belongie提出替代风格迁移网络,使用自适应实例归一化层,通过简单启发式计算归一化参数。
模型处理内容和风格图像直到自适应实例归一化层。FiLM参数计算为风格特征图的空间均值和标准差统计。FiLM化特征图馈送到网络其余部分以产生风格化图像。
自适应实例归一化可以解释为在模型中途插入FiLM层。然而,不依赖辅助网络从风格图像预测FiLM参数,主网络本身用于提取用于计算FiLM参数的风格特征。因此,模型可以被视为FiLM化网络和FiLM生成器。
图像识别+
如先前小节讨论,没有什么阻止我们将神经网络激活本身视为条件信息。此想法产生自条件模型。
FiLM生成器预测条件化于网络内部激活的FiLM参数。任意输入向量(或特征图)调制下游激活。
高速公路网络是应用此自条件化原理的主要示例。它们从LSTM在其输入、遗忘和输出门中大量使用特征级S形门控以调节信息流中汲取灵感。
ImageNet 2017获胜模型也以自条件化方式使用特征级S形门控,作为“重新校准”层激活条件化于自身的方式。
挤压和激励块使用S形门控。首先,网络将输入特征映射到门控向量。然后门控向量与输入特征图相乘。
自然语言处理+
对于统计语言建模(即预测句子中的下一个词),LSTM构成一类流行的循环网络架构。LSTM严重依赖特征级S形门控以控制进出内存或上下文单元c的信息流,基于每个时间步t的隐藏状态h和输入x。
同样在语言建模领域,Dauphin等人在其提出的门控线性单元中使用S形门控,该单元使用一半输入特征对另一半应用特征级S形门控。Gehring等人采用此架构特征,引入用于机器翻译的快速、可并行化模型,形式为全卷积网络。
门控线性单元激活函数使用S形门控。一半输入特征通过S形函数产生门控向量。然后门控向量与第二半特征相乘。
门控注意力阅读器使用特征级缩放,通过条件化文档阅读网络于查询从文本提取信息。其架构包括多个门控注意力模块,涉及文档表示标记和通过软注意力在查询表示标记上提取的标记特定查询表示之间的元素乘法。
Dhingra等人使用条件缩放将查询信息集成到文档处理网络中。对查询表示标记应用软注意力产生缩放向量。然后缩放向量与输入文档表示标记相乘。
强化学习+
门控注意力架构使用特征级S形门控融合语言和视觉信息,在VizDoom 3D环境中训练代理遵循简单“转到”语言指令。
Chaplot等人使用S形门控作为多模态融合机制。指令表示通过S形层映射到缩放向量。然后缩放向量与输入特征图相乘。策略网络使用结果决定下一个动作。
Bahdanau等人使用FiLM层条件化神经模块网络和基于LSTM的策略,以在2D网格世界中遵循基本、组合语言指令(排列对象和前往特定位置)。他们使用来自另一个基于FiLM网络的奖励以对抗方式训练此策略,训练以区分实现指令状态的真实示例和失败策略轨迹状态。
在指令跟随之外,Kirkpatrick等人还使用游戏特定缩放和偏置条件化共享策略网络,训练玩10种不同Atari游戏。
生成建模+
DCGAN的条件变体,生成对抗网络的公认网络架构,使用基于连接的条件化。类别标签作为特征图广播,然后连接到鉴别器和生成器网络中的卷积和转置卷积层的输入。
基于连接的条件化用于类条件DCGAN模型。每个卷积层与广播标签沿通道轴连接。然后结果特征图堆栈卷积以产生条件化输出。
对于卷积层,基于连接的条件化要求网络学习冗余卷积参数以解释每个常数、条件特征图;因此,直接应用条件偏置更参数高效,但两种方法仍然数学等价。
PixelCNN和WaveNet——图像和音频自回归生成建模的最新进展 respectively——使用条件偏置。PixelCNN中最简单的条件化形式向所有卷积层输出添加特征级偏置。在FiLM术语中,此操作等同于在每个卷积层后插入FiLM层并将缩放系数设置为常数值1。
作者还描述了位置相关偏置方案,由于缺乏特征级属性,无法用FiLM层表示。
PixelCNN使用条件偏置。模型首先将高级图像描述映射到偏置向量。然后添加偏置向量到输入特征图堆栈以条件化卷积层。
WaveNet描述了两种方式,其中条件偏置允许外部信息基于条件输入调制音频或语音生成过程:
全局条件化将相同条件偏置应用于整个生成序列,用于例如条件化于说话者身份。
局部条件化应用条件偏置,其在生成序列的时间步上变化,用于例如让文本到语音模型中的语言特征影响产生哪些声音。
如在PixelCNN中,WaveNet中的条件化可以被视为在每个卷积层后插入FiLM层。主要区别在于FiLM生成网络的定义方式:全局条件化将FiLM生成网络表示为嵌入查找,广播到整个时间序列,而局部条件化将其表示为从条件输入序列到FiLM参数输出序列的映射。
语音识别+
Kim等人使用条件归一化形式调制深度双向LSTM。如视觉问答和风格迁移小节讨论,条件归一化可以被视为FiLM的实例,其中后归一化特征级仿射变换被FiLM层替换。
Kim等人通过使通常LSTM架构适应条件化其各种门于话语摘要来实现说话者适应。
此处关键区别是条件信号不是来自外部源,而是来自每层中提取的话语摘要特征向量以自适应模型。
域适应和少样本学习+
对于域适应,Li等人发现更新在一个域上训练的网络