NiyunZhou / The21-dayExpendables

We are the 21-day expandables of a kaggle competition.
Apache License 2.0
15 stars 4 forks source link

Beyond short snippets: deep networks for video classification #29

Open SophieGuan opened 7 years ago

SophieGuan commented 7 years ago

本文提供了利用frame-level 信息的两种思路:feature-pooling 以及 recurrent neutral networks,前者没有利用temporal 信息,后者则利用了temporal 信息。 (3d-convolution尝试的必要不大,Karpathy 指出这种结构just marginally better than single frame baseline.)

feature pooling 结构

2017-05-21 4 34 50

提出了几种将不同frame feature融合的结构,后面的实验表明结构(a)效果最好,即先将convolution layer的结构做max-pooling,然后两层全连接,最后是softmax层。 Pooling函数选择的是max-pooing(比average-pooing效果更好)

LSTM 结构

文中提出了一种深度LSTM架构,每一个LSTM的输出是下一层LSTM的输入,经过实验,最后选择五层LSTM,每一层包含512个memory cells.

2017-05-21 4 42 13

模型训练

(1) 在训练feature-pooling结构时,可以先利用single-frame network进行初始化,然后再扩展到30-frame以及120-frame模型 (2) LSTM训练过程中,在每一帧进行反向传播的时候加了一项g,g在不同frame 0,1,…, T之间按照线性插值的方式从(0,1)之间取值,起到的效果是能够对后续的frame给予更多的权重(emphasizing the importance of correct prediction at later frames in which LSTM’s internal state captured more information) (3) LSTM做预测时,有以下几种方式:1. 返回最后一个时刻的预测值 2. Max-pooling所有时刻的预测值 3. 对所有预测值作加法,然后取最大值的那一类 4. 按照权重g对所有时刻的预测值加权平均,然后返回最大值。 实验表明,四种方法结果差不多(less than 1% different, 但是最后一种方式(按照g值加权平均)通常结果更好。

optical flow

后面把optical flow信息融入结构,设计了一个two-stream架构,在此略过。

结果

  1. 几种pooling的结果比较

    2017-05-21 4 52 30
  2. GooLeNet 结果好于 AlexNet

    2017-05-21 4 55 29
  3. 不同frame数量的比较

    2017-05-21 4 55 42
  4. Sports-1M 结果

    2017-05-21 4 55 48
  5. UCF-101 结果

    2017-05-21 4 55 55

当然上面的效果比较都是利用Optical flow信息,从结果来看feature pooling和LSTM并没有绝对优劣,因此我认为可以都尝试一下。

blueardour commented 7 years ago

"文中提出了一种深度LSTM架构,每一个LSTM的输出是下一层LSTM的输入,经过实验,最后选择五层LSTM,每一层包含512个memory cells."

这里 ‘每层512个memory cells’ 应该是指示LSTM的timestamp为512吧。相当于一开始要缓存512帧才出第一个结果。

论文里貌似没提到每个LSTM unit使用的feature map的宽度是多少。 输入的feature map为Alexnet或者GoogleNet产生的,但是作者没有提是这两个网络的第几层作为LSTM或者feature Pool 的输入。 另外LSTM的输出特征值的宽度也没有提到~~


关心输入输出特征值的宽度,是因为可以通过这些值评估网络的计算复杂度。

blueardour commented 7 years ago

Alexnet, Googlenet原本用用Imagenet的分类, 分为1000类,输出都是1000个向量。 如果Beyond Short Snippets采用的这两个网络最后一层的输出作为输入特征值,可认为LSTM的输入为1000维的向量。

那么问题只剩下每层LSTM中间的特征向量的宽度了

blueardour commented 7 years ago

如果认为网络是专用于Sports-1M 数据集的, 输出维度按照数据集的分类数来定, 即是487类。

NiyunZhou commented 7 years ago

@blueardour 多谢指点。这个比赛已经结束了,所以我们的工作也没有继续下去了。如果对某一方面有疑问,欢迎讨论~

Hiker01 commented 5 years ago

这边我有一个疑惑:论文种写到使用1fps采样30帧图片,这样就需要30秒的视频,可是UCF101最长只有15秒左右,我想知道是不是我理解错了?