阿里安全圖靈實驗室:ECCV2018Workshop之旅

為易.wx發表於2018-09-29

====阿里安全圖靈實驗室====
作者:為易、析策

ECCV的全稱是European Conference on Computer Vision(歐洲計算機視覺國際會議) ,兩年一次,是計算機視覺三大會議(另外兩個是ICCV和CVPR)之一。
YouTube8M是一個大規模視訊標籤資料集,裡面包含了大概8百萬視訊和3800左右的類別標籤。為了推進視訊領域的研究,Google AI每年會在這個資料集上舉辦比賽。

阿里安全圖靈實驗室今年參加了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。
通過本文進行分享,希望能有所幫助。

ECCV2018 workshop

今年ECCV的workshop/tutorial有60多個,有些辦了幾屆,有些今年是第一屆,所涵蓋的主題不論給學術界,也給工業界帶來了很大啟發。下面介紹我們參加的其中一個workshop—-“2nd Workshop on Youtube-8M Large-Scale Video Understanding”
下圖為大名鼎鼎的VGG發明人Andrew Zisserman和google視訊分析團隊負責人Paul Natsev
IMG_0581.JPG
下圖為我們的poster現場
IMG_0665.JPG

比賽介紹

比賽在YouTube8M資料集上進行,為了使資料集體積減小,官方使用一些網路對圖片和音訊提取特徵並pca降維後儲存,整個資料集大小為1.5T左右。資料集統計資料如下圖所示:
vertical-entities-2.png
vertical-videos-2.png
無標題.png
經過pca降維後圖片為1024維,音訊為128維,視訊時長大概分佈在120到500秒之間,平均每個視訊3個標籤左右。
比賽要求在這樣的資料集上訓練一個不超過1GB大小的模型,並且不允許在test資料集上做任何處理。

比賽準備

我們首先分析了去年獲勝隊伍的做法。今年的資料集有所變化,對標籤做了一些調整,所以去年的一些獲勝隊伍的做法仍然有參考價值。
去年第一名採用了改進的netVlad[1]作為參賽模型,使用netVLAD和Gate Context來代替傳統RNN模型做temporal aggregation。該模型在測試集上效果比較好,但是模型體積太大,大概4GB左右。去年第二名採用了77個模型進行ensemble,模型體積也比較大。下圖為VLAD(左)和netVLAD(右)
螢幕快照 2018-09-17 下午4.21.13.png

去年第三名採用了改進的7層的Bi-direction LSTM,加入了Fast-forward為了能讓7層LSTM可以訓練,如下圖所示:
無標題.png

我們的工作

我們從以下幾個方面進行序列建模,來完成視訊標籤的任務,分別是: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的具體實現如下圖所示:
無標題.png

GRU+Attention+Two Stream

考慮到有些視訊可能聲音比較重要,比如靜態畫面的MTV,對於這種視訊如果只看畫面,網路可能很難分辨視訊屬於哪個類別。所以我們考慮將畫面特徵與音訊特徵分別建模,最後做融合,下文把這種分別建模再融合的辦法稱為Two Stream Model。跟傳統的視訊Two stream(運動+內容)概念不同,這樣做是因為資料集裡面只有預先提取的特徵,並且經過了PCA降維,所以我們無法很好的獲得運動資訊。
經過分別對視訊和音訊建模再融合,Two Stream Model取得了比之前更好的效果,GRU+Attention+Two Stream的模型得到GAP:84.6%。模型結構和訓練曲線如下圖所示:
螢幕快照 2018-09-17 下午7.34.36.png
無標題1.png無標題.png

SRU+Attention+Two Stream

GRU減少了LSTM的門數量,同時又保證了模型效果,雖然GRU減少了兩個門,但是依然訓練緩慢。SRU通過使用hadamard product來代替矩陣乘法,並通過將大量計算放在可以並行的步驟,加速了訓練和推理過程。我們嘗試使用SRU替換GRU,得到GAP:85.4%。SRU結構和訓練曲線如下圖所示:
螢幕快照 2018-09-17 下午7.51.49.png
無標題1.png無標題.png

IndRNN+Attention+Two Stream

IndRNN對LSTM的優化更極端,去掉了全部的門,並且使用hadamard product。我們使用IndRNN改進模型後得到GAP:83.4% 模型結構和訓練曲線如下:
螢幕快照 2018-09-17 下午7.57.59.png
無標題1.png無標題.png

CNN替代RNN系列

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結構如下:
螢幕快照 2018-09-17 下午8.28.34.png
訓練曲線如下:
無標題1.png無標題.png

TCN+Attention+Residual+Two Stream

