我们最终提交的结果是 74 个模型组成的 Ensemble,在最终测试集上取得了 0.8459 的全局平均准确率。我们主要从三个方面对视频进行建模:标签相关性,视频的多层次信息,以及时间上的注意力模型。在标签相关性建模中,我们采取一种不断对分类结果进行降维并用于后续预测的网络结构,这种结构可以有效提升多种模型的分类性能。我们使用一种深层卷积神经网络结合循环神经网络的结构,在多个时间尺度上对视频的帧特征序列进行建模。另外,我们采取注意力模型对序列模型的输出进行 Attention pooling 取得了较好的效果。 我们的方法:标签相关性+时间多尺度信息+注意力模型 1、标签相关性 我们提出一种链式神经网络结构来建模多标签分类时的标签相关性。如下图所示,当输入是视频级别特征时,该结构将单个网络的预测输出进行降维,并将降维结果与视频表示层合并成一个表示并再经过一个网络进行预测。网络中最后一级的预测结果为最终分类结果,中间几级的预测结果也会作为损失函数的一部分。链式结构可以重复数级,在视频级别特征和专家混合网络上的实验表明,在控制参数数量相同的条件下,链式结构的层级越多,分类性能越好。 不仅视频级别特征可以使用链式结构,通过如 LSTM、CNN 和注意力网络等视频表示网络,同样也可以对帧级别特征使用链式结构网络。在对该网络进行实验时,我们发现,j2直播,对其中不同层级的视频表示网络使用不共享的权重,可以获得更好的性能。 2、利用时间多尺度信息 由于不同的语义信息在视频中所占据的时长不同,在一个时间尺度上进行建模可能会对某些分类较为不利。因此,我们采取一种在时间上进行 pooling 的方式来利用在更大的时间尺度上的语义信息。我们采用 1D-CNN 对帧序列提取特征,通过时间上 pooling 来降低特征序列的长度,再通过 1D-CNN 再次提取特征,如此反复得到多个不同长度的特征序列,对每个特征序列,我们采用一个 LSTM 模型进行建模,将最终得到的预测结果进行合并。通过这种方式,我们利用了多个不同时间尺度上的信息,该模型也是我们性能最好的单模型。 3、注意力模型 我们使用的另一模型是对帧序列的表示采用 Attention Pooling 的方式进行聚合,由于原始序列只反映每帧的局部信息,而我们希望聚合具有一定的序列语义的信息,因此我们对 LSTM 模型的输出序列进行 Attention Pooling。实验表明,这种 Attention Pooling 的方式可以提高模型的预测效果。另外,在注意力网络中使用位置 Embedding 可以进一步改善模型性能。 我们对注意力网络输出的权重进行了可视化,我们发现,注意力网络倾向于给予呈现完整的、可视的物体的画面更高的权重,而对于没有明显前景的、较暗的或呈现字幕的画面更低的权重。 思考:大规模深度学习中硬件架构,以及视频分析中算法效率十分重要 在本次比赛中我们感受非常深的一点是大规模深度学习中硬件架构的重要性。由于我们的服务器之间仅以千兆网相连,我们无法做到高效的梯度同步,因而无法利用多机集群来加速运算。我们全部的算法都是在单卡上运行的,其结果是验证性实验的迭代周期变长了,并进行了很多目的性不明确的探索。而在工业界的深度学习集群中,万兆以上的机房网络已经是主流,架构的落后给我们带来了很多困难。 (责任编辑:本港台直播) |