2020年4月22日 星期三

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

Machine Learning vs Deep Learning vs Artificial Intelligence | ML vs DL vs AI | Simplilearn

康橋科技 —— 白光攝影機專業

leiphone

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 大膽地預測,所有人都很快就會開始使用深度學習;後來證明他是對的。深度神經網路非常成功,它也幫助電腦視覺,變成了一個熱門的領域,極大地增進了學術界和工業界之間的互動,讓電腦視覺技術進入了許多其他的學科,還引發了許多其他重要發展。

儘管已經獲得了這樣的成功,但是在達到通用人工智慧,和理解生物視覺系統的目標之前,深度學習的這條路上,還有重大的挑戰等待解決。其他批評深度神經網路的文章中,也表達了和我們類似的擔憂。

按理說,當現在的研究人員們,在越來越逼近現實的環境中,嘗試解決越來越複雜的問題的時候,最重大的挑戰,就是如何開發出能,夠應對組合爆炸問題的算法。

雖然神經網路很有可能還是那個解決方案的一部分,但我們認為我們還需要一些其他的補充方法,包括能夠捕捉數據中,隱藏的結構的組合性原則,和因果模型。更重要的是,面對組合爆炸的問題,我們需要仔細重新想想,如何訓練以及評價視覺算法。673190218

按此回今日3S Market新聞首頁

沒有留言:

張貼留言