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