一文看懂深度學習中的VQA(視覺問答)技術
視覺問答(Visual Question Answering,VQA)是一個需要理解文本和視覺的新領域。由於深度學習技術顯著地改善了自然語言處理和計算機視覺結果,我們可以合理地預期VQA將在未來幾年變得越來越準確。
前言
最近Amusi一直在follow最新的計算機視覺方向的論文,經常在arXiv上看到關於VOA方向的論文。這個方向研究的人越來越多,Amusi覺得很有必要對VOA進行了解。在此分享一下,我在tryolabs上看到的一篇文章Introduction to Visual Question Answering: Datasets, Approaches and Evaluation"[1],這裡大致對該文的翻譯,其內容真的是滿滿乾貨。
VOA
歷史上看,建立一個能夠回答關於圖像的自然語言問題的系統一直被認為是一個很有前景的方向。根據下面圖像,想像一個系統,它可以回答這些問題:
- 圖像中有什麼?
- 有人類嗎?
- 什麼運動正在進行?
- 誰在踢球?
- 圖像中有多少球員?
- 參賽者有哪些人?
- 在下雨嗎?
1986年阿根廷VS英格蘭
那麼,圖像中有多少玩家?那麼,我們可以數一數,可以看到有十一名球員。因為我們足夠聰明,所以不會將裁判員也計數。
儘管作為人類,我們通常可以輕鬆地執行此任務,但研發具有這些功能的系統似乎更接近於科幻小說,而非當然人工智慧(AI)所能實現的。然而,隨著深度學習(DL)的出現,我們目睹了視覺問答(VQA)方面的巨大研究進展,使得能夠回答這些問題的系統正在出現,並帶來很有希望的成果。
在本文中,我將簡要介紹VQA中的一些當前數據集,方法和評估指標以及如何將這一具有挑戰性的任務應用於實際生活中。
多學科問題
通常,我們可以將VQA系統定義為一種演算法,將圖像和關於圖像的自然語言問題作為輸入,並生成自然語言答案作為輸出。這本質上是一個多學科的研究問題。舉個例子來說,關於前面提到的圖片問題。我們需要自然語言處理(NLP)至少有兩個原因:理解問題和產生答案。這些是基於文本的問答中的常見問題,這是一個在NLP中深入研究的問題。給出以下句子:
巴黎有幾座橋樑?
NLP問答系統通常會:
- 分類或輸入問題:這是一個「多少」問題,因此答覆必須是一個數字。
- 提取對象以計數:橋樑。
- 提取必須執行計數的上下文:在這種情況下,巴黎市。
在對問題進行分析後,系統建立某種查詢並依靠知識庫來獲得答案。這並非是一件輕鬆的事情(例如,美國至少有22個城市稱為巴黎pairs),but a lot of work has been done since the 1970s(不知道這句英文放在此處的含義)。
VQA的主要區別在於搜索和推理部分必須在圖像內容上執行。因此,要回答是否有人類,系統必須能夠檢測到物體。要回答是否下雨,就需要對場景進行分類。要回答團隊有哪些人,那麼系統需要一些"常識"。最後,要說出哪個球員在踢球,此時常識性推理以及可能性的知識推理是必要的。在計算機視覺(CV)領域已經解決了這些任務中的許多任務(目標識別,目標檢測,場景分類等),其在過去幾年中取得了令人矚目的成果。
所以,正如我們所看到的,一個好的VQA系統必須能夠解決廣泛的典型NLP和CV任務,以及圖像內容的推理。這顯然是一個涉及CV,NLP和知識表示與推理(KR)的多學科AI研究問題。
可用的數據集
與NLP或CV中的許多問題一樣,例如機器翻譯(Machine Translation),圖像描述(Image Caption)或命名實體識別(Named Entites Recognition),數據集的可用性是一個關鍵問題。它們允許結合明確定義的指標(參見下面的「評估指標」部分),用不同的方法將它們與人的決策進行比較,並以絕對方式衡量它們的表現,即確定經驗最新技術的局限性。
VQA領域非常複雜,一個好的數據集應該足夠大以捕捉真實世界場景中問題和圖像內容中的各種可能性。許多數據集都包含來自Microsoft公共對象上下文(COCO)的圖像[1],該數據集包含328,000個圖像,具有91種對象類型,共有250萬個標記實例,這些對象很容易被一位4歲的孩子識別。
來自COCO數據集的注釋圖像示例
COCO數據集可以簡化並加速構建VQA數據集的過程。然而,這不是一件容易的事。例如,收集各種各樣,方便和沒有歧義(ambiguous)的問題是一個很大的挑戰。除了變化和精確性問題外,一個好的數據集也必須避免可能被利用的偏見。例如,如果數據集僅包含「是/否」答案,其中90%的答案為「是」,那麼最簡單的最常見的類策略將獲得90%的準確性,而不解決VQA方面的任何問題。
為了深入了解VQA的複雜性,我們來看看已發布的一些最重要的數據集。
DAQUAR數據集
第一個重要的VQA數據集是DAQUAR((The DAtaset for QUestion Answering on Real-world images))數據集[3],翻譯過來就是用於回答真實世界圖像數據集。它包含6794個訓練和5674個測試QA(question-answer) 對,基於NYU-Depth V2數據集的圖像[4]。這意味著平均每個圖像大約有9對。
雖然這是一項很棒的舉措,但紐約大學NYU資料庫僅包含室內場景,而如果在室外的情況,那麼會難以回答問題。事實上,對人類的評估,NYU數據集顯示了50.2%的準確率。
人為圖像生成的QA對的例子
DAQUAR數據集的另一個缺點是其不適合訓練和評估複雜模型。
COCO-QA數據集
在COCO-QA數據集比DAQUAR大很多。它包含來自COCO數據集的123,287幅圖像,78,736次訓練和38,948次測試QA對[5]。為了創建如此大量的QA對,一篇叫做《Exploring Models and Data for Image Question Answering》的作者使用NLP演算法從COCO圖像描述自動生成它們。例如,對於「房間里的兩把椅子」等給定的標題,它們會產生一個問題,例如「有多少椅子?」。必須注意的是,所有的答案都是一個單詞。
雖然這非常聰明,但這裡的一個明顯問題是,這些問題受到固有的NLP限制的困擾,所以它們有時是奇怪的形式或者有語法錯誤。在某些情況下,它們簡直難以理解:
問題中的語法錯誤的例子
另一個不便之處是數據集只有四種問題,不是均等分布的:對象(69.84%),顏色(16.59%),計數(7.47%)和位置(6.10%)。
VQA數據集
與其他數據集相比,VQA數據集相對較大。除COCO數據集的204,721張圖像外,它還包含50,000張抽象卡通圖像。每個圖像有三個問題,每個問題有十個答案,即超過760K個問題,其中有大約10M個答案。為了達到這個目的,亞馬遜土耳其機器人的工作人員提出了問題,另一個小組寫了答案。
有趣的一點是,為了測試,他們提出了兩種答案模式:開放式和多項選擇。對於第一種模式,他們提出以下度量標準:
這意味著如果至少有3名工作人員提供了確切的答案,則答案被認為是100%準確的。
對於多選模式,他們為每個問題創建18個候選答案(正確和不正確):
- 正確答案:通過十個注釋給出的最常見的答案。
- 合理的答案:從注釋者那裡收集三個答案,而不看圖像。
- 熱門答案:數據集中最受歡迎的十大答案(如「是」,「否」,「2」,「1」,「白」,「3」,「紅」,「藍」,「4」用於真實圖像的「綠色」)
- 隨機答案:為其他問題隨機選擇正確的答案。
儘管在設計數據集時採取了預防措施(例如,包含常見的答案使得從答案集中推斷問題的類型更加困難),但我們可以觀察到一些問題。也許最引人注目的是有些問題過於主觀而無法得到正確的答案。有時候,就像下面的圖片一樣,可能會給出最可能的答案。
一個棘手問題的例子。綠色字體表示查看圖像時給出的答案。藍色字體表示不看圖像隨便給出答案的情況。
我們不能說這個人有孩子,但毫無疑問,這是最可能的答案。然而,有些問題比如「你願意用那種方式飛行嗎?」在飛機的圖像上,沒有一個正確的答案。
最後,一個主要的缺點是我們可以稱之為微不足道的問題,那就是那些通常不需要圖像就能得到好的(或可能的)答案的問題。例如:「狗有多少條腿?」或「樹是什麼顏色?」,雖然並不總是正確,但四條和綠色是最常見和最明顯的答案。
目前的方法
一般來說,我們可以概述VQA中的方法如下:
- 從問題中提取特徵。
- 從圖像中提取特徵。
- 結合這些特徵來生成答案。
對於文本特徵,可以使用諸如Bag-Of-Words(BOW)或Long Short Term Memory(LSTM)編碼器等技術。就圖像特徵而言,在ImageNet上預先訓練的CNN是最常用的選擇。關於答案的生成,這些方法通常將問題建模為分類任務。
因此,幾種方法的主要區別在於它們如何將文本特徵和圖像特徵結合起來。例如,它們可以簡單地使用串聯將它們組合,然後提供一個線性分類器。或者它們可以使用貝葉斯模型來推斷問題,圖像和答案的特徵分布之間的基礎關係。由於過去幾年提出的大量演算法超出了本文的目的,所以我只會提到其中的一些。對於更詳細的比較分析,我建議您閱讀由Kafle和Kanan撰寫的關於VQA的優秀調查[6]。
基線(Baselines)
至於許多分類問題,一個似乎微不足道的基線總是對任何問題給出最常見的答案。另一個微不足道的基準是挑選一個隨機答案。例如,Antol等人的工作[7]。(2016年)顯示,始終從VQA數據集中最高的1K答案中選擇最受歡迎的答案(答案是「是」),可以獲得29.72%的準確性。除此之外,這可能與不希望的數據集偏差有關,這樣的結果說明了具有良好基線的重要性:它們確定可接受的最低性能水平,並且還可以暗示該任務的固有複雜性和/或數據集。
在VQA中廣泛使用的更複雜的基線包括使用代表特徵組合的向量作為輸入來訓練線性分類器或多層感知器。這種組合可以是簡單的連接或元素明智的總和或特徵的產物(element wise sum or element wise product)。
例如,之前引用的兩種模型的工作實驗:
- 一個多層感知器(MLP)神經網路分類器,每層具有2個隱藏層和1000個隱藏單元(丟失0.5),使用tanh作為激活函數。
- 一個LSTM模型後跟一個softmax圖層來生成答案。
在第一種情況下,對於文本特徵,使用詞袋模型(BOW)方法,使用問題中的前1000個單詞和字幕中的1000個最常用單詞來計算它們。對於圖像特徵,他們使用VGGNet的最後一個隱藏層。至於LSTM模型,他們使用單一熱點編碼解決問題,並使用與上述相同的圖像特徵,然後進行線性變換,將圖像特徵轉換為1024維,以匹配問題的LSTM編碼。問題和圖像編碼通過元素明智(element-wise)的乘法相結合。
這些基線所取得的成績非常有趣。例如,如果僅對文本特徵訓練模型,則準確度(accuracy)為48.09%,而如果僅對視覺特徵進行訓練,則將降低至28.13%。他們最好的模型,LSTM訓練這兩種功能,有53.74%的準確性。作者證實,多項選擇的結果優於開放式結果,並且正如所料,所有方法都比人的表現差得多。
這個框架中的許多變體可以被實現,以獲得不同的基線。
基於關注(attention)的方法
基於關注的方法的目標是將演算法的重點放在輸入的最相關部分上。例如,如果問題是「球是什麼顏色?」,則包含球的圖像區域比其他球體更相關。用同樣的方式,「顏色」和「球」這兩個詞,比其他的詞更加attention。
VQA中最常見的選擇是利用空間注意力來生成特定區域的特徵來訓練CNN。有兩種常見的方法來獲取圖像的空間區域。首先,通過在圖像上投射網格。
使用網格將注意力集中到一起
網格應用後,每個區域的相關性由具體問題決定。
另一種方法是提出自動生成的邊界框。
使用邊框的proposed regions的示例
鑒於提出的區域,我們可以使用該問題來確定每個特徵的相關性,並僅挑選那些回答問題所必需的。
這些只是將注意力納入VQA系統的兩種技術,還有更多可以在文獻中找到。
貝葉斯方法
貝葉斯方法背後的想法是模擬問題和圖像特徵的共現統計,作為推斷問題和圖像之間關係的一種方式。
例如,在Kafle和Kanan(2016)所攥寫的《Answer-Type Prediction for Visual Question Answering 》論文中[8],作者給出了問題特徵和答案類型的圖像特徵概率。他們這樣做是因為他們觀察到給定一個問題,答案的類型可以經常預測。例如,「圖像中有多少玩家?」是一個「多少」的問題,需要一個數字作為答案。為了對這些概率進行建模,他們將貝葉斯模型與鑒別模型相結合。關於這些功能,他們使用ResNet[9]來處理圖像,並跳級思考向量(skip-thought vectors)來處理文本。
評估指標
這看起來很明顯,但要記住:任何系統的性能(以及因此在給定域中的最新技術水平)取決於所評估的度量標準。在VQA中,我們可以使用的最直接的指標是經典精度(classic accuracy)。雖然這對於多選答案系統來說是一個合理的選擇,但對於開放式答案來說,這往往是非常不利的。如果基礎答案是「橡樹」,這是否意味著答案「樹」是絕對不正確的?如果問題是「圖像中出現了什麼動物?」,並且圖像顯示了狗,貓和兔子,那麼「貓和狗」的答案是不正確的嗎?
這些都是非常複雜的問題,為了儘可能精確地評估不同的方法,必須解決這些問題。
WUPS
Malinowski和Fritz在2014年提出的WUPS測度[10]是基於Wu和Palmer於1994年提出的WUP測度[11],它估計了答案和ground truth之間的語義距離,即0和1之間的值。他們依賴於WordNet使用語義樹中包含在答案和基本事實中的詞語的距離來計算相似度。這樣,對於單項來說,我們可以得到如下結果:
與幾乎所有語義測量一樣,WUPS為絕對斷開(absolutely disconnected)的術語分配相對重要的值。為了解決這個問題,作者建議將低於0.9的分數乘以0.1。
不可否認的是,對於許多情況,WUPS比經典精度更適合。但是,由於它依賴於語義相似性,因此如果基礎事實是「黑色」或「綠色」或其他顏色,則「紅色」答案將具有非常高的分數。另一個問題是它只能在小的條件下工作,並且只有在它們具有WordNet含義時才起作用。
多個獨立的ground truth答案
正如我們對VQA數據集所看到的,不是依賴語義度量,而是每個問題都可以有多個ground truth答案。然後,例如,我們可以說,如果一個給定的答案與頻率高的答案匹配,或者至少它與可能的ground truth答案中的一個相匹配,那麼它是正確的。後者必須慎重應用,因為是/否問題沒有共識答案:在這種情況下,任何答案都是正確的。
手動評估
最後,解決評估階段的另一種方法是使用人類judges來評估答案。當然,這是一種成本非常高方法。此外,必須制定明確標準的指導方針,以便judges能夠正確評估答案。應該預見到一些類型的培訓,旨在評估的質量和judges之間的良好協議。
真實生活應用
VQA有許多潛在的應用。最直接的應用可能是幫助盲人和視障人士。VQA系統可以提供有關Web或任何社交媒體上的圖像的信息。另一個明顯的應用是將VQA集成到圖像檢索系統中。這可能會對社交媒體或電子商務產生巨大影響。VQA也可以用於教育或娛樂目的。
該VQA聯盟[12]與信息,資源和軟體上VQA一個非常完整的和有用的網站。他們舉辦VQA挑戰賽以及VQA挑戰研討會,值得關注任務,會談和論文,因為他們對該領域的未來發展方向提供了良好的線索。您還可以嘗試CloudCV[13],這是一個非常有趣的VQA系統在線演示。
最後的想法
VQA是一個需要理解文本和視覺的新領域。由於深度學習技術顯著地改善了NLP和CV結果,我們可以合理地預期VQA將在未來幾年變得越來越準確。
與IA中的許多其他任務一樣,構建的數據集和定義的度量標準以某種方式塑造了迄今為止所做的研究工作。評估VQA系統的最佳方式仍然是一個懸而未決的問題,很有可能新的數據集和度量標準將有助於加深和改進質量概念。
問題的措辭如何偏倚VQA系統
還有幾個問題和正在進行的討論。例如,考慮到VQA系統可能是正確的,那麼使用多選數據集是好還是不好?在多項選擇數據集中性能卓越的系統是現實生活中的一個很好的系統,在這些系統不可用的情況下?在獲得的答覆中提出問題的方式會產生什麼影響?(見上圖)
雖然目前的表現遠不是人為的決定,但結果已經可以被利用,而且事實上非常有希望。由於VQA被大型公共平台,設備和工具所採用,它很可能會改變我們搜索數據和與數據交互的方式。
參考
[1]原文:https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/
[2]Microsoft Common Objects in Context (COCO):http://cocodataset.org/#home
[3]DAQUAR數據集:https://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-computing/research/vision-and-language/visual-turing-challenge/
[4]NYU-Depth V2數據集:https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
[5]COCO-QA數據集:http://www.cs.toronto.edu/~mren/imageqa/data/cocoqa/
[6]Visual Question Answering: Datasets, Algorithms, and Future Challenges
:https://arxiv.org/abs/1610.01465
[7]VQA: Visual Question Answering:https://arxiv.org/abs/1505.00468
[8]Answer-Type Prediction for Visual Question Answering:http://www.chriskanan.com/wp-content/uploads/Kafle2016.pdf
[9]ResNet:https://arxiv.org/abs/1512.03385
[10]A Multi-World Approach to Question Answering about Real-World Scenes based on Uncertain Input:https://arxiv.org/abs/1410.0210
[11]WUP measurehttps://dl.acm.org/citation.cfm?id=981751
[12]VQA Consortium:http://www.visualqa.org/
[13]CloudCV:http://vqa.cloudcv.org/
彩蛋
這裡附上Amusi在github上找到的關於VOA資料匯總的資源
JamesChuanggg/awesome-vqa-------我是可愛的分割線-------
翻譯不周,還請見諒。
如果喜歡Amusi分享的知識,歡迎關注「計算機視覺論文速遞」專欄
推薦閱讀:
※【機器學習】coco2017presentation學習筆記
※【小林的OpenCV基礎課 番外】卷積與濾波
※GAN階段性小結(損失函數、收斂性分析、訓練技巧、應用「高解析度、domain2domain」、研究方向)
※2017年歷史文章匯總|深度學習
※【技術綜述】從alexnet到resnet,初探深度學習演算法玩攝影
TAG:深度學習DeepLearning | 計算機視覺 | 自然語言處理 |