PhoenixPeng's blog.

E3D-Lstm

2023/11/29

一、前言

  现实生活中许多数据都同时具有时间特征和空间特征,例如人体的运动轨迹,连续帧的视频等,每个时间点都对应一组数据,而数据往往又具有一定的空间特征。因此要在这样的时间序列数据上开展分类,预测等工作,就必须在时间(temporal)和空间(spatial)上对其进行建模和特征抽取。

  时空预测学习的一个基本问题是如何有效地学习视频推理或推理的良好表示。在该领域目前最主流的模型仍然是RNN,它具有特有的门结构设计,能对时间序列特征具有强大的抽取能力。但RNN 并不能很好的学习原始特征的高阶表示或捕获长期关联性。这不利于对空间信息进行提取。空间建模当属CNN,其具有强大的空间特征抽取能力,而3D CNN相对于RNN更有利于学习到信息的高级表示

  那么我们是否可以将这两者进行结合呢。使得该模型既能对时间依赖性有所敏感,也能学习到空间的局部动态特征。简单的办法是将二者串联堆叠或者并联结合,但测试发现这么做并不能带来太大的提升,这是因为二者的工作机制差距太大,简单的结合并不能很好的实现优势互补

  为此,本文作者提出了一种用于时空预测学习的新模型,称为 Eidetic 3D LSTM (E3D-LSTM)。🔹使用3D卷积代替原始LSTM中的门更新操作,使LSTM不仅能在时间层面,也能在空间层面上进行短期依赖的表象特征和运动特征的提取,从而在更深的机制层面实现两种网络的结合。🔹在LSTM中引入自注意力(self-attention)机制,进一步强化了LSTM的长时记忆能力,使其对长距离信息作用具有更好的感知力。

短期依赖:它捕获相邻时间戳之间的短期变化,比如某两帧间物体变化趋势,还要图片本身的局部信息等等。

长期依赖:一些高阶有规律的信息,比如长期的周期性,和一些图片的高级时间表征。

二、E3D-LSTM

1. 循环网络中的3D卷积

  下图展示了三种不同的3D卷积和LSTM的结合方法

  图中每个颜色的模块都代表了多层相应的网络。图(a)和图(b)是两种3D卷积和LSTM结合的基线方法,3D卷积和LSTM线性叠加,主要起到了编码(解码器)的作用,并没有和RNN有机制上的结合。图(a)中3D卷积作为编码器,输入是一段视频帧,图(b)中作为解码器,得到每个单元的最终输出。这两个方法中的绿色模块使用的是时空长短时记忆网络(ST-LSTM),这种LSTM独立的维护两个记忆状态M和C,但由于记忆状态C的遗忘门过于响应具有短期依赖的特征,因此容易忽略长时依赖信息,因此E3D-LSTM在ST-LSTM的基础添加了自注意力机制和3D卷积操作,在一定程度上解决了这个问题。

  图(c)是E3D-LSTM网络的结构,3D卷积作为编码-解码器(蓝色模块),同时和LSTM结合(橙色模块)。E3D-LSTM既可用于分类任务,也可用于预测任务。分类时将所有LSTM单元的输出结合,预测时则利用3D卷积解码器的输出作为预测值。

