北京大学 | ASFormer:用于动作分割的Transformer模型
-
北京大学 | ASFormer:用于动作分割的Transformer模型
论文标题: ASFormer: Transformer for Action Segmentation
论文地址: https://arxiv.org/pdf/2110.08568.pdf
论文代码:https://github.com/ChinaYi/ASFormer
摘要
-
引入主题: 动作分割任务的算法通常使用时间模型来预测一分钟日常活动中每一帧发生的动作。最近的研究表明,Transformer在模拟序列数据中元素之间的关系方面具有潜力。
-
现存问题:当将Transformer直接应用于动作分割任务时,存在几个主要问题,例如,小训练集缺乏归纳偏置,处理长输入序列的缺陷,以及解码器架构在利用多个动作片段之间的时间关系来优化初始预测方面的局限性。
-
解决方法: 该论文为动作分割任务设计了一个高效的基于Transformer的模型,名为ASFormer ,该模型具有三个显著的特点:(i)由于特征的高度局部性,明确引入了局部连通性归纳先验。它将假设空间限制在一个可靠的范围内,有利于动作分割任务通过较小的训练集学习合适的目标函数。(ii)采用了一种预定义的分层表示模式,可以有效地处理长输入序列。(iii)仔细设计解码器,以优化编码器的初始预测。
-
实验结果: 在三个公共数据集上的大量实验证明了方法的有效性。
算法
如图1所示,ASFormer模型由一个编码器和几个解码器组成,用于执行迭代优化。
编码器接收视频序列并输出初始预测。编码器由一系列具有预定义层次表示模式的编码器块组成。
解码器接收编码器预测作为输入,并具有与编码器类似的架构。
编码器
编码器的输入是大小为T×D的特征序列,其中T是视频长度,D是特征维数。
编码器的第一层是一个完全连接层,用于调整输入特征的尺寸。随后是一系列编码器块。最后一个编码器块也是一个完全连接层,将输出预测大小为ye∈RT×Cy^e \in R^{T \times C}ye∈RT×C的特征,其中C表示动作类的数量。
每个编码器块包含两个子层。第一个是前馈层,第二个是单头自注意力层,并使用resnet连接,然后进行instance Norm和ReLU激活,如图1(a)所示。
与普通Transformer不同,使用Dilated Conv作用在时间轴上来作为前馈层,而不是全连接层。这种设计的灵感来自于动作分割任务的特性,即
- 缺乏大规模训练集来进行归纳偏置学习。
- 特征的高局部性,因为每个动作都在输入视频中占用连续的时间戳。与全连接层相比,时间轴卷积可以为模型带来有益的局部感应偏差。
此外,自注意力层很难在数千帧上聚焦于有意义的时间位置。为了缓解这个问题,预先定义了一个层次结构表示模式。这种分层模式的灵感来自现代神经网络设计:首先关注局部特征,然后逐渐扩大感知范围以捕获全局信息。例如,CNN通过一系列池层来实现这种模式,以扩大更高层的感受野;或者使用逐渐增大扩张率的空洞卷积。受这种分层模式成功的推动,将每个自注意力层的感受野限制在一个大小为w的局部窗口内(例如,对于帧t,我们仅使用其局部窗口内的帧计算注意权重)。然后,本地窗口的大小不断加倍(即,w=2i,i=1,2…)。同时,随着编码器深度的增加,时间卷积层的膨胀率也增加了一倍,与自我注意层保持一致。
解码器
多个动作片段之间的时间关系在动作分割任务中起着重要作用。动作片段之间有一些优先关系,例如,取瓶子接水的动作之后通常是喝水。
在本节中,来说明新设计的解码器如何在一次前向传递中对编码器输出的初始预测执行细化任务。为了更好地解释,首先引入一个解码器,然后自然地将其扩展到多个版本以执行迭代优化。
单个解码器。解码器的输入是编码器输出的初始预测。解码器的第一层是一个完全连接的层,用于调整尺寸,然后是一系列解码器块。每个解码器块的架构如图1(c)所示。与编码器类似,我们使用时间轴上的卷积作为前馈层,层次模式也用于交叉注意力层。
与自注意力层相比,交叉注意有以下区别:Q和K是从编码器和前一层的输出cat而来,而值V仅从前一层的输出中获得。
多个解码器。人们自然会将单个解码器扩展到多个版本,以执行迭代优化。在多版本中,每个解码器的输入来自前一个解码器,如图1(b)所示。
交叉注意机制允许引入外部信息来指导再细化过程。希望逐步减少外部信息的权重,避免错误积累的问题。对于每个解码器块中的输入x,对前馈层和交叉注意层的输出使用加权残差连接:
损失函数和细节
损失函数是每个帧的分类损失和平滑损失的组合。分类损失是一种交叉熵损失,而平滑损失计算帧概率的均方误差。最终损失函数为
实验
Comparison with SOTA
Ablations of the number of blocks
-