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