2. 逼真的记忆转换

  下图展示的是ST-LSTM的架构。它和标准ConvLSTM相比,ST-LSTM还增加了不同层间对应位置的cell连接。水平灰色连接线表示标准LSTM的单元连接,竖直黄色连接线表示层间同一时刻的单元连接,通过张量M传播,注意当l=1时,\(\textcolor{blue}{M_t^{l-1}=M_{t-1}^L}\)(作者认为t时刻的顶层信息对t+1时刻的底层信息影响很大),这样记忆信息就能同时在层内和层间传播。

  下图是ST-LSTM的单元结构,主要分为两个部分:

  其中一部分处理同一层上一个时刻(\(\textcolor{blue}{t-1}\))的数据,输入为\(\textcolor{blue}{x_t,h_{t-1}^k,c_{t-1}^k}\),另一部分处理同一个时刻(\(\textcolor{blue}{t}\))上层的状态,输入为\(\textcolor{blue}{x_t,h_{k-1}^t,m_{t}^{k-1}}\)

  \(\textcolor{blue}{x_t}\):为当前时刻输入到最低层细胞的原始数据。

  \(\textcolor{blue}{m_{t}^{k-1}}\):来自上一层同一个时刻的时空记忆状态。这个值沿不同的网络层垂直传播。

  \(\textcolor{blue}{h_{t-1}^{k}}\):来自上一个时刻的输出状态,这个值沿同一层不同时刻水平传播。

  \(\textcolor{blue}{c_{t-1}^{k}}\):来自上一个时刻的隐状态值,这个值沿同一层不同时刻水平传播。这些变量大小都是\(\textcolor{blue}{H\times W\times C}\)

  上图展示的更加直观,其中门控结构有三种,分别是输入门:\(\textcolor{blue}{i_{t},i_{t}^\prime}\),遗忘门:\(\textcolor{blue}{f_{t},f_{t}^\prime}\),输出门:\(\textcolor{blue}{o_{t}}\)(整合并控制时间和空间信息)。右上角带一撇的门都是用于处理时空记忆状态\(\textcolor{blue}{m_{t}^{k-1}}\)。其全部的记忆状态转换(更新)函数如下:

  而该文章所提出的 Eidetic 3D LSTM 的架构如下图所示:

  其中红色箭头表示短期信息流,蓝色箭头表示长期信息流。同样的E3D-LSTM也有四个输入,其分别是:

  \(\textcolor{blue}{X_t}\):来自上一层的编码器或隐藏状态的 3D-Conv 特征映射;

  \(\textcolor{blue}{H_{t-1}^{k}}\):前一个时刻的隐藏状态;

  \(\textcolor{blue}{C_{t-\tau:t-1}^{k}}\):来自前一个时刻的记忆隐状态,是一个维度为\(\textcolor{blue}{\tau \times T \times H \times W \times C}\)的五维张量,代表之前\(\textcolor{blue}{\tau}\)个时间步所有的隐藏状态。

  \(\textcolor{blue}{M_{t}^{k-1}}\):来自上一层同一个时刻的时空记忆状态。

  和ST-LSTM相比,具要有以下改进:

  1️⃣输入数据是四维张量,对应时刻\(\textcolor{blue}{t-\tau}\)\(\textcolor{blue}{t-1}\)的连续帧序列,因此现在每个单元时间步都对应一段视频,而不是单帧视频。

  2️⃣针对帧序列数据额外添加了一个召回门(recall gate)以及相关结构,用于实现长时依赖学习,也就是自注意力机制。这部分对应网络名称中的Eidetic。

  3️⃣由于输入数据变成了四维张量,因此在更新公式中采用3D卷积操作而不是2D卷积。

  大部分门结构的更新公式和ST-LSTM相同,作者为了捕获长期帧交互,通过提出一种新的记忆 RECALL 机制来改进记忆状态的循环转换函数:

  这里的卷积 * 表示的三维卷积操作,前三个门的作用和ST-LSTM类似,只不过是用\(\textcolor{blue}{\mathcal{R}_t}\)替代了前面的\(\textcolor{blue}{f_t}\),这个\(\textcolor{blue}{\mathcal{R}_t}\)的作用就是控制历史记录所记录的位置和内容。\(\textcolor{blue}{\bigodot}\)是点乘,\(\textcolor{blue}{\cdot}\)是矩阵乘积。

由于输入数据是四维张量,因此这里所有门的更新值都是四维张量。将\(\textcolor{blue}{\mathcal{R}_t}\)维度调整为\(\textcolor{blue}{THW \times C}\),将\(\textcolor{blue}{C_{t-\tau:t-1}^{k}}\)维度调整为\(\textcolor{blue}{\tau THW \times C}\),即可实现矩阵乘法。由于添加了召回门,因此\(\textcolor{blue}{C_t^k}\)的输入是\(\textcolor{blue}{\mathcal{I}_t,\mathcal{G}_t,C_{t-1}^k}\)以及召回门的输出。

