摘要: 深度學習要終結了嗎?先前華盛頓大學教授 Pedro Domingos 分析 1.6 萬篇論文 後表示,深度學習的發展終點將近;而約翰霍普金斯大學教授,電腦視覺技術的奠基者 Alan Yuille 也表示,深度學習正面臨三大瓶頸。 深度學習需要靠大量數據學習,而這三大瓶頸,全都和數據有關。 Yuille 教授提出組合爆炸的概念,因為真實世界的數據比實驗室的數據集複雜多了,讓電腦視覺判斷錯誤;對此,Yuille 教授提出了兩個解決方式。
一片欣欣向榮背後,深度學習在電腦視覺領域的瓶頸已至。
提出這個觀點的,不是外人,正是電腦視覺領域奠基者之一,約翰霍普金斯大學教授 Alan Yuille,他還是霍金的弟子。
他說,現在做 AI 不提神經網絡,成果都很難發表了,這不是個好勢頭。
如果人們只追神經網絡的潮流,拋棄所有老方法;如果人們只會刷榜,不去想怎樣應對深度網絡的侷限性,這個領域可能很難有更好的發展。
面對深度學習的三大瓶頸, Yuille 教授給出兩條應對之道:靠組合模型培養泛化能力,用組合數據測試潛在的故障。
觀點發表之後,引發不少的共鳴。 Reddit 話題熱度快速超過 200 ,學界業界的 AI 科學家們也紛紛在 Twitter 上轉發。
Reddit 網友評論道,以 Yuille 教授的背景,他比別人更清楚在深度學習在電腦視覺領域現狀如何,為什麼出現瓶頸。
深度學習的 3 大瓶頸,都和數據有關
Yuille 指出,深度學習雖然優於其他技術,但它不是通用的,經過數年的發展,它的瓶頸已經凸顯出來,主要有三個:
1. 需要大量標註數據
深度學習能夠實現的前提是大量經過標註的數據,這使得電腦視覺領域的研究人員傾向於在數據資源豐富的領域搞研究,而不是去重要的領域搞研究。
雖然有一些方法可以減少對數據的依賴,比如遷移學習、少樣本學習、無監督學習和弱監督學習。但是到目前為止,它們的性能還沒法與監督學習相比。
2. 過度擬合基準數據
深度神經網絡在基準數據集上表現很好,但在數據集之外的真實世界圖像上,效果就差強人意了。比如下圖就是一個失敗案例。
一個用 ImageNet 訓練來識別沙發的深度神經網絡,如果沙發擺放角度特殊一點,就認不出來了。這是因為,有些角度在 ImageNet 數據集裡很少見。
在實際的應用中, 如果深度網絡有偏差,將會帶來非常嚴重的後果。
要知道,用來訓練自動駕駛系統的數據集中,基本上從來沒有坐在路中間的嬰兒。
3. 對圖像變化過度敏感
深度神經網絡對標準的對抗性攻擊很敏感,這些攻擊會對圖像造成人類難以察覺的變化,但可能會改變神經網絡對一個物體的認知。
而且,神經網絡對場景的變化也過於敏感。比如下面的這張圖,在猴子圖片上放了吉他等物體,神經網絡就將猴子識別成了人類,吉他識別成了鳥類。
背後的原因是,與猴子相比,人類更有可能攜帶吉他,與吉他相比,鳥類更容易出現在叢林中。
這種對場景的過度敏感,原因在於數據集的限制。
對於任何一個目標對象,數據集中只有有限數量的場景。在實際的應用中,神經網絡會明顯偏向這些場景。
對於像深度神經網絡這樣數據驅動的方法來說,很難捕捉到各種各樣的場景,以及各種各樣的干擾因素。
想讓深度神經網絡處理所有的問題,似乎需要一個無窮大的數據集,這就給訓練和測試數據集帶來了巨大的挑戰。
瓶頸背後的原因是「組合爆炸」
這三大問題,還殺不死深度學習,但它們都是需要警惕的信號。
Yuille 說,瓶頸背後的原因,就是一個叫做「組合爆炸」的概念:
就說視覺領域,真實世界的圖像,從組合學觀點來看太大量了。任何一個數據集,不管多大,都很難表達出現實的複雜程度。
那麼,組合學意義上的大,是個什麼概念?
大家想像一下,現在要搭建一個視覺場景:你有一本物體字典,要從字典裡選出各種各樣的物體,把它們放到不同的位置上。
說起來容易,但每個人選擇物體、擺放物體的方法都不一樣,搭出的場景數量是可以指數增長的。
就算只有一個物體,場景還是能指數增長。因為,它可以用千奇百怪的方式被遮擋;物體所在的背景也有無窮多種。
人類的話,能夠自然而然適應背景的變化;但深度神經網絡對變化就比較敏感了,也更容易出錯:
例如前面提到猴子、吉他的識別問題。
但也不是所有視覺任務都會發生組合爆炸(Combinatorial Explosion)。
比如,醫學影像就很適合用深度網絡來處理,因為背景少有變化:比如,胰腺通常都會靠近十二指腸。
但這樣的應用並不常見,複雜多變的情況在現實中更普遍。如果沒有指數意義上的大數據集,就很難模擬真實情況。
而在有限的數據集上訓練/測試出來的模型,會缺乏現實意義:因為數據集不夠大,代表不了真實的數據分佈。
那麼,就有兩個新問題需要重視:
1、怎樣在有限的數據集裡訓練,才能讓 AI 在複雜的真實世界裡也有很好的表現?
2、怎樣在有限的數據集裡,高效地給算法做測試,才能保證它們承受得了現實裡大量數據的考驗?
解決組合爆炸的 2 個方式
數據集是不會指數型長大的,所以要試試從別的地方突破。
可以訓練一個組合模型,培養泛化能力。也可以用組合數據來測試模型,找出容易發生的故障。
總之,組合是關鍵。
1. 訓練組合模型
組合性(Compositionality)是指,一個複雜的表達,它的意義可以通過各個組成部分的意義來決定。
這裡,一個重要的假設就是,一個結構是由許多更加基本的子結構,分層組成的;背後有一些語法規則。
這就表示, AI 可以從有限的數據裡,學會那些子結構和語法,再泛化到各種各樣的情景裡。
與深度網絡不同,組合模型(Compositional Models)需要結構化的表示方式,才能讓結構和子結構更明確。
組合模型的推斷能力,可以延伸到 AI 見過的數據之外:推理、干預、診斷,以及基於現有知識結構去回答不同的問題。
引用 Stuart German 的一句話:
The world is compositional or God exists.
世界是組合性的,不然,上帝就是存在的。
雖然,深度神經網絡也有些組合性:高級特徵是由低級特徵的響應組成的;但在本文所討論的意義上,深度神經網絡並不是組合性的。
組合模型的優點已經在許多視覺任務裡面體現了:比如 2017 年登上 Science 的、用來識別 CAPTCHA 驗證碼的模型。
還有一些理論上的優點,比如可解釋,以及可以生成樣本。這樣一來,研究人員就更加容易發現錯誤在哪,而不像深度神經網絡是個黑盒,誰也不知道裡面發生了什麼。
但要學習組合模型,並不容易。因為這裡需要學習所有的組成部分和語法;還有,如果要通過合成(Synthesis)來作分析,就需要有生成模型(Generative Models)來生成物體和場景結構。
就說圖像識別,除了人臉、字母等等少數幾種很有規律的圖案之外,其他物體還很難應付:
從根本上說,要解決組合爆炸的問題,就要學習 3D 世界的因果模型(Causal Models),以及這些模型是如何生成圖像的。
有關人類嬰兒的研究顯示,他們是通過搭建因果模型來學習的,而這些模型可以預測他們生活環境的結構。
對因果關係的理解,可以把從有限數據裡學到的知識,有效擴展到新場景裡去。
2. 在組合數據裡測試模型
訓練過後,該測試了。
前面說過,世界那麼複雜,而我們只能在有限的數據上測試演算法。
要處理組合數據(Combinatorial Data),博弈論是一種重要的方法:它專注於最壞情況(Worst Case),而不是平均情況(Average Case)。
就像前面討論過的那樣,如果數據集沒有覆蓋到問題的組合複雜性,用平均情況討論出的結果可能缺乏現實意義。
而關注最壞情況,在許多場景下都是有意義的:比如自動駕駛汽車的演算法,比如癌症診斷的演算法。因為在這些場景下,演算法故障可能帶來嚴重的後果。
如果,能在低維空間裡捕捉到故障模式(Failure Modes),比如立體視覺的危險因子(Hazard Factors),就能用圖形和網格搜索來研究這些故障。
但是對於大多數視覺任務,特別是那些涉及組合數據的任務,通常不會有能找出幾個危險因子、隔離出來單獨研究的簡單情況。
有種策略,是把標準對抗攻擊(Adversarial Attacks)的概念擴展到包含非局部結構(Non-Local Structure),支持讓圖像或場景發生變化的複雜運算,比如遮擋,比如改變物體表面的物理性質,但不要對人類的認知造成重大改變。
把這樣的方法應用到視覺算法上,還是很有挑戰性的。
不過,如果算法是用組合性(Compositional)的思路來寫,清晰的結構可能會給演算法故障檢測帶來很大的幫助。
Alan Yuille 的論文傳送門:
Deep Nets: What have they ever done for Vision?
(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 CV 元老、霍金弟子:三大瓶颈扼住深度学习咽喉,破局要靠这两招 〉 。首圖來源:Pixabay, CC Licensed)
轉貼自: TechOrange
留下你的回應
以訪客張貼回應