Long-term Recurrent Convolutional Networks forVisual Recognition and Description
一. Introduction
~~~~~~
图像和视频的识别和描述是计算机视觉的基本挑战。监督卷积神经网络(CNN)模型在图像识别任务上取得了显著的进展,最近提出了一些视频处理扩展。理想情况下,视频模型应该允许处理可变长度的输入序列,并为可变长度的输出提供支持,包括生成超出常规的单一对所有预测任务的完整的句子描述。在本文中,我们提出了长期递归卷积网络(LRCN),这是一种用于视觉识别和描述的体系结构,它结合了卷积层和远程时间递归,并且是端到端可训练的(图1)。 我们实例化我们的架构,用于特定的视频活动识别,图像标题生成和视频描述任务,如下所述。
~~~~~~
用于视频处理的CNN模型的研究已经考虑学习原始序列数据上的3D时空滤波器,以及包含在固定窗口或视频镜头段上聚合的瞬时光流或基于轨迹的模型的帧到帧表示的学习。探索感知时间序列表示学习的两个极值:要么学习完全一般的时变权重,要么应用简单的时间池。基于当前深卷积模型的灵感,我们提倡视频识别和描述模型也要具有时间维度的深度;即,具有潜在变量的时间递归性。递归神经网络(RNN)模型具有较强的显式时间深度,在展开时在时域内形成隐式的成分表示。在文献中,这种深度模型先于深度空间卷积模型。
图1所示。我们提出了长期循环卷积网络(LR-CNs),这是一种利用神经网络快速发展的优势来解决视觉识别问题的架构,并且越来越多的人希望将这种模型应用于时变的输入和输出。LRCN使用CNN(中左)处理可变长度的可视输入(可能),CNN的输出被输入到一堆循环序列模型(LSTMs,中右)中,最后生成一个可变长度的预测(右)。CNN和LSTM的权重都是跨时间共享的,从而产生了一种可伸缩的表示形式。
~~~~~~
几十年来一直在探索在感知应用中使用RNN,结果各不相同。 严格地整合信息随时间变化的简单RNN模型的显着限制被称为“消失梯度”效应:在实践中,通过长程时间间隔反向传播误差信号的能力变得越来越困难。首先提出的长短期存储器(LSTM)单元是可以进行远程学习的循环模块。LSTM单元具有通过非线性机制增强的隐藏状态,以允许状态使用简单的学习选通函数进行传播而无需修改,更新或重置。LSTM最近被证明能够大规模学习语音识别和语言翻译模型。
~~~~~~
我们在这里表明,具有循环单元的卷积网络通常适用于视觉时间序列建模,并且认为在先前使用静态或平坦时间模型的视觉任务中,当有足够的训练数据时,LSTM型RNN可以提供显着的改进。具体来说,我们展示了LSTM类型模型提供了对传统视频活动挑战的改进识别,并实现了从图像像素到句子级自然语言描述的新颖的端到端可优化映射。 我们还展示了这些模型改进了从传统视觉模型衍生出的中间视觉表示的描述的生成。
~~~~~~
我们在三个实验设置中实例化我们提出的架构(图3)。 首先,我们展示了将可视卷积模型直接连接到深LSTM网络,我们能够训练捕获时间状态依赖性的视频识别模型(图3左;第4节)。 虽然现有的标记视频活动数据集可能没有具有特别复杂的时间动态的动作或活动,但我们仍然观察到传统基准的显着改进。
~~~~~~
其次,我们探索端到端的可训练图像到句子映射。 最近报道了机器翻译任务的强劲结果; 这些模型是基于LSTM网络的编码器 - 解码器对。 我们提出了这种模型的多模态模拟,并描述了一种使用视觉信号编码深层矢量的体系结构,以及一种将矢量解码为自然语言字符串的LSTM(图3中间;第5节)。得到的模型可以在大规模图像和文本数据集上进行端到端的训练,即使采用适度的训练,也可以提供与现有方法相比的竞争性生成结果。最后,我们证明LSTM解码器可以直接从传统的计算机视觉方法驱动,这些方法可以预测更高级别的判别标签。虽然这种模型不是端到端的可训练的,但与以前的基于统计机器翻译的方法相比,提供了架构和性能优势。我们在广泛采用的深度学习框架Caffe中实现了循环模型的通用框架,包括RNN和LSTM单元的即用型实现。
~~~~~~
最后,我们证明了LSTM解码器可以直接来自传统的计算机视觉方法,这种方法可以预测更高级别的判别标签,例如语义视频角色元组预测器(图3右;第6节)。虽然不是端到端的可训练的,但这种模型的建筑和性能优于先前基于机器翻译的方法。
图2.本文中使用的基本RNN单元(左)和LSTM存储单元(右)的图
二. Background:recurrent networks
~~~~~~
传统的递归神经网络(RNN,图2,左)通过将输入序列映射到隐藏状态来模拟时间动态,并通过以下递归方程将隐藏状态映射到输出(图2,左):
h
t
=
g
(
W
x
h
x
t
+
W
h
h
h
t
−
1
+
b
h
)
z
t
=
g
(
W
h
z
h
t
+
b
z
)
h_{t} = g(W_{xh}x_{t} + W_{hh}h_{t-1} + b_{h})\\z_{t} = g(W_{hz}h_{t} + b_{z})
ht=g(Wxhxt+Whhht−1+bh)zt=g(Whzht+bz)
其中
g
g
g 为非线性元素,如sigmoid或者hyperbolic,
x
t
x_{t}
xt 为输入,在
N
N
N 的隐藏状态时,
h
t
∈
R
N
h_{t}\in\mathbb{ R^{N}}
ht∈RN 为隐藏单位,
z
t
z_{t}
zt 为
t
t
t 时刻的输出。对于长度为
T
T
T 的输入序列
<
x
1
,
x
2
,
…
,
x
T
>
<x1,x2,…,x_{T}>
<x1,x2,…,xT> ,将上面的依次计算更新为
h
1
(
令
h
0
=
0
)
,
z
1
,
h
2
,
z
2
,
…
,
h
T
,
z
T
h_{1} (令 h_{0} = 0 ),z_{1},h_{2},z_{2},…,h_{T},z_{T}
h1(令h0=0),z1,h2,z2,…,hT,zT。
~~~~~~
虽然已经证明RNN在语音识别和文本生成等任务上是成功的,但是很难长期动态训练他们,让他们学习,这可能是由于传播导致梯度爆炸和消失的问题。通过循环网络多个层向下的梯度,每个层对应于特定的时间步长。LSTM通过合并内存单元提供了一种解决方案,该内存单元明确允许网络了解何时“忘记”先前隐藏的状态以及何时在给定新信息的情况下更新隐藏状态。 随着对LSTM的研究的进展,已经提出了在存储器单元内具有不同连接的隐藏单元。 我们使用(图2,右)中描述的LSTM单元。让
σ
(
x
)
=
(
1
+
e
−
x
)
−
1
\sigma(x) = (1+e^{-x})^{-1}
σ(x)=(1+e−x)−1 作为非线性的sigmoid将输入值压缩到
[
0
,
1
]
[0,1]
[0,1] 范围,并且使用
tanh
(
x
)
=
e
x
−
e
−
x
e
x
+
e
−
x
=
2
σ
(
2
x
)
−
1
\tanh(x) = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}=2\sigma(2x)-1
tanh(x)=ex+e−xex−e−x=2σ(2x)−1 作为非线性的hyperbolic tangent将输入值压缩到
[
−
1
,
1
]
[-1,1]
[−1,1] 范围,LSTM对给定输入
x
t
、
h
t
−
1
和
c
t
−
1
x_{t}、h_{t-1} 和 c_{t-1}
xt、ht−1和ct−1 的按时间步长更新为:
i
t
=
σ
(
W
x
i
x
t
+
W
h
i
h
t
−
1
+
b
i
)
f
t
=
σ
(
W
x
f
x
t
+
W
h
f
h
t
−
1
+
b
f
)
o
t
=
σ
(
W
x
o
x
t
+
W
h
o
h
t
−
1
+
b
o
)
g
t
=
tanh
(
W
x
c
x
t
+
W
h
c
h
t
−
1
+
b
c
)
c
t
=
f
t
⊙
c
t
−
1
+
i
t
⊙
g
t
h
t
=
o
t
⊙
tanh
(
c
t
)
i_{t} = \sigma(W_{xi}x_{t} + W_{hi}h_{t-1}+b_{i}) \\f_{t} = \sigma(W_{xf}x_{t} + W_{hf}h_{t-1}+b_{f}) \\o_{t} = \sigma(W_{xo}x_{t} + W_{ho}h_{t-1}+b_{o}) \\g_{t} = \tanh(W_{xc}x_{t} + W_{hc}h_{t-1}+b_{c}) \\c_{t} = f_{t} \odot c_{t-1} + i_{t}\odot g_{t} \\h_{t} = o_{t} \odot \tanh(c_{t})
it=σ(Wxixt+Whiht−1+bi)ft=σ(Wxfxt+Whfht−1+bf)ot=σ(Wxoxt+Whoht−1+bo)gt=tanh(Wxcxt+Whcht−1+bc)ct=ft⊙ct−1+it⊙gtht=ot⊙tanh(ct)
x
⊙
y
x\odot y
x⊙y 表示向量
x
x
x 和
y
y
y 的元素乘积。
除了隐藏的单位
h
t
∈
R
N
h_{t}\in \mathbb R^{N}
ht∈RN 之外,LSTM还包括输入门
i
t
∈
R
N
i_{t}\in \mathbb R^{N}
it∈RN,忘记门
f
t
∈
R
N
f_{t}\in\mathbb R^{N}
ft∈RN,输出门
o
t
∈
R
N
o_{t}\in\mathbb R^{N}
ot∈RN,输入调制门
g
t
∈
R
N
g_{t}\in\mathbb R^{N}
gt∈RN和存储器单元
c
t
∈
R
N
c_{t}\in\mathbb R^{N}
ct∈RN。 存储器单元
c
t
c_{t}
ct 是两个项的和:由
f
t
f_{t}
ft 调制的先前存储器单元
c
t
−
1
c_{t-1}
ct−1,以及由输入门
i
t
i_{t}
it 调制的当前输入和先前隐藏状态的函数
g
t
g_{t}
gt。
因为
i
t
i_{t}
it 和
f
t
f_{t}
ft 都是sigmoidal结果,所以它们的值都在[0,1]范围内,并且可以将
i
t
i_{t}
it 和
f
t
f_{t}
ft 看作是LSTM学会选择性地忘记以前的内存或考虑当前输入的旋钮。同样地,输出门
o
t
o_{t}
ot 了解要将多少内存单元传输到隐藏状态。这些额外的细胞似乎使LSTM能够学习各种序列学习和预测任务的复杂和长期时间动态。 通过将层
ℓ
−
1
\ell-1
ℓ−1 中的LSTM的隐藏状态
h
t
ℓ
−
1
h_{t}^{\ell-1}
htℓ−1 作为层
ℓ
\ell
ℓ 中的LSTM的输入,可以将附加深度添加到LSTM,方法是将它们堆叠在彼此之上。
~~~~~~
最近,LSTM在语音识别和机器翻译等语言任务方面取得了令人瞩目的成果。类似于CNN,LSTM很有吸引力,因为它们允许端到端的微调。例如,通过训练将频谱图输入映射到文本的深度双向LSTM,消除了对语音识别中复杂的多步骤线的需求。即使没有语言模型或发音字典,该模型也能产生令人信服的文本翻译。**使用编码LSTM将源语言中的句子映射到隐藏状态,然后解码LSTM将隐藏状态映射到目标语言中的序列。这种编码器 - 解码器方案允许任意长度的输入序列被映射到不同长度的输出序列。**这些用于机器翻译的序列到序列架构避免了对语言模型的需求。
~~~~~~
LSTM在视觉问题中对序列数据建模的优势是双重的。首先,与当前视觉系统集成时,LSTM模型可以直接进行端到端的微调。其次,LSTM不限于固定长度的输入或输出,允许对不同长度的顺序数据进行简单建模,例如文本或视频。接下来,我们将描述一个统一的框架,将LSTM等复现模型与深度卷积网络相结合,形成能够进行复杂视觉和序列预测任务的端到端可训练网络。
三. Long-term recurrent convolutional network(LRCN) model
~~~~~~
这项工作提出了一个长期循环卷积网络(LRCN)模型,它结合了深层次视觉特征提取器(如CNN)模型,可以学习识别和综合涉及到的,顺序数据(输入或输出)任务的时间动态,视觉 ,语言或其他。 图1描绘了我们方法的核心。LRCN通过将每个视觉输入
x
t
x_{t}
xt(隔离的图像或来自视频的帧)通过具有参数
V
V
V(通常是CNN)的特征变换
ϕ
V
(
.
)
\phi V(.)
ϕV(.) 来传递,以产生固定长度的矢量表示
ϕ
V
(
x
t
)
\phi V(x_{t})
ϕV(xt)。 然后将
ϕ
V
\phi V
ϕV 的输出传递到循环序列学习模块中。
~~~~~~~
在其最一般的形式中,循环模型具有参数
W
W
W,并将输入
x
t
x_{t}
xt 和前一个时间隐藏状态
h
t
−
1
h_{t-1}
ht−1 映射到输出
z
t
z_{t}
zt 和更新后的隐藏状态
h
t
h_{t}
ht 。因此,推断必须顺序运行(即,从上到下,在图1的序列学习框中),通过按顺序计算:
h
1
=
f
W
(
x
1
,
h
0
)
=
f
W
(
x
1
,
0
)
h_{1} = f_{W}(x_{1},h_{0})= f_{W}(x_{1},0)
h1=fW(x1,h0)=fW(x1,0),然后
h
2
=
f
W
(
x
2
,
h
1
)
h_{2} = f_{W} (x_{2},h_{1})
h2=fW(x2,h1) 等,直至h_{T}。 我们的一些模型将多个LSTM堆叠在一起,如章节二中所述。
~~~~~~~
为了在时间步骤
t
t
t 预测结果
y
t
∈
C
y_{t}\in C
yt∈C(其中
C
C
C 是离散的,有限的结果集)的分布
P
(
y
t
)
P(y_{t})
P(yt),顺序模型的输出
z
t
∈
R
d
z
z_{t}\in \mathbb R^{d_{z}}
zt∈Rdz 通过线性预测层
y
^
t
=
W
z
z
t
+
b
z
\widehat{y}_{t} = W_{z}z_{t} + b_{z}
y
t=Wzzt+bz ,其中
W
z
∈
R
∣
C
∣
×
d
z
W_{z}\in \mathbb R^{| C |×d_{z}}
Wz∈R∣C∣×dz 和
b
z
∈
R
∣
C
∣
b_{z}\in \mathbb R^{| C |}
bz∈R∣C∣ 是学习参数。 最后,通过取
y
^
t
\widehat{y}_{t}
y
t 的softmax来计算预测分布
P
(
y
t
)
P(y_{t})
P(yt):
P
(
y
t
=
c
)
=
s
o
f
t
m
a
x
(
y
)
=
e
x
p
(
y
^
t
,
c
)
∑
c
′
∈
C
e
x
p
(
y
^
t
,
c
′
)
P(y_{t}=c)=softmax(y)=\frac{exp(\widehat{y}_{t,c})}{\sum_{c '\in C}exp(\widehat{y}_{t,c'})}
P(yt=c)=softmax(y)=∑c′∈Cexp(y
t,c′)exp(y
t,c)
~~~~~~~
最近用于物体识别的深度模型的成功表明,策略性地组成许多非线性函数“层”可以产生用于感知问题的强大模型。 对于大
T
T
T,具有
T
T
T 个时间步长的循环网络最后几个预测是由非常“深”(
T
T
T 层)非线性函数计算,这表明所得到的循环模型可能具有一个
T
T
T 层深层网络相似的表示能力。然而,重要的是,顺序模型的权重W在每个时间步长被重复使用,迫使模型学习通用的时间步长到时间步长的动态(与动态直接条件,序列索引相反)并防止参数大小按比例增长。
~~~~~~~
在我们的大多数实验中,视觉特征变换
ϕ
\phi
ϕ 对应于深CNN的某层中的激活。使用时间不变且在每个时间步长独立的视觉变换
ϕ
V
(
.
)
\phi V(.)
ϕV(.), 具有在输入的所有时间步长上进行重要的卷积推理,和训练并行化的优点,便于快速使用最新CNN实现,其效率依赖于独立的批处理,以及视觉和顺序模型参数
V
V
V 和
W
W
W 的端到端优化。
~~~~~~
我们考虑三个视觉问题(活动识别、图像描述和视频描述),这些问题实例化了以下几大类连续学习任务:
- 顺序输入,固定输出(图3,左侧): [ x 1 , x 2 , … , x T ] - > y [ x_{1},x_{2},…,x_{T} ] -> y [x1,x2,…,xT]->y,视觉活动识别问题可以归入这一大类,以任意长度的视频作为输入,但目标是预测单个标签,如从固定词汇中提取的“跑步”或“跳跃”。
- 固定输入,顺序输出(图3,中间): x - > [ y 1 , y 2 , . . . , y T ] x -> [ y_{1},y_{2},...,y_{T} ] x->[y1,y2,...,yT],图像描述问题适用于此类别,非时间变化图像作为输入,但是更大和更丰富的标签空间构成任意长度的句子。
- 顺序输入和输出(图3,右):
[
x
1
,
x
2
,
…
,
x
T
]
-
>
[
y
1
,
y
2
,
.
.
.
,
y
T
]
[ x_{1},x_{2},…,x_{T} ] -> [ y_{1},y_{2},...,y_{T} ]
[x1,x2,…,xT]->[y1,y2,...,yT],最后,很容易想象视觉输入和输出都是时变的任务,并且通常输入和输出时间步长的数量可能不同(即,我们可能有
T
≠
T
′
T \ne T'
T̸=T′)。在视频描述任务中,例如,输入和输出都是连续的,并且视频中的帧数不应该限制自然语言描述的长度(字数)。
~~~~~~ 在先前描述的公式中,每个实例具有 T T T 输入 [ x 1 , x 2 , … , x T ] [ x_{1},x_{2},…,x_{T} ] [x1,x2,…,xT] 和 T T T 输出 [ y 1 , y 2 , . . . , y T ] [ y_{1},y_{2},...,y_{T} ] [y1,y2,...,yT]。我们描述了如何在混合模型中调整这个公式以解决上述三个问题设置中的每一个。使用顺序输入和标量输出,我们采用后期融合方法合并每时间步长预测 [ y 1 , y 2 , . . . , y T ] [ y_{1},y_{2},...,y_{T} ] [y1,y2,...,yT] ,来预测整个序列的单个 y y y。对于固定输入和顺序输出,我们只需在所有的时间步长 x t : = x x_{t}:=x xt:=x时复制输入 x x x (由于时间不变的视觉特征提取器,这可以很方便完成)。最后,对于具有(通常)不同输入和输出长度的序列到序列问题,我们采用了一种“编码器-解码器”方法。在这种方法中,一个序列模型,编码器,用于将输入序列映射到固定长度的向量,然后另一个序列模型,解码器,用于将该向量展开到任意长度的序列输出。在该模型下,系统作为一个整体可以被认为具有输入和输出的 T + T ′ T+T' T+T′ 时间,其中在第一个 T T T 时间处理输入,忽略解码器输出,在后在 T ′ T' T′ 时间进行预测,忽略“虚拟”输入。
~~~~~~ 在所提出的系统下,模型的视觉和顺序分量的权重 ( V , W ) (V,W) (V,W) 可以通过最大化以输入数据和标签为条件的真实输出 y t y_{t} yt 的可能性来共同学习,直到该点 ( x 1 : t , y 1 : t − 1 ) (x_{1:t},y_{1:t-1}) (x1:t,y1:t−1)。特别地,对于特定的训练顺序 ( x t , y t ) t = 1 T (x_{t},y_{t})^{T}_{t=1} (xt,yt)t=1T,我们最小化负对数可能性:
log ( V , W ) = − ∑ t = 1 T l o g P v , w ( y t ∣ x 1 : t , y 1 : t − 1 ) \log(V,W)=-\sum_{t=1}^{T}logP_{v, w}(y_{t} | x_{1:t},y_{1:t-1}) log(V,W)=−t=1∑TlogPv,w(yt∣x1:t,y1:t−1)
~~~~~~ 所述系统最吸引人的方面之一是“端到端”学习参数的能力,使得视觉特征提取器的参数 V V V 学会挑选与顺序分类问题。我们使用随机梯度下降来训练我们的线性回归模型,用反向传播来计算目标相对于所有参数的梯度熵。接下来,我们将通过探索三种应用:活动识别、图像描述和视频描述来展示空间和时间深度模型的力量。
四. Activity recognition
~~~~~~
活动识别是上述第一个顺序学习任务的一个例子;单个帧是卷积网络的输入,然后卷积网络连接到具有256个隐藏单元的单层LSTM。使用递归神经网络来学习传统视觉特征,但不要从头到尾训练它们的模型,也不要为了获得重要的性能增益而在较大的对象识别数据库上预先训练。
~~~~~~
我们探讨了LRCN架构的两种变体:一种是LSTM放置在CNN的第一个完全连接层(LRCN-fc6)之后,另一种是LSTM放置在CNN的第二个完全连接层之后(LRCN- FC7)。我们探讨了LRCN架构的两种变体:一种是LSTM放置在CNN的第一个完全连接层(LRCN-fc6)之后,另一种是LSTM放置在CNN的第二个完全连接层之后(LRCN- FC7)。
~~~~~~
我们还考虑RGB和流量输入。通过使
x
x
x 和
y
y
y 流量值在128附近并乘以标量使得流量值落在0和255之间来计算流量,并将其转换为“流动图像”。通过计算流量大小来创建流动图像的第三通道。LRCN的CNN基础是Caffe参考模型的混合体,是AlexNet的一个次要变体,以及Zeiler&Fergus使用的网络,他们对网络进行了预训,在 ILMVRC-2012 和 Im-ageNet 数据集的分类训练子集上进行了预训练,为网络提供了强大的初始化,以便更快地进行训练并防止过度拟合相对较小的视频数据集。
~~~~~~
在对中心作物进行分类时,混合和Caffe参考模型的 top-1 分类精度分别为60.2%和57.4%。在我们的baseline model 中,
T
T
T 视频帧由CNN单独分类。 与LSTM模型一样,整个视频分类是通过平均所有视频帧的分数来完成的。
4.1 Evaliation
~~~~~~
我们在UCF-101数据集上评估我们的架构,该数据集由12,000多个视频组成,分为101个人类动作类。数据集被分成三个部分,每个部分的训练集中有不到8000个视频。
~~~~~~
表1,第2-3列,比较了我们提出的模型(LRCN-fc6,LRCN-fc7)与RGB和流量输入的基线架构的视频分类。每个LRCN网络都经过端到端的培训。LRCN-fc6net工作产生了RGB和流量的最佳结果,并且基线网络分别提高了0.49%和5.27%。
~~~~~~
RGB和流量网络可以通过计算网络分数的加权平均值进行组合,如表1所示。我们报告了表1(右)中RGB和流量网络的预测的两个加权平均值。 由于流量网络优于RGB网络,因此更高的流量网络加权可以带来更高的准确性。 在这种情况下,LRCN执行基线单帧模型3.82%。
五. Image description
~~~~~~
与活动识别相反,静态图像描述任务仅需要单个卷积网络,因为输入的是单个图像。已经提出了各种模型用于图像描述; 特别是,将深度时间模型与卷积表示相结合。
~~~~~~
我们现在描述用于图像描述任务的LRCN架构的实例化。在每个时间步长,图像特征和前一个字都被提供作为顺序模型的输入,在这种情况下是一堆LSTM(每个具有1000个隐藏单元),用于学习时变输出序列的动态,自然语言。在时间步
t
t
t,最底部LSTM的输入是来自前一时间步
w
t
−
1
w_{t-1}
wt−1 的嵌入式地面真实字。对于句子生成,输入变量为模型在先前时间步的预测分布的样本
w
^
t
−
1
\hat{w}_{t-1}
w^t−1。