\(\textcolor{blue}{\tau}\)的大小决定\(\textcolor{blue}{\mathcal{R}_t}\)涉及多少个历史记忆状态。,作者则是直接把\(\textcolor{blue}{\tau}\)设置为\(\textcolor{blue}{t-1}\)

  \(\textcolor{blue}{\mathcal{I}_t \bigodot\mathcal{G}_t}\)能实现对视频局部表象特征和运动特征的抽取,\(\textcolor{blue}{C_{t-1}^{k}}\)刻画了短时依赖信息,最后召回门(RECALL 函数)被实现为一个注意模块,用于计算编码的本地模式与整个内存空间之间的关系。它的输出则能从过去的所有历史记忆中选择有用的部分,有助于长期依赖信息的学习。最后通过对它们的元素总和应用层归一化将它们集成到一个统一的网络中。

  作者还想利用相同的 RECALL 方法用在了不同层同一时间步的连接\(\textcolor{blue}{M_{t}^{1:k}}\)(M记忆单元的更新),但事实证明它的帮助不大。这是因为不同层在同一时刻学习到的信息并没有太好的依赖性。所以M的更新和原来一样,不过换成了三维的卷积操作。输出隐藏状态为:

  其中\(\textcolor{blue}{W_{1\times1\times1}}\)\(\textcolor{blue}{1\times1\times1}\)的卷积,用于通道数变换。\(\textcolor{blue}{\mathcal{G}_t^\prime}\)\(\textcolor{blue}{\mathcal{F}_t^\prime}\)是时空存储器的门结构。 Ot 是输出门。用于通道号的变换。

  作者最后说了自己提出的这个Attention机制的运用与借鉴论文里面的不同之处:注意机制不是应用于输出状态,而是应用于记忆转换期间。它是用来唤起过去的记忆,从遥远的时间戳,以记忆和提取被感知到的有用的信息。我们发现学习注意过去的记忆状态有助于回忆长期的历史背景。

3. 自监督辅助学习

  在许多监督学习任务,例如视频动作识别中,没有足够的监督信息和标注信息来帮助训练一个令人满意的RNN,因此可以将视频预测作为一个辅助的表征学习方法,来帮助网络更好的理解视频特征,并提高时间域上的监督性。

  考虑两个任务:像素级未来帧预测和另一个视频级分类任务(在本文的例子中是早期活动识别)。对于帧预测,目标函数为:

  其中\(\textcolor{blue}{\hat{\mathcal{X}}}\)\(\textcolor{blue}{\mathcal{X}}\)分别是预测的和真实的未来帧。 F表示Frobenius归一化。

  对于早期活动识别,使用多任务学习目标使这两个任务的模型在端到端训练中共享相同的网络主干:

  其中\(\textcolor{blue}{\hat{\mathcal{Y}}}\)\(\textcolor{blue}{\mathcal{Y}}\)是高级预测和相应的真实类别。 \(\textcolor{blue}{\mathcal{L}_{ce}}\)是分类的交叉熵损失,\(\textcolor{blue}{λ}\)是权重因子。

  这样通过将预测任务的损失函数嵌入到识别任务中,以及主干网络的共享,能在一定程度上帮助识别任务学习到更多的时序信息。为了保证任务的过度平滑,额外添加了一个权重因子,会随着迭代次数的增加而线性衰减:

  其中\(\textcolor{blue}{λ(0)}\)\(\textcolor{blue}{η}\)分别是\(\textcolor{blue}{λ(i)}\)的最大值和最小值,控制辅助任务角色的下降速度。我们将这种方法称为自我监督辅助学习。

三、实验

  作者在两个任务上评估所提出的 E3D-LSTM 模型:未来视频预测和早期活动识别。

1. 未来的视频预测:移动 MNIST

  作者首先在常用的带有移动数字的合成基准数据集上对照最先进的视频预测模型来评估 E3D-LSTM 模型。

