如何應對視覺深度學習存在的問題

雷鋒網 AI 科技評論按:我們經常見到介紹計算機視覺領域的深度學習新進展的文章,不過針對深度學習本身的研究經常告訴我們:深度學習並不是那個最終的解決方案,它有許多問題等待我們克服。

曾經在 UCLA 任教,如今來到約翰霍普金斯大學的認知科學與計算機科學教授 Alan L. Yuille 撰寫了一篇學術報告(arxiv.org/abs/1805.04025)分析總結了他眼中深度學習在計算機視覺領域的優勢和不足,也介紹了自己認為有潛力的解決辦法。經過近期的一次修訂之後,他也在 thegradient.pub 上發表了這篇論文的通俗介紹文章《The Limitations of Deep Learning for Vision and How We Might Fix Them》(視覺深度學習有哪些限制,我們要如何克服它們)。雷鋒網 AI 科技評論全文翻譯如下。

風水輪流轉的深度學習

如今的深度學習熱潮已經是第三次來臨了。上世紀 50 年代和 80 年代的兩次 AI 熱潮雖然也產生了不小的熱度,但很快就歸於冷清,因為那時的神經網絡既無法帶來多少性能提升,也沒能幫助我們增加對生物視覺系統的理解。2010 年之後愈演愈烈的這次新浪潮就不一樣了,如今的神經網絡在各種各樣的 bechmark 中都取得了前所未有的成績,也在真實世界中得到了不少應用。其實我們現在在深度學習中用到的許多基礎思路在第二次浪潮中就已經出現了,不過,也只有到了第三波浪潮中出現了大規模數據集、高性能計算設備(GPU)之後,它們的威力才得以發揮出來。

神經網絡的起起落落也反應了人類對智慧的研究、以及熱門的學習算法的不斷變化。在第二次浪潮中,我們見證了傳統 AI 如何誇下海口、又如何交不出及格的答卷。1980 年代的第二次寒冬就這樣來了。這次寒冬中我們也見證了 SVM、核方法等機器學習方法的興起。如今我們會稱讚那些在寒冬中不顧反對之聲一直堅持研究神經網絡、深度學習的研究人員們,但走向另一個極端的是,當年很難發表一篇關於神經網絡的論文,如何則很難發表一篇不是關於神經網絡的論文。這並不是什麼好的發展方式。如果研究者們能夠積極探索各種不同的方法和技術,而不是一窩蜂地湧入深度學習的話,也許整個 AI 領域可以進步得更快一些。而且還有一件事令人擔心,如今的 AI 課程有不少已經完全省略了舊時代的 AI 技術,僅僅關注當前趨勢的走向。

深度學習的成功與失敗

直到 2011 年 AlexNet 在 ImageNet 上帶來跨越式的表現提升之前,計算機視覺研究領域都對深度學習抱着懷疑的態度。這之後,深度學習越來越成為圖像分類、物體檢測等許多任務中的標準工具,研究人員們提出的各種網絡架構和建模、訓練技巧也讓深度學習的表現越來越好。

相比於圖像分類,物體檢測任務針對的圖像通常含有一個或更多的物體,背景也更大。用於解決目標識別任務的神經網絡通常會分為兩個階段工作,第一個階段會為物體位置和大小選出一些候選邊界框,然後在第二階段中挑選出正確地包含了物體的邊界框並進行分類。在 ImageNet 出現之前,這項任務上表現最佳的方法是 PASCAL 物體檢測競賽中的 Deformable Part Models,它也是那時候主流的物體檢測和圖像分類算法。在各種其他計算機視覺任務中,不同架構的深度學習模型也分別帶來了大規模的表現提升。

深度學習方法已經引入各種視覺任務當中

但是,即便深度學習相比於以往的方法有很大優勢,它也並不是一種通用的解決方案。在這裡,我們重點分析它面對的三方面的限制。

首先,深度學習絕大多數時候都需要大量標註數據。這種方法本身的偏向性也就使得研究人員們更多研究的是那些「有充足數據的、獲取標註很容易的任務」,而不是「真正重要的任務」

目前我們也確實有一些方法可以降低對監督的需求,比如遷移學習、小樣本學習、無監督學習、弱監督學習等等。但目前為止,這些方法的表現並不如監督學習那樣令人滿意。

其次,深度學習在研究人員們構建的評價數據集上表現良好,但對於數據集之外的真實世界圖像可能會表現得非常糟糕。所有的數據集都有偏向,早期的視覺數據中的偏向尤其明顯,研究人員們也很快就學會了如何利用這些偏向(比如在 Caltech101 數據集中檢測「魚」就很簡單,因為只有這一類物體的背景是水,這種情境偏向就可以被利用起來)。隨着數據集變得更大、深度神經網絡的表現越來越好,這些問題如今稍有緩解,但仍然不容樂觀。比如下圖中,在 ImageNet 上訓練一個能夠檢測沙發的模型,如果展示給它的圖像的視角是 ImageNet 中很少出現的,那麼它就不一定能檢測出圖中的沙發。更具體地說,深度神經網絡的偏向是對於數據集中很少出現的情況會表現很糟糕。然而在真實世界應用中,這種偏向尤其可能帶來很多問題,在某些情況下如果視覺系統出現失效可能會帶來嚴重的後果。舉個例子,用來訓練自動駕駛汽車的數據集從來就不會包含路面上坐着一個嬰兒的狀況。

