写在前面
未经允许,不得转载,谢谢~~
- 文章出处:ACM-MM 2016
- 文章链接:https://dl.acm.org/citation.cfm?id=2964328
实验室前两年视频分类的作品,文章整个结构和idea都不是很难,做个简单记录分析,方便以后查阅;
一 文章简介
这篇文章主要做了以下两件事情:
用多个模型的框架,同时对空间信息(individual frames),时间信息(optical flow),语音信息(audio)都做了学习,形成一个mult-stream的网络模型架构;
在融合方式上,既不是简单的线性权重,又不是繁琐地再加一个卷积神经网络的方式,而是根据各个类来自适应的调整各个stream的方式来进行多个特征的融合。
最后文章在2个常用的数据集上进行了相关的实验工作并取得不错的结果。
二 网络结构
这个部分介绍一下整篇文章中比较重要的一些部分以及值得参考的idea.
2.1 multi-model模型构成
如下图所示为整个网络的模型结构图:
简单分析一下:
- 从左边的网络模型上来看主要有ConvNet和LSTM两种网络结构;
- 先不看LSTM,可以看到对于视频的三种输入
individual frames
,stacked optical flow
,audio spectrogram
都是直接输入到ConvNet中进行学习和特征的提取; - 再看中间的两个LSTM网络,是因为考虑到ConvNet本身只能学习到一个short-term的短时时间关系,所以对于长短时的特征学习的效果不好,因此在原来的结果的基础上将其中一个fc层的输出作为LSTM的输入再次进行学习。
整个网络结构用的都是state-of-art的结构,想法也比较简单直观。
2.2 multi-stream fusion 融合方式
以前出现过的融合方法不管是线性权重融合还是卷积神经网络融合,都是将每个类等同看待的。
但是每个类对于各个stream的依赖程度可能是不一样的,这点也很好理解。有些可能依靠spatio的图像物体识别就可以判断出到底是什么动作,而有些会更加依赖于帧与帧之间的时序信息。因此本文提出了一个简单有效的多流融合方法。
-
假设每个stream学习到score值(属于C类)表示为如下所示:
-
这样能得到n个训练样本在各个stream上的取值:
-
最后可以用类似于logistic regression逻辑斯特回归的方式求一个最佳fusion的权重
这样最终每个样本预测的类别值就不仅仅由它自己在各个stream上的值决定,而是与其他样本在这些stream上的分布都相关。
2.3 类间关系的利用
个人觉得这里有文章中比较惊艳的一个idea就是用confusion matrix矩阵来获取类间的关系。
来看一下这个图:
简单解释一下就是类与类之间的预测结果分布,其中一个轴表示ground-truth,另一个表示预测的结果,可以直观反映预测的情况,最完美的情况下所有的点都分布在对角线上。
这样就可以借助它获取到类i与类j之间的相似程度:
这个公式度量了ground-truth是Ci的情况下,被模型预测为Cj的概率,这样就可以作为Ci与Cj相似度之间的一种判断方法。
将各个stream得到的类间相似程度堆叠得到V:最后将这个与之前的loss做一个结合(这部分具体的我也没有细看,感兴趣的可以自己去看原文哦)