移动 MNIST 数据集是通过从原始 MNIST 数据集中随机采样两个数字并使其在 64 × 64 像素的黑色画布内以恒定速度和角度在边界处浮动和弹跳来构建的。

  🧪实验结果1:表 1 显示了使用文献中常见设置的评估模型的性能:根据之前 10 个观测值生成 10 个未来帧(表示为 10 → 10)。

  🧪实验结果2:图 3(a) 显示了定性比较,其中E3D-LSTM模型比其他方法更好地从纠缠数字预测未来帧。

  为了证明E3D-LSTM模型能够更好地处理跨多个时间戳的有用历史表示,作者做了一个Copy Test,是在较长的输入序列中,当出现周期性干扰时,让网络记忆有用的信息。

  看右边那个图,这个测试是这样做的,训练的时候有三段输入Prior context,seq1和seq2, Prior context先输入到网络,这个prior context和seq2是一样的,用黑色箭头标记的帧是输入,用红色箭头标记的帧是预期输出。训练的时候,目标是2个,预测seq1的未来10帧,预测seq2的未来10帧,而测试的时候,只预测seq2的未来10帧,这样,seq1的预测在训练中就是一种比较强的干扰,就是为了看看E3D-LSTM的这种网络抗干扰的效果。

  🧪实验结果3:结果所有的基线模型都受到Seq 2中不相关帧的影响,并逐渐忘记了之前情景中的显著信息,然而,由于eidetic 3D记忆,E3D-LSTM模型能够捕获长期的视频帧交互,并且在这两个指标上都表现良好。这表明E3D-LSTM 模型可以更好地关注跨多个时间戳的有用历史表示。复制测试表明 E3D-LSTM 网络能够有效地模拟长程周期性运动。

  🧪实验结果4:作者进行了一系列的消融研究,并将结果总结在表 2 中。

  可以看到不管是添加3D卷积还是自注意力机制,网络性能相对于基线方法都有提升。

2. 未来视频预测:KTH 动作

  作者评估了所提出的 E3D-LSTM 模型对真实世界数据集的视频预测。

KTH 动作数据集:包含 25 个人执行 6 种动作,包括步行、慢跑、跑步、拳击、挥手和拍手。平均每个视频片段持续 4 秒。本文使用 1-16 号人员进行训练,使用 17-25 号人员进行测试。当模型经过训练后,可以根据之前 10 个观察结果预测接下来的 10 帧。测试时间的预测范围扩展到 20 或 40 个时间戳。

  🔬实验结果1:表 3 显示了所提出的模型和最先进方法的定量结果。E3D-LSTM 模型在预测未来 10 帧、20 帧和复制测试这三种设置中的表现优于最先进的方法。这些实证结果证明了 E3D-LSTM 模型对于时空数据建模的有效性。

  🔬实验结果2:图 4 比较了代表性的生成帧。作者选择了具有相对复杂的时空变化(运动轨迹和人物尺寸)的视频序列进行评估。

  由此上半部分的实验结果可以看出,E3D-LSTM 预测未来的运动轨迹更准确,而 PredRNN++ 和 ConvLSTM 错误地预测了离开场景的人。

  🔬实验结果3:下半部分显示了复制测试,提供了预期的输出作为先前的输入。我们直接将在第一个设置下训练的模型应用于此测试。如果没有先验上下文,就很难预测某些情况下的人体运动。借助先前的输入,E3D-LSTM 从其记忆中获益最多,并且能够很好地响应快速的外观变化。相比之下,PredRNN++ 和 ConvLSTM 由于缺乏对长期数据关系的建模,无法从遥远的观测中捕获有用的时空模式。

3. 真实视频预测应用:交通流预测

  作者在 TaxiBJ 数据集上进一步评估了作者的方法,该数据集包含连续热图中的真实交通流量数据。

