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