ECCV的全称是European Conference on Computer Vision(欧洲计算机视觉国际会议),两年一次,是计算机视觉三大会议(另外两个是ICCV和CVPR)之一。YouTube8M是一个大规模视频标签数据集,里面包含了大概8百万视频和3800左右的类别标签。为了推动视频领域的研究,Google
AI每一年会在这个数据集上举办比赛。node
阿里安全图灵实验室今年参加了ECCV2018的2个workshop和YouTube8M比赛,咱们提出的“Hierarchical Video Frame Sequence Representation with Deep Convolutional Graph Network” 文章被“2nd Workshop on Youtube-8M Large-Scale Video Understanding”接收,并在“First Workshop on Computer Vision For Fashion, Art and Design”的比赛中得到冠军,已受邀在研讨会上进行poster和oral。
经过本文进行分享,但愿能有所帮助。算法
今年ECCV的workshop/tutorial有60多个,有些办了几届,有些今年是第一届,所涵盖的主题不论给学术界,也给工业界带来了很大启发。下面介绍咱们参加的其中一个workshop----“2nd Workshop on Youtube-8M Large-Scale Video Understanding”
下图为大名鼎鼎的VGG发明人Andrew Zisserman和google视频分析团队负责人Paul Natsev安全
下图为咱们的poster现场网络
比赛在YouTube8M数据集上进行,为了使数据集体积减少,官方使用一些网络对图片和音频提取特征并pca降维后存储,整个数据集大小为1.5T左右。数据集统计数据以下图所示:机器学习
通过pca降维后图片为1024维,音频为128维,视频时长大概分布在120到500秒之间,平均每一个视频3个标签左右。
比赛要求在这样的数据集上训练一个不超过1GB大小的模型,而且不容许在test数据集上作任何处理。ide
咱们首先分析了去年获胜队伍的作法。今年的数据集有所变化,对标签作了一些调整,因此去年的一些获胜队伍的作法仍然有参考价值。
去年第一名采用了改进的netVlad[1]做为参赛模型,使用netVLAD和Gate Context来代替传统RNN模型作temporal aggregation。该模型在测试集上效果比较好,可是模型体积太大,大概4GB左右。去年第二名采用了77个模型进行ensemble,模型体积也比较大。下图为VLAD(左)和netVLAD(右)函数
去年第三名采用了改进的7层的Bi-direction LSTM,加入了Fast-forward为了能让7层LSTM能够训练,以下图所示:post
咱们从如下几个方面进行序列建模,来完成视频标签的任务,分别是:RNN系列、CNN替代RNN系列、Graph建模、VLAD建模。性能
RNN系列学习
时间序列建模最早想到的就是RNN模型,经过RNN的计算可以作到temporal aggregation,以后进行多标签分类。
RNN Base Line
直接使用LSTM对视频进行temporal aggregation,而后使用Logistic进行多标签分类,咱们获得GAP:76.5%
RNN+Attention
原始的LSTM效果比较弱,咱们考虑使用Attention对模型进行改进,LSTM+Attention获得GAP:83.9%,相比较单纯使用LSTM提高了6个点左右,随后咱们对Attention进行了分析,获得的中间结果显示,Attention在temporal aggregation的过程当中起了很重要的做用,让模型更关注一些重要的能表达内容的视频帧画面。Attention的具体实现以下图所示:
GRU+Attention+Two Stream
考虑到有些视频可能声音比较重要,好比静态画面的MTV,对于这种视频若是只看画面,网络可能很难分辨视频属于哪一个类别。因此咱们考虑将画面特征与音频特征分别建模,最后作融合,下文把这种分别建模再融合的办法称为Two Stream Model。跟传统的视频Two stream(运动+内容)概念不一样,这样作是由于数据集里面只有预先提取的特征,而且通过了PCA降维,因此咱们没法很好的得到运动信息。
通过分别对视频和音频建模再融合,Two Stream Model取得了比以前更好的效果,GRU+Attention+Two Stream的模型获得GAP:84.6%。模型结构和训练曲线以下图所示:
SRU+Attention+Two Stream
GRU减小了LSTM的门数量,同时又保证了模型效果,虽然GRU减小了两个门,可是依然训练缓慢。SRU经过使用hadamard product来代替矩阵乘法,并经过将大量计算放在能够并行的步骤,加速了训练和推理过程。咱们尝试使用SRU替换GRU,获得GAP:85.4%。SRU结构和训练曲线以下图所示:
IndRNN+Attention+Two Stream
IndRNN对LSTM的优化更极端,去掉了所有的门,而且使用hadamard product。咱们使用IndRNN改进模型后获得GAP:83.4% 模型结构和训练曲线以下:
RNN和其改进的模型一般被用在序列建模,大量的序列建模任务也证明了RNN系列模型有很好的拟合能力。RNN系列经过BPTT来进行反向传播训练模型,对于时间的依赖致使RNN系列模型相比CNN不能并行计算,从而影响了训练速度和推理速度。RNN系列里LSTM、GRU、SRU虽然经过门的改进解决了gradient vanish,可是sigmoid函数的使用使得RNN系列层数一旦加深,依然会产生gradient decay,最终难以训练。
CNN在最近的一些序列建模任务中也表现出不错的结果,CNN天生能够并行化计算,经过对层数的堆叠依然能够达到扩大时间尺度上视野的效果,而且CNN能够加深不少层依然容易训练。
因此咱们尝试使用CNN代替RNN进行建模。
CNN+Attention+Residual+Two Stream
咱们尝试使用简单的CNN来替代RNN对时间维度进行卷积,为了加速训练咱们使用了Residual结构。同时咱们使用GLU激活函数带替代ReLU,GLU使用gate思想添加了gate unit,GLU对比ReLU会产生更高的精度。该模型最后获得GAP:85.9%,模型大小138MB,这是本次比胜过程中咱们获得的性价比(性能/体积)最高的模型。
网络结构和GLU结构以下:
训练曲线以下:
TCN+Attention+Residual+Two Stream
TCN是一个最近在NLP上取得不错结果的模型,咱们使用TCN改进基础的CNN,而且使用了空洞卷积来扩大时间尺度上的视野。最后获得GAP:85.5%网络结构以下图:
Graph建模(accepted as post by ECCV2018)
咱们认为视频是一种含有多级结构的数据(hierarchical data structure),即一个视频包含帧、镜头、场景、事件等。并且帧与帧、镜头与镜头间的关系十分复杂,不只仅是先后帧的顺序关系,经过通常的序列建模方法,如LSTM,没法表达如此复杂的关系,建模效果较差。举个例子,如图1所示,包含同一个目标物的帧或镜头并不都是连续的,它们分布在不一样的时间点上。本文经过深度卷积图神经网络(DCGN)对视频的帧、镜头、事件进行多级的建模,逐渐地从帧级、镜头级,一直到视频级进行抽象,从而得到视频全局的表达,进而进行分类,如图2所示。
节点被边连接在一块儿。经过该图,最终得到视频级的表达(video level embedding),进而进行分类(video classification)。
DCGN的核心模块包括1)节点卷积(node convolution);2)图池化(graph pooling);3)特征传播(propagate)。 而且经过堆叠模块造成了一个深度的图神经网络。图3展现了网络中的一个3层的子结构。
此项工做能够做为序列建模的通用方法,在其它如语音识别、文本分类等场景都有潜在应用价值。
咱们使用基础的deep convolutional graph neural network(DCGN)结构来建模,获得GAP:84.5%
原始的netVLAD体积有4GB左右,没法直接拿来用在本届比赛中,因此咱们考虑减少netVLAD的体积,经过对网络的剪枝,咱们获得400MB左右的模型。最终GAP:86%
Ensemble
经过Ensemble,咱们最终模型大小980MB获得的GAP:88.3%
此外,咱们还关注了一些和安全AI相关的workshop和tutorial,主要包括
Workshop on Objectionable Content and Misinformation
随着互联网的出现,特别是搜索引擎和社交网络的出现,天天都会建立和共享大量的图像和视频,从而致使数十亿的信息呈现给大众。然而依然存在以下两大问题:
不良内容:使人反感的内容或敏感图像,如裸露,色情,暴力,血腥,儿童欺凌和恐怖主义等。
误导信息:如假镜头、PS等可能损坏图像和视频信息的准确性,破坏了信息(新闻,博客,帖子等)的不偏不倚和信任。
本次研讨会的组织者来自Google,Facebook和一些相关领域的企业和学术机构,目的是探索由使人反感的内容和错误信息引发的计算机视觉领域的具体挑战,并围绕这一研究领域创建一个联合讨论论坛。研讨会的研究主题包括
本次研讨会的大部分时间是对misinformation进行了讨论,即Image Splicing and localization
机器学习和数据驱动的AI技术,包括深度网络,目前用于多种应用,从计算机视觉到网络安全。 在大多数这些应用程序中,包括垃圾邮件和恶意软件检测,学习算法必须面对智能的和自适应的攻击者,他们能够精细地操纵数据,从而故意破坏学习过程。 因为这些算法最初并未在这样的场景下设计,所以它们被证实易受精心设计的复杂攻击,包括测试期间的规避(evasion)和训练期间的中毒(poisoning)攻击(也称为对抗性样本)。 所以,在对抗环境中应对这些威胁并学习安全分类器和AI系统的问题已经成为机器学习和人工智能安全领域中一个新兴的相关研究领域的主题,称为对抗性机器学习。
如何设计一个Adversary-aware 的机器学习系统呢?这个tutorial提出了3个黄金法则
本文做者:为易.wx
本文为云栖社区原创内容,未经容许不得转载。