TaxiBJ 数据集是使用北京出租车的 GPS 监视器从混乱的现实环境中收集的。每帧都是一个 32×32×2 的热图。最后一个维度表示同一区域的进出交通流强度。

  🎥实验结果1:在表 4 中报告每个时间戳的 MSE,其中较低的分数表示更好的预测结果:

  🎥实验结果2:在图 5 中展示了一个预测示例。可视化生成的热图和真实实况热图之间的差异。总体而言,E3D-LSTM 模型优于其他方法,在大多数区域中差异强度最低。

4. 早期活动识别

  为了验证 E3D-LSTM 模型可以有效地学习高级视频表示,作者进行了早期活动识别实验。该任务是在仅观察一小部分帧后预测视频中的活动类别。我们选择不对活动识别任务的完整视频进行评估,因为当模型看到完整视频时,它可能仅根据场景信息做出决策,例如仅看到最后一帧就足以识别许多动作。因此,全长视频任务可能与我们之前的视频预测任务不太一致,在视频预测任务中,顺序趋势和因果关系很重要。

  Something-something 数据集是最近的活动/动作识别基准。本文使用标准和官方子集,其中包含 56, 769 个短视频作为训练集,7, 503 个视频作为 41 个动作类别的验证集。视频长度范围为 2 至 6 秒,帧速率为 24 fps。其中模型在观察每个视频的前 25% 或 50% 帧后预测动作类型。

  📷实验结果1:表 5 显示了 E3D-LSTM 网络相对于最先进的前馈 3D-CNN 的分类精度。在使用前 25% 和 50% 帧的两种设置中,E3D-LSTM 模型的表现优于其他方法,显示了其在学习高级时空表示方面的有效性。

  📷实验结果2:图 6 显示了两对很容易混淆的视频活动,尤其是在观察如此有限的情况下。实验证明该模型能够正确预测了书籍的崩溃,但仅在前 25% 的帧内明确显示了其趋势。这种推理能力来自于我们模型的集成设计,以捕获短期运动和长期依赖性。另一方面,由于前馈 3D-CNN 通过采样和组装来建模长期关系,因此它在寻找因果关系之间的时间依赖性方面表现不佳。

  📷实验结果3:作者进行了与第 1 节类似的消融研究,并将结果总结在表 6 中。前两行的结果表明,在 RNN 内更深入地集成 3D-Conv 不仅有助于像素级视频预测,而且还有助于提高级活动识别。第 3 行和第 4 行的结果显示了所提出的 Eidetic 3D LSTM 中两个重要组成部分的贡献:a)3D 卷积特征,b)记忆注意力机制。这两个组件对于有效建模时空数据都很有用且重要。

  📷实验结果4:表 7 显示了在不同环境中应用自我监督训练。所提出的自监督辅助学习方法比其他替代方案表现更好,包括使用视频预测模型作为网络初始化,或在这两个任务下以固定的目标函数比率训练模型。

  📷实验结果5:作者通过使分类器仅依赖于最后 5 个循环输出状态的串联来实现在线早期活动识别。表8显示了实验结果。尽管准确性略有下降,但它可以实现在线预测。

四、总结

  该模型将3D卷积集成于LSTM,并改变了LSTM的门更新操作,使LSTM不仅能在时间层面,也能在空间层面上进行短期依赖的表象特征和运动特征的抽取,从而在更深的机制层面实现两种网络的结合。此外,在LSTM中引入自注意力(self-attention)机制,进一步强化了LSTM的长时记忆能力,使其对长距离信息作用具有更好的感知力,并且能够捕捉输入在时间维度的关联。

CATALOG
  1. 1. 一、前言
  2. 2. 二、E3D-LSTM
    1. 2.1. 1. 循环网络中的3D卷积
    2. 2.2. 2. 逼真的记忆转换
    3. 2.3. 3. 自监督辅助学习
  3. 3. 三、实验
    1. 3.1. 1. 未来的视频预测:移动 MNIST
    2. 3.2. 2. 未来视频预测:KTH 动作
    3. 3.3. 3. 真实视频预测应用:交通流预测
    4. 3.4. 4. 早期活动识别
  4. 4. 四、总结