【论文笔记】Unsupervised Learning of Video Representations using LSTMs

摘要翻译

我们使用长短时记忆(Long Short Term Memory, LSTM)网络来学习视频序列的表征。我们的模型使用LSTM编码器将输入序列映射到一个固定长度的表征向量。之后我们用一个或多个LSTM解码器解码这个表征向量来实现不同的任务,比如重建输入序列、预测未来序列。我们对两种输入序列——原始的图像小块和预训练卷积网络提取的高层表征向量——都做了实验。我们探索不同的设计选择,例如解码器的LSTM是否应该取决于生产的输出。我们定量地分析模型的输出来探讨学习模型对过去和未来视频序列的表征能力。我们尝试可视化和解释学习的功能。我们通过在更长的时间范围和域外数据上运行模型来对模型进行压力测试。我们通过监督学习任务——UCF101和HMDB-51数据集动作识别——微调学习的表征向量来进一步评估表征能力。我们发现这些表征提高了分类准确度,尤其是当只有少量训练样本的情况下。即使模型通过不相关的数据集(300 hours of YouTube videos)预训练,也能够提高动作识别的性能。

1.Introduction

理解时间序列对于解决AI集中的许多问题很重要。最近,使用LSTM的RNN架构(Hochreiter&Schmidhuber,1997)已成功地用于各种监督序列学习任务,如语音识别(Graves&Jaitly,2014),机器翻译(Sutskever等,2014; Cho等,2014)和图像字幕生成(Vinyals等,2014)。它们也被应用于视频中的动作识别和产生自然语言描述(Donahue等,2014)。 Sutskever et al(2014)描述了一个通用的seq-seq学习框架,其中使用RNN将输入序列编码为固定长度的表示,然后使用另一个RNN对该表示解码出一个输出序列。在本文中,我们应用和扩展这个框架,来学习图像序列的表示。我们选择在无监督设置下工作,因为我们只能访问未标记的视频的数据集。
视频是视觉信息的丰富来源,可以被看作是进入我们生活的世界的物理窗口,向我们展示了,什么构成了对象,对象如何在背景上运动,如果摄像机移动会发生什么以及物体如何遮挡。能够学习代表这些因素的代表将有助于使智能机器能够在其环境中理解和行动。此外,学习好的视频表示对于许多有用的任务是必要的,例如识别动作和手势。

1.1 Why Unsupervised Learning?
监督学习在学习良好的视觉表示方面非常成功,不仅在受过训练的任务中产生了良好的效果,而且在其他任务和数据集上迁移学习的很好。 因此,将同样的方法扩展到学习视频表示是很自然的。 这导致了3D卷积网络的研究(Ji et al,2013; Tran et al,2014),different temporal fusion strategies(Karpathy et al., 2014) and exploring different ways of presenting visual information to convolutional nets (Simonyan& Zisserman, 2014a). 然而,与单个图像相比,视频是更高维度的实体。因此,除非我们收集更多的标签数据或进行大量的特征工程(例如计算正确的流特征)以保持维度较低,否则变得越来越难以进行credit分配和学习远程结构。 收集更多标签数据的昂贵工作以及进行更聪明的工程的繁琐工作在解决特定问题方面有很长的路要走,但最终不能像机器学习解决方案那样。 这突出了使用无监督学习来发现和表示视频结构的需要。此外,视频具有很多结构(空间和时间规律),使得它们特别适合作为建立无监督学习模型的领域。
1.2. Our Approach
在设计任何无监督学习模型时,具有正确的inductive biases并选择正确的目标函数至关重要,以便学习信号将模型指向学习有用的特征。在本文中,我们使用LSTM编码器 - 解码器框架来学习视频表示。这里的关键inductive biases在于,必须在每个时间步骤中执行相同的操作以将信息传播到下一步。这证明了一个事实,即物理世界保持不变,与输入无关。在任何时候,对任何状态,物理行为都必须产生下一个状态。我们的模型工作如下。编码器LSTM在帧序列上运行,来产生一个表示。然后通过另一个LSTM对该表示进行解码以产生目标序列。我们考虑目标序列的不同选择。一个选择是预测与输入相同的序列。动机类似于自动编码器 - 我们希望捕获对于重现输入是需要的,但同时通过inductive biases,由模型强加的。另一个选择是预测未来的帧。这里的动机是学习一个表示,提取所有需要推断的运动和外观超出所观察到的。这两个自然的选择也可以组合起来。在这种情况下,有两个解码器LSTM - 一个将表示解码为输入序列,另一个解码相同的表示以预测未来。
原理上,模型的输入可以是单个视频帧的任何表示。但是,为了本文工作的目的,我们把注意力限制在两种输入。第一个是图像块。为此,我们使用自然图像块以及移动MNIST数字的数据集。第二个是通过在ImageNet上训练的卷积网络来提取的高级“感知”。这些感知是卷积神经网络模型的最后(和/或第二 - 最后)层的状态。
为了评估学习的表示,我们对模型进行的重构和预测进行了定性分析。为了进行更多的定量评估,我们将这些LSTM作为监督动作识别任务的初始化。如果无监督的学习模型产生了有用的表示,那么分类器应该能够表现更好,特别是当只有几个标记的样本。我们发现事实确实如此。
1.3. Related Work
以无监督的方式学习视频表示的第一种方法是基于ICA(van Hateren&Ruderman,1998; Hurri&Hyvarinen¨,2003)。Le et al(2011)使用多层独立子空间分析模块来解决这个问题。用于理解连续成对图像之间的变换的生成模型也被很好地研究(Memisevic,2013; Memisevic&Hinton,2010; Susskind等,2011)。这项工作最近由Michalski等人(2014)扩展,以建模更长的序列。
最近,Ranzato等(2014)提出了视频的生成模型。该模型使用RNN来预测下一帧或帧之间的内插。在这项工作中,作者强调了选择正确的损失函数的重要性。有人认为,输入空间的平方损失不是正确的目标函数,因为它对输入空间的小失真反应不好。提出的解决方案是将图像块量化为大型字典,并训练模型以预测目标块的身份。这样做解决了平方损失的一些问题,但是它将任意的字典大小引入到图片中,并且完全消除了图像块的想法,相似或不相似。设计一个尊重我们的视觉相似性概念的适当的损失函数是一个非常困难的问题(在某种意义上,与我们首先要解决的建模问题几乎一样困难)。因此,本文以简单平方损失目标函数为起点,着重设计可用于任何损失函数的编码器 - 解码器RNN架构。