TCN是一個最近在NLP上取得不錯結果的模型,我們使用TCN改進基礎的CNN,並且使用了空洞卷積來擴大時間尺度上的視野。最後得到GAP:85.5%網路結構如下圖:
無標題.png

Graph建模(accepted as post by ECCV2018)

我們認為視訊是一種含有多級結構的資料(hierarchical data structure),即一個視訊包含幀、鏡頭、場景、事件等。而且幀與幀、鏡頭與鏡頭間的關係十分複雜,不僅僅是前後幀的順序關係,通過一般的序列建模方法,如LSTM,無法表達如此複雜的關係,建模效果較差。舉個例子,如圖1所示,包含同一個目標物的幀或鏡頭並不都是連續的,它們分佈在不同的時間點上。本文通過深度卷積圖神經網路(DCGN)對視訊的幀、鏡頭、事件進行多級的建模,逐漸地從幀級、鏡頭級,一直到視訊級進行抽象,從而獲得視訊全域性的表達,進而進行分類,如圖2所示。
無標題.png
無標題.png
節點被邊連結在一起。通過該圖,最終獲得視訊級的表達(video level embedding),進而進行分類(video classification)。
DCGN的核心模組包括1)節點卷積(node convolution);2)圖池化(graph pooling);3)特徵傳播(propagate)。 並且通過堆疊模組形成了一個深度的圖神經網路。圖3展示了網路中的一個3層的子結構。
無標題.png
此項工作可以作為序列建模的通用方法,在其它如語音識別、文字分類等場景都有潛在應用價值。
我們使用基礎的deep convolutional graph neural network(DCGN)結構來建模,得到GAP:84.5%

VLAD建模

原始的netVLAD體積有4GB左右,無法直接拿來用在本屆比賽中,所以我們考慮減小netVLAD的體積,通過對網路的剪枝,我們得到400MB左右的模型。最終GAP:86%

Ensemble

通過Ensemble,我們最終模型大小980MB得到的GAP:88.3%

安全AI相關workshop

此外,我們還關注了一些和安全AI相關的workshop和tutorial,主要包括

  • “Workshop on Objectionable Content and Misinformation”
  • Adversarial ML

Workshop on Objectionable Content and Misinformation

隨著網際網路的出現,特別是搜尋引擎和社交網路的出現,每天都會建立和共享大量的影像和視訊,從而導致數十億的資訊呈現給大眾。然而依然存在如下兩大問題:

不良內容:令人反感的內容或敏感影像,如裸露,色情,暴力,血腥,兒童欺凌和恐怖主義等。
誤導資訊:如假鏡頭、PS等可能損壞影像和視訊資訊的準確性,破壞了資訊(新聞,部落格,帖子等)的不偏不倚和信任。

本次研討會的組織者來自Google,Facebook和一些相關領域的企業和學術機構,目的是探索由令人反感的內容和錯誤資訊引起的計算機視覺領域的具體挑戰,並圍繞這一研究領域建立一個聯合討論論壇。研討會的研究主題包括

  • 影像和視訊取證
  • 檢測/分析/理解作假影像和視訊
  • 錯誤資訊檢測/理解:單模態和多模態
  • 對抗技術
  • 不良內容的檢測/理解:包括:色情、暴力、仇恨言論、恐怖主義、瀕危兒童等。

本次研討會的大部分時間是對misinformation進行了討論,即Image Splicing and localization
Screen Shot 2018-09-17 at 11.43.44 AM.png

Adversarial ML

機器學習和資料驅動的AI技術,包括深度網路,目前用於多種應用,從計算機視覺到網路安全。 在大多數這些應用程式中,包括垃圾郵件和惡意軟體檢測,學習演算法必須面對智慧的和自適應的攻擊者,他們可以精細地操縱資料,從而故意破壞學習過程。 由於這些演算法最初並未在這樣的場景下設計,因此它們被證明易受精心設計的複雜攻擊,包括測試期間的規避(evasion)和訓練期間的中毒(poisoning)攻擊(也稱為對抗性樣本)。 因此,在對抗環境中應對這些威脅並學習安全分類器和AI系統的問題已經成為機器學習和人工智慧安全領域中一個新興的相關研究領域的主題,稱為對抗性機器學習。
如何設計一個Adversary-aware 的機器學習系統呢?這個tutorial提出了3個黃金法則

  • Know your adversary。如果你瞭解敵人並瞭解自己,你就不必擔心戰鬥結果
  • Be proactive。要了解你的敵人,你必須成為你的敵人
  • Protect your classifier。

螢幕快照 2018-09-18 上午11.50.23.png
螢幕快照 2018-09-18 上午11.52.32.png
Screen Shot 2018-09-17 at 11.21.30 AM.png


相關文章