在 UnrealCV 環境中,研究人員們變化攝像機的角度,讓 Faster-RCNN 模型識別不同角度的室內環境照片。隨着視角變化,檢測到沙發的 AP 在 1.0 到 0.1 之間劇烈變化

第三,深度學習對於圖像中的變化過於敏感,人類則難以被欺騙得多。我們不僅已經知道標準的對抗性攻擊可以對圖像做出人類無法感知的微小改變,但可以讓深度神經網絡的識別結果發生徹底的變化,同時神經網絡還對背景環境的變化過於敏感。下圖中,研究人眼們把不同的物體拼貼到一張森林中的猴子的照片上。這會讓深度神經網絡把猴子誤識別為人,同時也把吉他誤識別為鳥,我們猜測這大概是因為「拿着吉他的更有可能是人類而不是猴子」以及「樹林中的猴子周圍更有可能出現一隻鳥而不是吉他」。深度神經網絡記憶相關性的能力在此時反倒成了累贅。近期有許多研究都挖掘了深度神經網絡對於背景環境變化過於敏感的問題。

在照片中增加不同的物體,會影響照片中原有的猴子的識別結果

這種敏感問題也可以歸因到數據集的大小上。對於每種物體,它在數據集中出現的時候對應的背景也就只有很少的幾種,所以神經網絡會對它們有所偏向。比如人們發現,早期的圖像轉文字數據集中長頸鹿總是和樹一起出現,用這樣的數據集訓練出的模型就無法識別單獨出現的長頸鹿,即便它在圖像中佔據主體位置也不行。

但是我們畢竟沒有能力把各種各樣的背景環境收集齊全,對模型表現有影響的因素除了這個也還有很多別的,所以深度神經網絡這樣的數據驅動的方法就面臨了不小的問題。想全面改善模型在這些方面的表現需要大得驚人的數據集,這又為構建訓練和測試數據集帶來了很多挑戰。下文我們還會聊到這個問題。

當數據集不夠大的時候

組合爆炸

雖然上面提到的幾個問題都還不至於否定了深度學習的成功,但我們認為這些都是存在問題的早期警示信號。具體來說,真實世界的圖像是無數多種物體在無數多種背景環境中的組合,所以不管多大的數據集都無法完全代表真實世界的複雜性。

相比於人類天然地就對視覺環境的變化有高度的適應性,深度神經網絡要敏感脆弱得多、對錯誤的容忍度要低得多,就像上面猴子的那張圖表明的。值得說明的是,不同物體和不同環境的各種組合在有一些視覺任務中並不會出現,比如醫療圖像應用,背景環境的變化要小得多(比如胰腺總是在十二指腸的附近),這時深度神經網絡就可以發揮出十分優異的表現。但是對於許多真實世界應用來說,沒有隨着變量數據而指數級增加的數據集,就沒辦法捕捉到真實世界的複雜性。

這種狀況會帶來很大的挑戰,因為「在有限數量的隨機樣本上進行訓練和測試」的標準範式會變得不夠實用,因為樣本數量永遠不夠大、永遠無法完全代表數據的內在分佈狀況。

這迫使我們思考這兩個問題:

  1. 我們如何在樣本數量有限的數據集上訓練算法,以便讓它們在(假想)能夠完全捕捉真實世界複雜度的無限大數據集上也能發揮出好的表現;

  2. 如果我們手中只有有限的數據集,我們要如何高效地測試這些算法才能確保它們在無限大數據集上也有好的表現

克服組合問題

目前形式的數據驅動方法,比如深度神經網絡,可能永遠也無法完善解決組合爆炸的問題。下面我們列出一些別的有潛力的解決方案。

複合性(Compositionality)

複合性是一條通用原則,我們可以把它描述為「一種相信世界是可知的信念,我們可以把事物分解、理解它們,然後在意念中自由地重新組合它們」。這其中的關鍵假設是,事物都是按照某一套法則從基礎的子結構複合成更大的結構的。這意味着,我們可以從有限的數據中學習到子結構和組合法則,然後把它們泛化到複合性的情境中。

和深度神經網絡不同,複合性模型需要結構化的表徵,其中要顯式地表示出對象的結構和子結構。複合性模型也就擁有了外推到未曾見過的數據,對系統做推理、干涉和診斷,以及對於同樣的知識結構回答不同問題的能力。值得指出的是,雖然深度神經網絡也能捕捉到某種複合性(比如高級別的特徵可以來自地級別特徵的相應的複合),但這與這裡討論的複合性不是一回事。

以驗證碼為例,三個例子從左到右的變化和遮擋逐步增大。(c) 已經達到 CAPTCHA 驗證碼的難度,深度學習對這樣的驗證碼的表現就要差得多,而複合性模型仍然有不錯的表現