原文链接:https://blog.csdn.net/xiaofei0801/article/details/72961535

2. Model Description

在本节中,我们将介绍LSTM编解码器模型的几种变体。我们网络的基本单元是LSTM小区块。我们对LSTM的实现与Graves(2013)所讨论的一致。

2.1. Long Short Term Memory
在本节中,我们将简要介绍LSTM单元
【论文笔记】Unsupervised Learning of Video Representations using LSTMs
2.2 LSTM Autoencoder Model
模型中有两个递归神经网络,编码器LSTM和解码器LSTM,如下图。模型的输入是向量序列(图像小块或者特征向量)。当最后一个输入被读入之后,编码器的内部状态和输出状态将会被直接给入decoder。Decoder输入目标序列或者预测序列,目标序列是和输入序列一样的,只不过在顺序上是反向,把顺序反向可以使得优化更简单因为LSTM的输出就是反过来的嘛。解码器decoder既可以是有条件约束的也可以是无条件约束的。有条件约束的decoder就是decoder接受生成的最后一帧作为输入,即下图中的虚线框。无条件约束的decoder就不接受这个输入。
【论文笔记】Unsupervised Learning of Video Representations using LSTMs
在encoder读入最后视频最后一帧之后LSTM的状态就是输入视频的表征。因为decoder就是需要用到这个表征向量来重建序列,所以这个表征向量需要包含目标、背景以及运动等信息。但是所有自编码器结构的模型都面临着一个问题,就是直接把输入和输出进行对比来实现无监督学习,很难学习到表征能力特别强的简单映射关系。主要两个原因,一个是空间上神经元的数量固定,所以不可能学习到无限长度输入序列的映射;另一个原因是动态单元的数目必须递归地用在表征向量上,这也使得模型很难学习一个通用统一的映射。

2.3 LSTM Future Predictor Model
预测模型和自编码器几乎是一样的,差别就在于最后训练的输出,预测模型用的是未来几帧的图像,只不过输出是正序,而不是倒序的,这里作者没有解释,但其实也很好理解,预测的正序和自编码器的倒序是统一的,因为encoder-decoder模型都是从最近的时刻想最远的时刻逐渐解码。自编码器从1,2,3到3,2,1是从近到远,预测的1,2,3到4,5,6也是从近到远。和自编码器类似,预测模型也有条件约束和非条件约束两种,所以最后的预测模型如下图
【论文笔记】Unsupervised Learning of Video Representations using LSTMs
2.4 Conditional Decoder
条件解码器是否使用,还需要进一步思考

2.5 A Composite Model
作者把上面两种模型组合成一个模型,这个模型可以同时实现重建输入和预测输出的功能。上面的两种模型都有各自的缺点,自编码器倾向记住输入序列的信息,而预测模型倾向记住未来几帧的信息。而组合模型把两部分的损失用来训练网络,所以最后得到的表征向量既有过去的记忆也有预测未来的能力,其模型如下图。
【论文笔记】Unsupervised Learning of Video Representations using LSTMs

模型描述

作者设计实验来实现以下目的:

  • 定性的了解LSTM到底学会了什么
  • 用无监督学习训练的参数去初始化有监督学习的参数,尤其是小样本训练的无监督网络,测试下这样做是否对有监督学习有益
  • 比较提出的不同模型——自编码器、预测模型和融合模型以及它们是否有条件约束的情况
  • 和最领先动作识别的基准进行比较

训练

训练使用RMSProp+monentum基友组合方式。(PS:通常Adam系的训练函数能够更快的收敛,而RMSProp+monentum这个组合通常能得到更好的全局最优解)

数据集

数据集使用的是UCF-101和HMDB-51的监督学习数据集。为了训练无监督的模型,作者还使用Sports-1M中的Youtube视频子集。作者发现和仅仅使用Youtube数据集做无监督训练相比,使用Youtube和UCF-101以及HMDB-51三个数据集做无监督训练并没有提高性能(从侧面验证了上面四个目标中的第二个)。原始的RGB图像使用的网络是Simonyan & Zisserman (2014b),而提取的运动光流使用网络是Simonyan & Zisserman (2014a).另外作者发现fc6全连接层的性能比fc7全连接层要好,所以最后选择了fc6的4096维输出作为视频的表征向量。另外作者提到论文只用了图像中一个小patch做实验,也许用多个patches并且做些畸变加些噪声的预处理或者去除水平偏移等能提高性能。

可视化和定量分析

为了可视化分析三种模型的性能,作者首先利用移动的Mnist数据集训练模型,每个视频含有20帧图像,包含了2个在移动的数字,图像块大小为64×64像素。这些数字及其出现的位置都是随机的,每个数字的运动方向也是在均匀分割的单位圆内随机选一个。如果数字碰到了边缘就反弹,就和打砖块差不多,如果重合了就叠加。
作者首先训练了融合模型,LSTM拥有2048个神经元,编码器输入10帧序列,解码器重建10帧输入序列和预测未来10帧序列。输出使用sigmoid激活函数,损失使用交叉熵损失函数。下图是结果,通过一层模型和两层模型来验证增加深度是否能提高性能,通过增加条件约束来验证条件约束是否能提高性能。
【论文笔记】Unsupervised Learning of Video Representations using LSTMs

之后对于实际的视频也做了实验,作者从UCF-101数据集的视频中提取了32×32像素的小块,输出用identity激活函数,损失用最小二乘损失函数,输入是16帧,输出重建输入的16帧序列和预测未来的13帧。实验用了2048个神经网络和4096个神经元做对比,结果显示重建序列的图像更加清晰,预测的图像很快就变得模糊。
【论文笔记】Unsupervised Learning of Video Representations using LSTMs

UCF-101/hmdb-51动作识别

这一部分主要是探讨无监督学习的特征是否有助于提高监督学习任务。大致思路是用Youtube的视频训练融合模型,网络输入是16帧视频,网络输出是重建16帧和预测未来的13帧。之后用这个网络的encoder部分的参数去初始化有监督学习任务的网络,并在最后一次加一层softmax分类层。测试时用的是所有时间step输出的平均,因为LSTM每个时间step都会有一次预测。最后和几个主流的baseline网络进行对比,结果显示本文的方法在各种情况下都提高了准确度,包括利用光流信息的情况。具体数字就不重复了,可以看图表。
【论文笔记】Unsupervised Learning of Video Representations using LSTMs
【论文笔记】Unsupervised Learning of Video Representations using LSTMs
【论文笔记】Unsupervised Learning of Video Representations using LSTMs

不同模型的比较

作者提到,虽然本文的方法有效的降低了重建序列的损失,但是这并不能用来衡量方法的好坏,真正能够衡量方法好坏的应该是动作识别的性能以及预测未来序列的性能。于是作者就用Mnist数据集的交叉熵损失和视频图像的最小二乘损失来衡量未来序列预测的好坏(为什么Mnist可以用交叉熵而视频序列要用最小二乘呢,我猜测是因为Mnist数据集是二值图像,所以等效为分类问题会更好一点,所以用交叉熵,而实际的视频图像是连续的像素值,所以用最小二乘误差)。Table2显示用条件约束的融合模型是最好的。

和动作识别基准的对比

【论文笔记】Unsupervised Learning of Video Representations using LSTMs

总结

其实这篇论文要说很华丽倒也没有很华丽,实验放到现在来看也是比较简单,甚至比较粗糙的,论文的篇幅虽然有好几页其实最后都是在重复的表述着同一些东西,或者叙述图表的数字。但是这篇文章的贡献意义非常大,虽然不敢完全肯定是否是第一篇,但至少这是我看到的最早的一篇把LSTM引入视频分析的论文,并且文中作者提到,为了提高监督学习任务的准确度,可以引入卷积网络,并且堆叠多层本文的方法。于是这一句话开创了视频分析任务的新天地,成功预测出(或者说是指明)了CNN+LSTM网络在视频分析领域的王者地位。毕竟是带着Hinton血脉的文章,所以引用量也是非常高的。

原文链接:https://blog.csdn.net/qq_21190081/article/details/64160465

上一篇:PP: DeepAR: probabilistic forecasting with autoregressive recurrent networks


下一篇:【AI】_09_RNN_Recurrent Neural Network