複合性模型這個概念的優點已經在一些任務上得到了初步驗證,比如用同一個模型執行多種任務,以及識別 CAPTCHA 驗證碼;深度神經網絡就無法維持高水平的表現。還有一些非平凡的視覺任務也表現出了相同的趨勢,比如用深度神經網絡做 IQ 測試就不怎麼成功。這項測試的具體內容是,9 張圖像組成一個 3x3 的網格,但只給出其中的 8 張,要推測最後一張的內容;圖像之間的變化規律是複合性的,而且會有干擾。對於神經模塊網絡之類的自然語言模型,由於它們具有動態的網絡結構,可以捕捉到一些有意義的組合,就可以在這樣的任務中擊敗傳統的神經網絡。實際上,我們最近也實驗驗證了其中的不同模塊確實能夠在聯合訓練后各自發揮原本設計的複合功能(比如執行與、或、過濾操作等等)。

複合性模型也還有許多理想的理論屬性,比如可解釋,還可以用來生成樣本。這可以讓我們更方便地診斷錯誤,也就比深度神經網絡這樣的黑盒模型更難以被欺騙。但是複合性模型也很難學習,因為它需要同時學習基礎結構和複合方法(但複合方法的本質是什麼都還有待討論)。而且,為了能夠以生成的方式進行分析,複合性模型還需要搭配物體和場景的生成式模型。按分類生成圖像到現在都還是一個有難度的課題。

更基礎地,處理組合爆炸的問題還需要學習到三維世界事物的常識模型,以及學會這些模型和圖像的對應關係。對人類嬰兒的研究表明他們的學習方式是構建能夠預測他們所在的環境(包括其中的簡單幾何體)的常識模型。這種常識理解的方式讓他們能夠從有限的數據中學習,並真正地泛化到全新的環境中。這就好比是牛頓的萬有引力定律,從一些基本的數字就可以猜測出引力公式的基本形式,並推廣到太陽系內行星的運動規律,不過計算公式中的常數和精確的運動周期還需要大量的數據。

在組合性的數據上測試

測試視覺算法的一個潛在的挑戰是我們只能在有限的數據上測試,即便我們測試的算法是為了解決真實世界中巨大的組合複雜度而設計的。博弈論中對這種問題的思考方式是關注於那些最糟糕的情況解決得如何,而不那麼關注平均難度的狀況解決得如何。正如我們前面談到的,有限數據集中的平均難度的結果意義並不高,尤其是當數據集無法完全捕捉到問題的組合複雜性的時候。更為關注最糟糕的情況當然是有一定理由的,比如目標是設計自動駕駛汽車的視覺系統,或者在醫療圖像中診斷癌症,失誤都是更容易在複雜的情況下出現,出現以後也更可能帶來嚴重的後果。

如果失效模式可以在低維空間中捕捉到,比如可以縮小到只有兩三個因素的影響,我們就可以通過計算機圖形學和網格搜索的方法進行研究。但是對於多數視覺任務,尤其是涉及組合性數據的任務,我們就很難分辨出來一小組影響因素並獨立地研究它們。一種策略是在標準的對抗性訓練的基礎上進行拓展,讓它也可以作用於非局部的結構,方法是允許模型對圖像的主要結構、場景做複雜的操作(比如遮擋、改變圖像中對象的物理屬性),但同時不顯著改變人類的觀感。把這種方法拓展到視覺算法用來解決組合複雜度的問題仍然有不小挑戰。不過,如果我們設計算法的時候心裡就注意着複合性的事情,它們的顯式結構也可以讓我們更方便地進行診斷並判斷它們是如何失效的。

結論

2011 年,Aude Oliva 和 Alan Yuille 共同在 MIT 的計算機視覺前沿研討會上組織了一個美國國家科學基金會資助的 workshop,他們鼓勵完全開放地表達意見,尤其是那時候許多人對深度神經網絡的潛力還持有懷疑態度。Yann LeCun 大膽地預測所有人都很快就會開始使用深度學習;後來證明他是對的。深度神經網絡非常成功,它也幫助計算機視覺變成了一個熱門的領域,極大地增進了學術界和工業界之間的互動,讓計算機視覺技術進入了許多其他的學科,還引發了許多其他重要發展。

儘管已經獲得了這樣的成功,但是在達到通用人工智能和理解生物視覺系統的目標之前,深度學習的這條路上還有重大的挑戰等待解決。其他批評深度神經網絡的文章中也表達了和我們類似的擔憂。按理說,當現在的研究人員們在越來越逼近現實的環境中嘗試解決越來越複雜的問題的時候,最重大的挑戰就是如何開發出能夠應對組合爆炸問題的算法。雖然神經網絡很有可能還是那個解決方案的一部分,但我們認為我們還需要一些其他的補充方法,包括能夠捕捉數據中隱藏的結構的組合性原則和因果模型。更重要的是,面對組合爆炸的問題,我們需要仔細重新想想如何訓練以及評價視覺算法。

原報告全文可見 https://arxiv.org/abs/1805.04025

via thegradient.pub,雷鋒網 AI 科技評論編譯


想在手機閱讀更多電腦與科技資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems