Geoffrey Hinton 以「深度學(xué)習(xí)之父」和「神經(jīng)網(wǎng)絡(luò)先驅(qū)」聞名于世,其對(duì)深度學(xué)習(xí)及神經(jīng)網(wǎng)絡(luò)的諸多核心算法和結(jié)構(gòu)(包括「深度學(xué)習(xí)」這個(gè)名稱本身,反向傳播算法,受限玻爾茲曼機(jī),深度置信網(wǎng)絡(luò),對(duì)比散度算法,ReLU 激活單元,Dropout 防止過(guò)擬合,以及深度學(xué)習(xí)早期在語(yǔ)音方面突破)做出了基礎(chǔ)性的貢獻(xiàn)。盡管已經(jīng)將大半輩子的時(shí)間投入到神經(jīng)網(wǎng)絡(luò)之上,這位老人卻絲毫沒(méi)有想退休的意思。
Hinton 近幾年以「卷積神經(jīng)網(wǎng)絡(luò)有什么問(wèn)題?」為主題做了多場(chǎng)報(bào)道 [1] [2],提出了他的 Capsule 計(jì)劃。Hinton 似乎毫不掩飾要推翻自己盼了 30 多年時(shí)間才建立起來(lái)的深度學(xué)習(xí)帝國(guó)的想法 [3]。他的這種精神也獲得了同行李飛飛(ImageNet 創(chuàng)始者)等人肯定 [4]。
Hinton 為什么突然想要推倒重來(lái)?這肯定不是出于巧合或者突然心血來(lái)潮,畢竟作為一個(gè)領(lǐng)域的先驅(qū),質(zhì)疑自己親手建立的理論,不是誰(shuí)都愿意做的事情。(試想一下,如果你到處做報(bào)告,說(shuō)自己的領(lǐng)域有各種各樣的問(wèn)題,就算不會(huì)影響到自己,也讓做這個(gè)領(lǐng)域的同行和靠這個(gè)領(lǐng)域吃飯的人不是很舒服)。
說(shuō)推倒重來(lái)有點(diǎn)過(guò)分,Hinton 并沒(méi)有否定一切,并且他的主要攻擊目標(biāo)是深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)方面的理論。但是從幾次演講來(lái)看,他的 Capsule 計(jì)劃確實(shí)和以前的方法出入比較大。Hinton 演講比較風(fēng)趣,但是也存在思維跳躍,難度跨度太大等問(wèn)題。這些問(wèn)題在他的關(guān)于 Capsule 的報(bào)告中還是比較突出的??梢哉f(shuō)僅僅看報(bào)告很難理解完全 Hinton 的想法。我這幾天結(jié)合各類資料,整理了一下 Hinton 的思路和動(dòng)機(jī),和大家分享一下。
Hinton 與神經(jīng)網(wǎng)絡(luò)
(以下用 NN 指代人工神經(jīng)網(wǎng)絡(luò),CNN 指代(深度)卷積神經(jīng)網(wǎng)絡(luò),DNN 指代深度神經(jīng)網(wǎng)絡(luò))
要深入理解 Hinton 的想法,就必須了解神經(jīng)網(wǎng)絡(luò)發(fā)展的歷史,這也幾乎是 Hinton 的學(xué)術(shù)史。
人工智能才起步的時(shí)候,科學(xué)家們很自然的會(huì)有模擬人腦的想法(被稱為連接主義),因?yàn)槿四X是我們唯一知道的擁有高級(jí)智能的實(shí)體。
NN 起源于對(duì)神經(jīng)系統(tǒng)的模擬,最早的形式是感知機(jī),學(xué)習(xí)方法是神經(jīng)學(xué)習(xí)理論中著名的 Hebb's rule。NN 最初提出就成為了人工智能火熱的研究方向。不過(guò) Hebb's rule 只能訓(xùn)練單層 NN,而單層 NN 甚至連簡(jiǎn)單的「異或」邏輯都不能學(xué)會(huì),而多層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練仍然看不到希望,這導(dǎo)致了 NN 的第一個(gè)冬天。
Hinton 意識(shí)到,人工神經(jīng)網(wǎng)絡(luò)不必非要按照生物的路子走。在上世紀(jì) 80 年代,Hinton 和 LeCun 奠定和推廣了可以用來(lái)訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的反向傳播算法 (back-propagation)。NN 再次迎來(lái)了春天。
反向傳播算法,說(shuō)白了就是一套快速求目標(biāo)函數(shù)梯度的算法。
對(duì)于最基本的梯度下降(Gradient Descent):
,反向傳播就是一種高效計(jì)算的方式。
不過(guò)在那時(shí),NN 就埋下了禍根。
首先是,反向傳播算法在生物學(xué)上很難成立,很難相信神經(jīng)系統(tǒng)能夠自動(dòng)形成與正向傳播對(duì)應(yīng)的反向傳播結(jié)構(gòu)(這需要精準(zhǔn)地求導(dǎo)數(shù),對(duì)矩陣轉(zhuǎn)置,利用鏈?zhǔn)椒▌t,并且解剖學(xué)上從來(lái)也沒(méi)有發(fā)現(xiàn)這樣的系統(tǒng)存在的證據(jù))。反向傳播算法更像是僅僅為了訓(xùn)練多層 NN 而發(fā)展的算法。失去了生物學(xué)支持的 NN 無(wú)疑少了很多底氣,一旦遇到問(wèn)題,人們完全有更多理由拋棄它(歷史上上也是如此)
其次是,反向傳播算法需要 SGD 等方式進(jìn)行優(yōu)化,這是個(gè)高度非凸的問(wèn)題,其數(shù)學(xué)性質(zhì)是堪憂的,而且依賴精細(xì)調(diào)參。相比之下,(當(dāng)時(shí)的)后起之秀 SVM 等等使用了凸優(yōu)化技術(shù),這些都是讓人們遠(yuǎn)離 NN 的拉力。當(dāng)那時(shí)候的人們認(rèn)為 DNN 的訓(xùn)練沒(méi)有希望(當(dāng)時(shí)反向傳播只能訓(xùn)練淺層網(wǎng)絡(luò))的時(shí)候,NN 再次走向低谷。
深度學(xué)習(xí)時(shí)代的敲門磚--RBM
第二次 NN 低谷期間,Hinton 沒(méi)有放棄,轉(zhuǎn)而點(diǎn)了另外一個(gè)科技樹:熱力學(xué)統(tǒng)計(jì)模型。
Hinton 由玻爾茲曼統(tǒng)計(jì)相關(guān)的知識(shí),結(jié)合馬爾科夫隨機(jī)場(chǎng)等圖學(xué)習(xí)理論,為神經(jīng)網(wǎng)絡(luò)找到了一個(gè)新的模型:玻爾茲曼機(jī) (BM)。Hinton 用能量函數(shù)來(lái)描述 NN 的一些特性,期望這樣可以帶來(lái)更多的統(tǒng)計(jì)學(xué)支持。
不久 Hinton 發(fā)現(xiàn),多層神經(jīng)網(wǎng)絡(luò)可以被描述為玻爾茲曼機(jī)的一種特例--受限玻爾茲曼機(jī) (RBM)。Hinton 在吳恩達(dá)近期對(duì)他的采訪中 (鏈接:https://www.youtube.com/watch?v=-eyhCTvrEtE),稱其為 「most beautiful work I did」。
當(dāng)年我第一次看到 RBM 的相關(guān)數(shù)學(xué)理論的時(shí)候,真的非常激動(dòng),覺(jué)得這樣的理論不 work 有點(diǎn)說(shuō)不過(guò)去。這里我給出相關(guān)的數(shù)學(xué)公式,以展示 NN 可以有完全不同于生物的詮釋方式。
在統(tǒng)計(jì)力學(xué)中,玻爾茲曼分布(或稱吉布斯分布)可以用來(lái)描述量子體系的量子態(tài)的分布,有著以下的形式:

其中 s 是某個(gè)量子態(tài), E(s) 為這個(gè)狀態(tài)的能量, P(s) 為這個(gè)狀態(tài)出現(xiàn)的概率。
k 是玻爾茲曼常量,是個(gè)常數(shù)。T 是系統(tǒng)溫度,在具體問(wèn)題中也是一個(gè)常數(shù)。于是我們不妨讓 kT=1,原來(lái)的表達(dá)式可以簡(jiǎn)化為:

也就是

這不就是 softmax 嗎?居然自然地在統(tǒng)計(jì)力學(xué)分布里面出現(xiàn)了(難怪之前 LeCun 讓大家學(xué)物理)。
為了再次簡(jiǎn)化,我們定義
,于是就有
,(因?yàn)檫@時(shí)候公式里面只有一個(gè)s,就沒(méi)有必要寫下標(biāo)了)
下面問(wèn)題來(lái)了, E 是什么? s 又應(yīng)該是什么?
Hinton 看了看神經(jīng)網(wǎng)絡(luò)的一層,其分為可見層(輸入層)和隱含層(中間層)。按照經(jīng)典網(wǎng)絡(luò)的定義,神經(jīng)元有激活和未激活兩個(gè)狀態(tài)。那么干脆讓 s 等于可見層 v 并上隱含層 h 神經(jīng)元的狀態(tài)吧(默認(rèn)都用向量的方式表示):

于是

?。≧BM示意圖,取自Wikipedia)
那么 E 又是什么呢?
非常巧合的是,量子物理學(xué)里面有個(gè)模型極其像神經(jīng)網(wǎng)絡(luò),以至于只要了解過(guò)幾乎都會(huì)驚嘆兩者的相似度。這個(gè)模型就是著名 易辛模型 (Ising model)。易辛模型(物理學(xué)界常見調(diào)侃:你 3 維 Ising 模型會(huì)解了嗎?)描述了晶格系統(tǒng)中的相變,解釋了鐵磁性問(wèn)題(你可能好奇過(guò),為啥這么多金屬,就鐵等少數(shù)金屬特別敏感,而且還能被磁化。這個(gè)模型給出了解釋)。
Hinton 把神經(jīng)元的偏置 (對(duì)于可見層記作 a,對(duì)于隱含層記作 b ) 作為 Ising model 的「外場(chǎng)」,NN 的權(quán)重 W 作為 Ising Model 的「內(nèi)部耦合系數(shù)」(兩個(gè)神經(jīng)元之間的權(quán)重越大,代表它們的耦合越強(qiáng),關(guān)聯(lián)越強(qiáng)),于是能量就可以寫作非常簡(jiǎn)單的形式:

這個(gè)形式讓人驚訝之處在于,在沒(méi)有浪費(fèi)任何一個(gè) NN 中的參量的情況下做到了最簡(jiǎn),并且非常合理的直覺(jué):神經(jīng)元的偏置只和神經(jīng)元本身通過(guò)乘法直接相關(guān),而兩個(gè)神經(jīng)元間的權(quán)重也只和對(duì)應(yīng)的兩個(gè)神經(jīng)元通過(guò)乘法直接相關(guān),而整體的貢獻(xiàn)用加法聯(lián)系起來(lái)。
我們可以將某個(gè)神經(jīng)元 hi 關(guān)聯(lián)的能量分離出來(lái),也就是

,其中 Wi 是和神經(jīng)元 hi 相連的權(quán)重,h' 是除去 hi 的向量。
為了方便,我們把和 hi 無(wú)關(guān)的部分記作

于是,

于是很容易得到

這不就是 sigmoid 函數(shù)嗎?也就是

這時(shí)候 sigmoid 函數(shù)就有了自然的解釋:玻爾茲曼分布下隱含層神經(jīng)元激活的條件概率的激活函數(shù)。
如果你是 Hinton,推導(dǎo)到這一步,肯定也會(huì)覺(jué)得是個(gè)喜出望外的結(jié)果吧。
而優(yōu)化的目標(biāo),就是極大似然估計(jì),也就是最大化

,這里其實(shí)也非常有趣,因?yàn)楹蜔崃W(xué)統(tǒng)計(jì)中的自由能非常相關(guān)。
定義自由能為
(「自由」可以理解為 h 擁有額外的自由度,其蘊(yùn)含的能量在體系中可以用來(lái)對(duì)外做功),則
于是有
即 v 是關(guān)于自由能的玻爾茲曼分布。也就是我們找的參數(shù)是使得出現(xiàn)的樣本的自由能(在參數(shù)約束的分布中)最低的一組參數(shù)。這樣參數(shù)選擇就和樣本分布通過(guò)最低能量聯(lián)系起來(lái)。
總之一切看上去都很有道理。Hinton 展現(xiàn)了 NN 和玻爾茲曼分布間驚人的聯(lián)系(其在論文中多次稱 surprisingly simple [7]),其背后的內(nèi)涵引人遐想。甚至有人在聽過(guò) Hinton 的講座之后,還發(fā)現(xiàn) RBM 的訓(xùn)練模式和量子重整化群的重整化步驟是同構(gòu)的 [6]。
不過(guò)問(wèn)題是,優(yōu)化整體網(wǎng)絡(luò)是困難的,其根源性被認(rèn)為在于配分函數(shù) Z。求得最低能量對(duì)應(yīng)的結(jié)構(gòu)一般意義上是個(gè) #P-Hard 的問(wèn)題,如果真的能夠有有效算法,那么很多熱力學(xué)系統(tǒng),包括 Ising 模型也就迎刃而解。
Hinton 使用貪心的方式來(lái)降低算法復(fù)雜度:逐層訓(xùn)練網(wǎng)絡(luò),而不是整體優(yōu)化。而為了訓(xùn)練每層 RBM,Hinton 發(fā)展了所謂的對(duì)比散度(contrastive divergence)算法。
CD 算法利用了 Gibbs sampling,但是算法收斂的非常慢(這已經(jīng)是貪心處理過(guò)的問(wèn)題了,可見原問(wèn)題多難)。Hinton 再次近似,固定采樣步數(shù) k,被稱為 CD_k 算法。Hinton 驚奇的發(fā)現(xiàn) k=1 的時(shí)候(顯然是極度粗糙的近似),算法的表現(xiàn)就已經(jīng)相當(dāng)良好了。
Hinton 發(fā)現(xiàn)用這個(gè)粗糙的算法預(yù)訓(xùn)練網(wǎng)絡(luò)(這個(gè)時(shí)候是無(wú)監(jiān)督學(xué)習(xí),也就是只需要數(shù)據(jù),不需要標(biāo)簽;在下面會(huì)提到)后,就可以通過(guò)調(diào)優(yōu)(加上標(biāo)簽,使用反向傳播繼續(xù)訓(xùn)練,或者干脆直接在后面接個(gè)新的分類器)高效且穩(wěn)定地訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)。
之后「深度學(xué)習(xí)」這個(gè)詞逐漸走上歷史的前臺(tái),雖然 1986 年就有這個(gè)概念了 [8]??梢哉f(shuō) RBM 是這一波人工智能浪潮的先行者。
這讓人想起另外一個(gè)相當(dāng)粗糙但是甚至更加成功的算法--SGD??梢哉f(shuō),利用梯度的算法 中很難有比 SGD 還簡(jiǎn)單的了,但是 SGD(加上動(dòng)量后)效果確實(shí)特別好。非常粗糙的算法為何卻對(duì) NN 的優(yōu)化這種非常復(fù)雜的問(wèn)題很有效,這仍然是一個(gè)非常有趣的開放問(wèn)題。
由于玻爾茲曼機(jī)本身的特性,其可以被用來(lái)解決「無(wú)監(jiān)督學(xué)習(xí)」(Unsupervised learning)相關(guān)的問(wèn)題。即使沒(méi)有標(biāo)簽,網(wǎng)絡(luò)也可以自己學(xué)會(huì)一些良好的表示,比如下面是從 MNIST 數(shù)據(jù)集中學(xué)到的表示:

當(dāng)我們將人類智能,和目前的人工智障對(duì)比時(shí),常常舉的例子就是「現(xiàn)在機(jī)器學(xué)習(xí)依賴大數(shù)據(jù),而人類的學(xué)習(xí)卻是相反的,依賴小數(shù)據(jù)」。這個(gè)說(shuō)法其實(shí)不盡準(zhǔn)確。人類擁有太多的感知器官,無(wú)時(shí)無(wú)刻不接收著巨量的數(shù)據(jù):就按人眼的分辨率而言,目前幾乎沒(méi)有什么實(shí)際的機(jī)器學(xué)習(xí)模型模型使用如此高清晰度的數(shù)據(jù)進(jìn)行訓(xùn)練的。我們觀察一個(gè)東西的時(shí)候,所有的知覺(jué)都潛移默化地給我們灌輸海量的數(shù)據(jù),供我們學(xué)習(xí),推理,判斷。我們所謂的「小數(shù)據(jù)」,實(shí)際上主要分為兩個(gè)部分:
少標(biāo)簽。我們遇到的「題目」很多,我們無(wú)時(shí)無(wú)刻不在接受信息;但是我們的「答案」很少,我們可能看過(guò)各種各樣的人,各種各樣的動(dòng)物,直到某一天才有人用 3 個(gè)字告訴我們,「這是貓」??赡芤簧?,別人給你指出這是貓的次數(shù),都是屈指可數(shù)的。但是,僅僅通過(guò)這一兩次提示(相當(dāng)于一兩個(gè)標(biāo)簽),你就能在一生中記得這些概念。甚至別人從不告訴這是貓,你也知道這應(yīng)該不是狗或者其他動(dòng)物。這種「沒(méi)有答案」的學(xué)習(xí)稱為「無(wú)監(jiān)督學(xué)習(xí)」(Yann LeCun 將其比作蛋糕胚,以示其基礎(chǔ)性的作用),目前機(jī)器學(xué)習(xí)在無(wú)監(jiān)督學(xué)習(xí)方面進(jìn)展很少。
邏輯推斷,因果分析。也可以說(shuō)是少證據(jù)。如果你看過(guò)探案相關(guān)的小說(shuō),那些偵探,能從非常細(xì)微的證據(jù)中,得出完整的邏輯鏈;現(xiàn)實(shí)中,愛因斯坦等物理學(xué)家能夠從非常少的幾點(diǎn)假設(shè)構(gòu)建出整套物理學(xué)框架。最早的人工智能研究很多集中在類似的方面(流派被稱為「符號(hào)主義」),但是事實(shí)證明這些研究大多數(shù)很難應(yīng)用到實(shí)際問(wèn)題中。現(xiàn)在 NN 為人所詬病的方面之一就是很難解決邏輯問(wèn)題,以及因果推斷相關(guān)的問(wèn)題(不過(guò)最近有些進(jìn)步,比如在視覺(jué)問(wèn)答 VQA 方面)

?。╕ann LeCun 的蛋糕,來(lái)自網(wǎng)絡(luò)上公開的 Yann LeCun PPT 的圖片)
無(wú)監(jiān)督學(xué)習(xí)和先驗(yàn)知識(shí)
這是為了幫助理解而在中間插入的一小節(jié)。這一小節(jié)強(qiáng)調(diào)先驗(yàn)知識(shí)對(duì)無(wú)監(jiān)督學(xué)習(xí)的重要性,這有助于理解后面為什么 Hinton 要強(qiáng)行把所謂「坐標(biāo)框架」體現(xiàn)在模型中,因?yàn)椤缸鴺?biāo)框架」就是一種先驗(yàn)知識(shí),而且是從認(rèn)知神經(jīng)科學(xué)中總結(jié)的先驗(yàn)知識(shí)。
無(wú)監(jiān)督學(xué)習(xí)是一種沒(méi)有答案的學(xué)習(xí)。很關(guān)鍵的一點(diǎn)是,沒(méi)有答案怎么學(xué)?
子曰:學(xué)而不思則罔,思而不學(xué)則殆。無(wú)監(jiān)督學(xué)習(xí)就像一個(gè)「思而不學(xué)」(這里的「學(xué)」是指學(xué)習(xí)書本(即較直接答案),不是指廣義的學(xué)習(xí))的學(xué)生。顯然這個(gè)學(xué)生如果沒(méi)有正確的思路和指導(dǎo)方向,自己一直憑空想下去,八成會(huì)變成一個(gè)瘋狂級(jí)的黑暗民科。
這個(gè)「思路和指導(dǎo)方向」就是我們的先驗(yàn)知識(shí)。先驗(yàn)知識(shí)并沒(méi)有限定思考的范圍,但是卻給出了一些「建議的方向」。這對(duì)有監(jiān)督和無(wú)監(jiān)督學(xué)習(xí)都很重要,但是可能對(duì)無(wú)監(jiān)督更加關(guān)鍵。
我們可以回顧一下為什么同為神經(jīng)網(wǎng)絡(luò),CNN 在圖像,甚至語(yǔ)音等領(lǐng)域全方面碾壓那種「簡(jiǎn)單」的密連接網(wǎng)絡(luò)(參數(shù)少,訓(xùn)練快,得分高,易遷移)?

(CNN示意圖,來(lái)自Wikipedia)
顯然CNN有一個(gè)很強(qiáng)的先驗(yàn)關(guān)系:局部性。它非常在意局部的關(guān)系,以及從局部到整體的過(guò)渡。

(AlphaGo 中使用 CNN 提取圍棋的特征,取自 DeepMind 關(guān)于 AlphaGo 的論文)
這在圍棋中也非常明顯,使用 CNN 的 AlphaGo 能夠「看清」局部的關(guān)系,同時(shí)能夠有很好的大局觀。
而換一個(gè)領(lǐng)域,Kaggle 比如上面表格數(shù)據(jù)的學(xué)習(xí),CNN 就差多了,這時(shí)候勝出往往是各種集成方法,比如 Gradient Boosting 和 Random Forest。因?yàn)檫@些數(shù)據(jù)很少有局部關(guān)聯(lián)。
無(wú)監(jiān)督領(lǐng)域比較成熟的算法大多是聚類算法,比如 k-Means 等等。
這些算法聚類顯著的特點(diǎn)是強(qiáng)調(diào)空間相關(guān)的先驗(yàn),認(rèn)為比較靠近的是一類。

?。▓D為兩個(gè)不同的聚類算法的效果,取自 Wikipedia k-Means 頁(yè)面)
然而即使如此,兩個(gè)聚類算法的不同的先驗(yàn)知識(shí)仍然導(dǎo)致不同的結(jié)果。上面圖中,k-Means 的先驗(yàn)更強(qiáng)調(diào) cluster 的大小均勻性(損失是聚類中心到類成員的距離平方),因此有大而平均的聚類簇;而高斯 EM 聚類則更強(qiáng)調(diào)密集性(損失是中心到成員的距離的指數(shù)),因此有大小不一但是密集的聚類簇。(大多數(shù)人更加偏向 EM 的結(jié)果,這大多是因?yàn)槲覀儗?duì)米老鼠的,或者對(duì)動(dòng)物頭部的先驗(yàn)知識(shí),希望能夠分出「耳朵」和「臉」)
人的先驗(yàn)知識(shí)是我們最關(guān)心的,這可能是 AI 的核心。近期有不少 RL(強(qiáng)化學(xué)習(xí))方面的論文試圖探究這一點(diǎn)。比如下面的這篇論文試圖建模關(guān)于「好奇心」的先驗(yàn)知識(shí),鼓勵(lì)模型自己探究特殊之處,還是有一些奇效的。

?。▓D片取自論文 Curiosity-driven Exploration by Self-supervised Prediction)
后面我們會(huì)看到 Hinton 通過(guò)認(rèn)知科學(xué)和圖形學(xué)總結(jié)出來(lái)的一些先驗(yàn)知識(shí),以及他如何將這些先驗(yàn)知識(shí)加入到模型中去。
反向傳播,它就是有效
不過(guò)不久,人們發(fā)現(xiàn),使用 ReLU 以及合適的初始化方法,用上 CNN,搭配上強(qiáng)勁的 GPU 之后,發(fā)現(xiàn)原來(lái)的深度神經(jīng)網(wǎng)絡(luò)可以照常訓(xùn)練,根本不用 RBM 預(yù)訓(xùn)練。RBM 雖然數(shù)學(xué)上很漂亮,但是受結(jié)構(gòu)限制嚴(yán)重,而且在 supervised learning 方面往往搞不過(guò)直接暴力反向傳播。前幾年吳恩達(dá)在 Google 讓神經(jīng)網(wǎng)絡(luò)自動(dòng)檢測(cè)視頻中的貓的時(shí)候,Google 內(nèi)部的深度學(xué)習(xí)框架幾乎就是用來(lái)支持 RBM 等的訓(xùn)練的。而現(xiàn)在 Google 開源的 TensorFlow 等主流框架中都沒(méi)有 RBM 的影子。很多從 TensorFlow 入手的新人估計(jì)也沒(méi)有聽過(guò) RBM。
好了,現(xiàn)在除了各種小修小改(殘差網(wǎng)絡(luò),Adam 優(yōu)化器,ReLU,Batchnorm,Dropout,GRU,和稍微創(chuàng)意點(diǎn)的 GAN),神經(jīng)網(wǎng)絡(luò)訓(xùn)練主流算法又回到了 30 年前(那個(gè)時(shí)候 CNN,LSTM 已經(jīng)有了)的反向傳播了。
目前來(lái)看,很多對(duì) NN 的貢獻(xiàn)(特別是核心的貢獻(xiàn)),都在于 NN 的梯度流上,比如
sigmoid 會(huì)飽和,造成梯度消失。于是有了 ReLU。
ReLU 負(fù)半軸是死區(qū),造成梯度變 0。于是有了 LeakyReLU,PReLU。
強(qiáng)調(diào)梯度和權(quán)值分布的穩(wěn)定性,由此有了 ELU,以及較新的 SELU。
太深了,梯度傳不下去,于是有了 highway。
干脆連 highway 的參數(shù)都不要,直接變殘差,于是有了 ResNet。
強(qiáng)行穩(wěn)定參數(shù)的均值和方差,于是有了 BatchNorm。
在梯度流中增加噪聲,于是有了 Dropout。
RNN 梯度不穩(wěn)定,于是加幾個(gè)通路和門控,于是有了 LSTM。
LSTM 簡(jiǎn)化一下,有了 GRU。
GAN 的 JS 散度有問(wèn)題,會(huì)導(dǎo)致梯度消失或無(wú)效,于是有了 WGAN。
WGAN 對(duì)梯度的 clip 有問(wèn)題,于是有了 WGAN-GP。
說(shuō)到底,相對(duì)于八、九十年代(已經(jīng)有了 CNN,LSTM,以及反向傳播算法),沒(méi)有特別本質(zhì)的改變。
但是為什么當(dāng)前這種方式實(shí)際效果很好?我想主要有:
全參數(shù)優(yōu)化,end-to-end。反向傳播(下面用 BP 代替)可以同時(shí)優(yōu)化所有的參數(shù),而不像一些逐層優(yōu)化的算法,下層的優(yōu)化不依賴上層,為了充分利用所有權(quán)值,所以最終還是要用 BP 來(lái) fine-tuning;也不像隨機(jī)森林等集成算法,有相對(duì)分立的參數(shù)。很多論文都顯示 end-to-end 的系統(tǒng)效果會(huì)更好。
形狀靈活。幾乎什么形狀的 NN 都可以用 BP 訓(xùn)練,可以搞 CNN,可以搞 LSTM,可以變成雙向的 Bi-LSTM,可以加 Attention,可以加殘差,可以做成 DCGAN 那種金字塔形的,或者搞出 Inception 那種復(fù)雜的結(jié)構(gòu)。如果某個(gè)結(jié)構(gòu)對(duì) NN 很有利,那么就可以隨便加進(jìn)去;將訓(xùn)練好的部分加入到另一個(gè) NN 中也是非常方便的事情。這樣隨著時(shí)間推進(jìn),NN 結(jié)構(gòu)會(huì)被人工優(yōu)化得越來(lái)越好。BP 的要求非常低:只要連續(xù),就可以像一根導(dǎo)線一樣傳遞梯度;即使不連續(xù),大部分也可以歸結(jié)為離散的強(qiáng)化學(xué)習(xí)問(wèn)題來(lái)提供 Loss。這也導(dǎo)致了大量 NN 框架的誕生,因?yàn)榭蚣苤谱髡咧?,這些框架可以用于所有需要計(jì)算圖的問(wèn)題(就像萬(wàn)能引擎),應(yīng)用非常廣泛,大部分問(wèn)題都可以在框架內(nèi)部解決,所以有必要制作。
計(jì)算高效。BP 要求的計(jì)算絕大多數(shù)都是張量操作,GPU 跑起來(lái)賊快,并且 NN 的計(jì)算圖的形式天生適合分布式計(jì)算;而且有大量的開源框架以及大公司的支持。
神經(jīng)解剖學(xué)與 Capsule 的由來(lái)
不過(guò) Hinton 看上去是不會(huì)對(duì)目前這種結(jié)果滿意的。他在 2011 年的時(shí)候,就第一次提出了 Capsule 結(jié)構(gòu) [9](我們會(huì)在后面解釋 Capsule 是什么)。不過(guò)那次 Hinton 打擂顯然沒(méi)有成功。
Hinton 最近抓住了 NN 中最成功的 CNN 批判了一番,又重新提出了 Capsule 結(jié)構(gòu)。可以明確的是,Hinton 受到了下面 3 個(gè)領(lǐng)域的啟示:
神經(jīng)解剖學(xué)
認(rèn)知神經(jīng)科學(xué)
計(jì)算機(jī)圖形學(xué)
其中前兩者明顯是和人腦相關(guān)的??赡懿簧僮x者都有疑問(wèn):NN 非要按照生物的路子走嗎?
回答是:看情況。
對(duì)于人腦中存在的結(jié)構(gòu)和現(xiàn)象,可以從不同的觀點(diǎn)看待:
這是生物基礎(chǔ)導(dǎo)致的妥協(xié),是進(jìn)化的累贅。由于細(xì)胞構(gòu)成的生物系統(tǒng)難以完成某些特定任務(wù),而以實(shí)質(zhì)上非常低效的方式勉強(qiáng)實(shí)現(xiàn)。這時(shí)候不模仿人腦是正確的。典型的例子是算術(shù)計(jì)算以及數(shù)據(jù)存儲(chǔ)。生物結(jié)構(gòu)很難進(jìn)化出精確的運(yùn)算元件,以及大容量的存儲(chǔ)元件,并且讓它們能以 GHz 量級(jí)的頻率持續(xù)工作。我們只能用高層的、抽象的方式進(jìn)行不保證精準(zhǔn)的運(yùn)算、記憶,這大大慢于當(dāng)代的計(jì)算機(jī),也沒(méi)有計(jì)算機(jī)準(zhǔn)確。比如知乎上這個(gè)問(wèn)題 比特幣挖礦一定要用計(jì)算機(jī)嗎?用紙筆來(lái)計(jì)算可行嗎?,有很多折疊的回答是「這孩子能用來(lái)做顯卡」。雖然這些回答有侵犯性,但是確實(shí)足以說(shuō)明這些方面生物結(jié)構(gòu)的顯著弱勢(shì)。
這是演化中的中性功能。進(jìn)化只要求「夠用」,而不是「最好」。有些人腦的結(jié)構(gòu)和功能也許可以被完全不同的實(shí)現(xiàn)方式替代。這里的一個(gè)例子是 AlphaGo 下圍棋。圍棋高手能夠把圍棋下的很好,但是普通人不能。下圍棋確乎關(guān)系到人的直覺(jué),但是這種直覺(jué)不是強(qiáng)制的,也不是先天的:不會(huì)下圍棋不意味著會(huì)在進(jìn)化中淘汰,人腦中也沒(méi)有專用的「圍棋模塊」。這個(gè)時(shí)候,我們可以設(shè)計(jì)一個(gè)和人腦機(jī)制差異很大的系統(tǒng),比如 AlphaGo,它可以下得比人還要好。
這是演化中的重大突破,這些功能造就了我們「人」的存在。比如人的各類感知系統(tǒng),人的因果分析系統(tǒng),學(xué)習(xí)系統(tǒng),規(guī)劃系統(tǒng),運(yùn)動(dòng)控制系統(tǒng)。這些是人工智能尚且欠缺的。
不過(guò)首要問(wèn)題是,我們?cè)趺粗滥硞€(gè)人腦的功能或者結(jié)構(gòu)屬于上面的第 3 點(diǎn)呢?按照上面的觀點(diǎn),顯然生物的某個(gè)結(jié)構(gòu)和功能本身的出現(xiàn)不能說(shuō)明它很有用。我們需要更多證據(jù)。
一個(gè)重要的統(tǒng)計(jì)學(xué)證據(jù)是普遍性。我們?yōu)槭裁磿?huì)有拿 NN 做 AI 的想法?因?yàn)?NN 本身正是生物進(jìn)化中的重大突破,凡是有 NN 的生物中,我們都發(fā)現(xiàn) NN 對(duì)其行為調(diào)控起了關(guān)鍵性作用,尤其是人類。這也是我們?nèi)缃裨敢庀嘈潘睦碛?,而不只是因?yàn)槿擞幸粋€(gè)大腦,所以我們就必須搞一個(gè)(就像我們不給 AI 做肝臟一樣)。
人的實(shí)際神經(jīng)系統(tǒng)是有分層的(比如視覺(jué)系統(tǒng)有 V1, V2 等等分層),但是層數(shù)不可能像現(xiàn)在的大型神經(jīng)網(wǎng)絡(luò)(特別是 ResNet 之后)一樣動(dòng)不動(dòng)就成百上千層(而且生物學(xué)上也不支持如此,神經(jīng)傳導(dǎo)速度很慢,不像用 GPU 計(jì)算神經(jīng)網(wǎng)絡(luò)一層可能在微秒量級(jí),生物系統(tǒng)傳導(dǎo)一次一般在 ms 量級(jí),這么多層數(shù)不可能支持我們現(xiàn)在這樣的反應(yīng)速度,并且同步也存在問(wèn)題)。

?。▽⑷四X視覺(jué)通路分層和 DNN 分層的類比。Image (c) Jonas Kubilias)
Hinton 注意到的一個(gè)有趣的事實(shí)是,目前大多數(shù)神經(jīng)解剖學(xué)研究都支持(大部分哺乳類,特別是靈長(zhǎng)類)大腦皮層中大量存在稱為 Cortical minicolumn 的柱狀結(jié)構(gòu)(皮層微柱),其內(nèi)部含有上百個(gè)神經(jīng)元,并存在內(nèi)部分層。這意味著人腦中的一層并不是類似現(xiàn)在 NN 的一層,而是有復(fù)雜的內(nèi)部結(jié)構(gòu)。

?。╩ini-column 圖片,引自 minicolumn hypothesis in neuroscience | Brain | Oxford Academic)
為什么大腦皮層中普遍存在 mini-column?這顯然是一個(gè)重要的統(tǒng)計(jì)學(xué)證據(jù),讓 Hinton 愿意相信 mini-column 肯定起了什么作用。于是 Hinton 也提出了一個(gè)對(duì)應(yīng)的結(jié)構(gòu),稱為 capsule(膠囊,和微柱對(duì)應(yīng))。這就是 capsule 的由來(lái)。
但是 capsule 做了什么?之前的 CNN 又有什么問(wèn)題?統(tǒng)計(jì)學(xué)證據(jù)不能給出這些的答案。Hinton 的這部分答案來(lái)自認(rèn)知神經(jīng)科學(xué)。
認(rèn)知神經(jīng)科學(xué)和「沒(méi)有免費(fèi)的午餐」
每一個(gè)機(jī)器學(xué)習(xí)的初學(xué)者都應(yīng)該了解關(guān)于機(jī)器學(xué)習(xí)的重要定律--「沒(méi)有免費(fèi)的午餐」[10]
這個(gè)可以通過(guò)科幻小說(shuō)《三體》里面的提到一個(gè)例子來(lái)理解:
「農(nóng)場(chǎng)主假說(shuō)」則有一層令人不安的恐怖色彩:一個(gè)農(nóng)場(chǎng)里有一群火雞,農(nóng)場(chǎng)主每天中午十一點(diǎn)來(lái)給它們喂食。火雞中的一名科學(xué)家觀察這個(gè)現(xiàn)象,一直觀察了近一年都沒(méi)有例外,于是它也發(fā)現(xiàn)了自己宇宙中的偉大定律:「每天上午十一點(diǎn),就有食物降臨。」它在感恩節(jié)早晨向火雞們公布了這個(gè)定律,但這天上午十一點(diǎn)食物沒(méi)有降臨,農(nóng)場(chǎng)主進(jìn)來(lái)把它們都捉去殺了。
在這個(gè)例子中,問(wèn)題是,火雞愚蠢嗎?
觀點(diǎn) 1:火雞很聰明。它能夠發(fā)現(xiàn)和總結(jié)規(guī)律。只不過(guò)它在農(nóng)場(chǎng)很不走運(yùn)。
觀點(diǎn) 2:火雞很愚蠢。無(wú)論如何,它沒(méi)有能夠讓自己逃脫死亡的命運(yùn)。而且正是它自己得到的「規(guī)律」將它們送上死亡之路。
觀點(diǎn) 2 就是「沒(méi)有免費(fèi)的午餐」。這是在「數(shù)學(xué)現(xiàn)實(shí)」中成立的,在「數(shù)學(xué)現(xiàn)實(shí)」中,一切可能性都存在,感恩節(jié)那天,火雞有可能被殺,也有可能被農(nóng)場(chǎng)主的孩子當(dāng)成寵物,也有可能農(nóng)場(chǎng)主決定把一部分雞再養(yǎng)一年然后殺掉。雞無(wú)論做出怎樣的猜想都可能落空??梢宰C明,無(wú)論我們學(xué)習(xí)到了什么東西,或者掌握到了什么規(guī)律,我們總是可以(在數(shù)學(xué)上)構(gòu)造一個(gè)反例(比如,讓太陽(yáng)從西邊升起,讓黃金變成泥土),與我們的判斷不一致。這不管對(duì)于機(jī)器,而是對(duì)于人,都是一樣的。也就是在「一般「的意義上,或者數(shù)學(xué)的意義上,沒(méi)有哪個(gè)生物,或者哪個(gè)算法,在預(yù)測(cè)能力上比瞎猜更好。
而看似矛盾的觀點(diǎn) 1,卻在物理現(xiàn)實(shí)中得以成立。可以說(shuō),物理定律是一部分不能用數(shù)學(xué)證明的真理。我們相信這些定律,一是因?yàn)槲覀兩星覜](méi)有發(fā)現(xiàn)違背的情況,二是某種直覺(jué)告訴我們它很可能是對(duì)的。為什么我們能總結(jié)出這些定律,這是一個(gè)讓人困惑的問(wèn)題,因?yàn)榭雌饋?lái)人并不是先天就能總結(jié)出各種定律。但是可以確定的是,我們本身就是定律約束下進(jìn)化的產(chǎn)物,雖然對(duì)物理定律的理解不是我們的本能,但是很多「準(zhǔn)定律」已然成為我們的本能,它們塑造了我們本能的思考問(wèn)題的方式,對(duì)對(duì)稱性的理解,等等等等。
現(xiàn)實(shí)中的情況介于觀點(diǎn) 1 和觀點(diǎn) 2 之間。很多東西既不是完全沒(méi)有規(guī)律,也不是一種物理定律,但是對(duì)我們的進(jìn)化和存活意義重大(也就是上面說(shuō)的「準(zhǔn)定律」),它們是一種非常強(qiáng)的「先驗(yàn)分布」,或者說(shuō),是我們的常識(shí),而且我們通常情況下意識(shí)不到這種常識(shí)。
既然不是物理定律,那么按照觀點(diǎn) 2,我們就能夠找到一些反例。這些反例對(duì)我們來(lái)說(shuō)是某種「錯(cuò)誤」,這種錯(cuò)誤正是非常非常強(qiáng)的證據(jù)。理由是,我們很少出錯(cuò)(指認(rèn)知和腦功能上的出錯(cuò))。人腦是個(gè)黑盒,在絕大多數(shù)時(shí)候都工作正常,我們從中獲得的信息量很小。但是一旦出錯(cuò),就能給予我們很大的信息量,因?yàn)槲覀兊靡杂袡C(jī)會(huì)觀察到一些奇特的現(xiàn)象,好似百年一遇的日全食一般。很多神經(jīng)科學(xué)上面的發(fā)現(xiàn)都建立在錯(cuò)誤之上(比如腦損傷導(dǎo)致了語(yǔ)言區(qū)的發(fā)現(xiàn),以及左右腦功能的確認(rèn)等等)。它揭示了一些我們的本能,或者我們習(xí)得的先驗(yàn)知識(shí)。
根據(jù)上文所述,這種先驗(yàn)知識(shí),對(duì)于機(jī)器學(xué)習(xí),尤其是無(wú)監(jiān)督學(xué)習(xí),是極度重要的。
而認(rèn)知神經(jīng)科學(xué)就可以通過(guò)一些實(shí)驗(yàn)揭示出這些錯(cuò)誤。下面給出一些例子:
第一個(gè)例子是下面的人臉:

這個(gè)人是什么樣的表情?倒過(guò)來(lái)再看看?
這個(gè)例子說(shuō)明了人對(duì)倒過(guò)來(lái)的人臉的表情的識(shí)別能力很差。長(zhǎng)期的進(jìn)化過(guò)程中,我們對(duì)正著的人臉造成了「過(guò)擬合」,「正著」的信息變得不是很重要。上面的圖出現(xiàn)錯(cuò)覺(jué)的原因是,雖然人臉是倒著的,我們卻用「正著」的思路觀察圖片中眼睛,而眼睛的線條走向給了我們表情信息:
?。ㄉ踔烈恍┖?jiǎn)單的線條,都會(huì)讓我們覺(jué)得是人臉,并且得出它的表情。其中眼睛和嘴的線條在我們表情識(shí)別中起了重要作用)

這啟示我們,人類識(shí)別臉,其實(shí)就是通過(guò)幾個(gè)關(guān)鍵的結(jié)構(gòu)(眼睛,眉毛,嘴,鼻子)完成的。當(dāng)今很多算法都模仿這一點(diǎn),標(biāo)注出人臉的關(guān)鍵結(jié)構(gòu),成功率很高。
另外人對(duì)臉的形狀過(guò)擬合,也讓我們看二次元中動(dòng)畫人物的臉時(shí)覺(jué)得很正常,實(shí)際上這和真實(shí)的臉差異很大,但是我們大腦不這么認(rèn)為,因?yàn)檫@種識(shí)別機(jī)制已經(jīng)成為了我們的本能。
第二個(gè)例子是這個(gè)錯(cuò)覺(jué)圖:

?。▓D片取自 Wikipedia)
很難想象,A 和 B 的顏色居然是一樣的。

造成這個(gè)錯(cuò)覺(jué)的原因是,對(duì)了對(duì)應(yīng)自然界中陰影對(duì)顏色識(shí)別的副作用,我們大腦擅自「減去」了陰影對(duì)顏色的影響。在進(jìn)化中,我們正如火雞一樣,覺(jué)得「每天上午十一點(diǎn),就有食物降臨」;同樣的,我們覺(jué)得「把陰影對(duì)顏色的干擾消除掉,就能識(shí)別得更好」,這成為了我們的「準(zhǔn)定律」。然而,上面的錯(cuò)覺(jué)圖中,要求我們比較 A 和 B 的顏色,就好似感恩節(jié)對(duì)火雞一樣,我們大腦仍然不聽話地擅自改變顏色,導(dǎo)致我們?cè)谶@個(gè)極其特殊的問(wèn)題上判斷失誤。只不過(guò)這個(gè)失誤不導(dǎo)致什么后果罷了,當(dāng)然如果外星人打算利用這個(gè)失誤作為我們的弱點(diǎn)來(lái)對(duì)付我們,那就是另外一種劇情。
下面這個(gè)圖片是更加極端的情況。中間的條帶其實(shí)沒(méi)有漸變。

第三個(gè)錯(cuò)覺(jué)是關(guān)于線條的:

人類會(huì)不由自主的覺(jué)得中間似乎有個(gè)白色三角形,因?yàn)槲覀兇竽X「騙」我們,讓我們覺(jué)得似乎有一些「看不見的邊」。
把效果變得更夸張一點(diǎn):

按照一定距離觀察這幅圖,會(huì)讓我們覺(jué)得產(chǎn)生了「纏繞」或者「扭曲」。實(shí)際上這些就是一個(gè)個(gè)同心圓。產(chǎn)生錯(cuò)覺(jué)的原因是,大腦給我們「腦補(bǔ)」了很多傾斜邊(這些方塊是傾斜的,并且采用了不同的顏色加強(qiáng)邊的效果),這些邊的形狀不同于它們的排列方向,因此會(huì)覺(jué)得「纏繞」。如果我們到了這樣的圖案居多的世界中,我們的現(xiàn)在視覺(jué)系統(tǒng)將難以正常工作。
我們生活中的絕大多數(shù)物體,都有著明確的邊界。這不是一個(gè)物理定律,但是就其普遍性而言,足夠成為一個(gè)「準(zhǔn)定律」。以至于人和動(dòng)物的大腦視覺(jué)皮層擁有專門識(shí)別邊的結(jié)構(gòu):

CNN 被認(rèn)為在生物學(xué)上收到支持的原因之一,在于能夠通過(guò)學(xué)習(xí)自動(dòng)得到邊緣等特征的 filter(非常像所謂的 Gabor filter):

CNN 成功之處在于能夠非常成功的抽取到圖像的特征。這在 Neural Style 項(xiàng)目的風(fēng)格遷移(原圖+風(fēng)格->帶風(fēng)格的原圖)中表現(xiàn)得非常好:

人類的這些錯(cuò)覺(jué)同時(shí)也暗示了人類和算法模型一樣受「沒(méi)有免費(fèi)午餐定理」的限制,人的認(rèn)知并沒(méi)有特別異于算法的地方,或許是可以被算法復(fù)現(xiàn)的。
Hinton 從認(rèn)知神經(jīng)科學(xué)中得到的反對(duì) CNN 的理由
說(shuō) Hinton 是一個(gè)認(rèn)知神經(jīng)科學(xué)家并沒(méi)有問(wèn)題。Hinton 做過(guò)不少認(rèn)知實(shí)驗(yàn),也在認(rèn)知科學(xué)領(lǐng)域發(fā)過(guò)不少論文。
Hinton 自己也承認(rèn),CNN 做的非常好。但是當(dāng) Hinton 做了一系列認(rèn)知神經(jīng)科學(xué)的試驗(yàn)后,HInton 覺(jué)得有些動(dòng)搖,直至他現(xiàn)在反對(duì) CNN。
第一個(gè)實(shí)驗(yàn)稱為四面體謎題(tetrahedron puzzle),也是 Hinton 認(rèn)為最有說(shuō)服力的實(shí)驗(yàn)。
如圖,有兩個(gè)全等的簡(jiǎn)單積木,要求你把它們拼成一個(gè)正四面體(不要看答案,先自己試試)。

這理應(yīng)是個(gè)非常非常簡(jiǎn)單的問(wèn)題,對(duì)于類似的問(wèn)題,人們平均能在 5 秒內(nèi)解決。但是 Hinton 驚訝的發(fā)現(xiàn),對(duì)于這個(gè)問(wèn)題人們平均解決的時(shí)間超乎意料的長(zhǎng),往往要幾十秒甚至幾分鐘。

(視頻中 Hinton 親自演示這個(gè)實(shí)驗(yàn)的樣子很有趣,取自 Youtube[2])
Hinton 此處狂黑 MIT,說(shuō) MIT 教授解決這個(gè)問(wèn)題的分鐘數(shù)和和他們?cè)?MIT 工作的年數(shù)基本一致,甚至有一個(gè) MIT 教授看來(lái)半天寫了一個(gè)證明了說(shuō)這是不可能的(然后底下 MIT 的學(xué)生聽了非常高興,他們很喜歡黑自己的教授)。
但是兩類人解決得非常快,一類是本來(lái)就對(duì)四面體的構(gòu)型非常了解的;另外就是不認(rèn)真對(duì)待隨便瞎試的(畢竟就幾種可能情況,枚舉起來(lái)很快)。但是如果希望通過(guò)觀察,通過(guò)視覺(jué)直覺(jué)解決問(wèn)題會(huì)非常困難。
這意味著我們出現(xiàn)了錯(cuò)覺(jué),而且是一種視覺(jué)錯(cuò)覺(jué)。
Hinton 通過(guò)人們嘗試的過(guò)程發(fā)現(xiàn),錯(cuò)覺(jué)是由于人們不自覺(jué)地會(huì)根據(jù)物體形狀建立一種「坐標(biāo)框架」(coordinate frame)。

人們會(huì)不自主地給兩個(gè)全等的幾何體使用相同的坐標(biāo)框架。這個(gè)坐標(biāo)框架會(huì)造成誤導(dǎo),導(dǎo)致人們總是先嘗試一些錯(cuò)誤的解。
如果給兩個(gè)幾何體不同的坐標(biāo)框架

幾乎就立即可以得到解

第二個(gè)實(shí)驗(yàn)關(guān)于手相性(handedness),手相性不一致的結(jié)構(gòu)不能通過(guò)平面旋轉(zhuǎn)重合。這個(gè)做有機(jī)化學(xué)的同學(xué)應(yīng)該最熟了(各種手性碳),比如被手向性控制的恐懼(來(lái)報(bào)一下巖沙??舅氐?IUPAC 命名?):

最簡(jiǎn)單的手相性就是分清左右,這個(gè)到現(xiàn)在很多人都會(huì)搞混。判斷手相性對(duì)人來(lái)說(shuō)是很困難的。Hinton 給的例子是「意識(shí)旋轉(zhuǎn)」(mental rotation),這個(gè)問(wèn)題是判斷某兩個(gè)圖形的手相性是否一致:

?。▓D片取自 Hinton 在 University of Toronto 的名為 Does the Brain do Inverse Graphics? 的講座的公開 PPT)
我們無(wú)法直接回答,而是要在意識(shí)中「旋轉(zhuǎn)」某個(gè) R,才能判斷手相性是否一致。并且角度差的越大,人判斷時(shí)間就越長(zhǎng)。
而「意識(shí)旋轉(zhuǎn)」同樣突出了「坐標(biāo)框架」的存在,我們難以判斷手相性,是因?yàn)樗鼈冇胁灰恢碌淖鴺?biāo)框架,我們需要通過(guò)旋轉(zhuǎn)把坐標(biāo)框架變得一致,才能從直覺(jué)上知道它們是否一致。
第三個(gè)實(shí)驗(yàn)是關(guān)于地圖的。我們需要讓一個(gè)對(duì)地理不是特別精通,但是有基礎(chǔ)知識(shí)的人,回答一個(gè)簡(jiǎn)單的問(wèn)題:
下面的圖案是什么洲?

相當(dāng)多的人(特別是憑直覺(jué)直接答的)回答,像澳洲。
這是因?yàn)閷?duì)于不規(guī)則圖案,我們想當(dāng)然地建立了這樣的坐標(biāo)框架:

但是如果你這樣建立:

就會(huì)立即發(fā)現(xiàn)這是非洲,而且和澳洲相差的挺大。
通過(guò)這幾個(gè)實(shí)驗(yàn),Hinton 得出了這樣的結(jié)論:
人的視覺(jué)系統(tǒng)會(huì)建立「坐標(biāo)框架」,并且坐標(biāo)框架的不同會(huì)極大地改變?nèi)说恼J(rèn)知。
但是在 CNN 上卻很難看到類似「坐標(biāo)框架」的東西。
Hinton 提出了一個(gè)猜想:
物體和觀察者之間的關(guān)系(比如物體的姿態(tài)),應(yīng)該由一整套激活的神經(jīng)元表示,而不是由單個(gè)神經(jīng)元,或者一組粗編碼(coarse-coded,這里意思是指類似一層中,并沒(méi)有經(jīng)過(guò)精細(xì)組織)的神經(jīng)元表示。這樣的表示比較適合實(shí)現(xiàn)類似「坐標(biāo)框架」的原理。
而這一整套神經(jīng)元,Hinton 認(rèn)為就是 Capsule。
同變性(Equivariance)和不變性(Invariance)
Hinton 反對(duì) CNN 的另外一個(gè)理由是,CNN 的目標(biāo)不正確。問(wèn)題主要集中在 Pooling 方面(我認(rèn)為可以推廣到下采樣,因?yàn)楝F(xiàn)在很多 CNN 用卷積下采樣代替 Pooling 層)。Hinton 認(rèn)為,過(guò)去人們對(duì) Pooling 的看法是能夠帶來(lái) invariance 的效果,也就是當(dāng)內(nèi)容發(fā)生很小的變化的時(shí)候(以及一些平移旋轉(zhuǎn)),CNN 仍然能夠穩(wěn)定識(shí)別對(duì)應(yīng)內(nèi)容。
但是這個(gè)目標(biāo)并不正確,因?yàn)樽罱K我們理想的目標(biāo)不是為了「識(shí)別率」,而是為了得到對(duì)內(nèi)容的良好的表示 (representation)。如果我們找到了對(duì)內(nèi)容的良好表示,那么就等于我們「理解」了內(nèi)容,因?yàn)檫@些內(nèi)容可以被用來(lái)識(shí)別,用來(lái)進(jìn)行語(yǔ)義分析,用來(lái)構(gòu)建抽象邏輯,等等等等。而現(xiàn)在的 CNN 卻一味地追求識(shí)別率,這不是 Hinton 想要的東西,Hinton 想要「something big」。
Hinton 的看法是,我們需要 Equivariance 而不是 Invariance。
所謂 Invariance,是指表示不隨變換變化,比如分類結(jié)果等等。

Invariance 主要是通過(guò) Pooling 等下采樣過(guò)程得到的。如果你對(duì)訓(xùn)練神經(jīng)網(wǎng)絡(luò)有經(jīng)驗(yàn),你可能會(huì)想到我們?cè)谧鰣D像預(yù)處理和數(shù)據(jù)拓增的時(shí)候,會(huì)把某些圖片旋轉(zhuǎn)一些角度,作為新的樣本,給神經(jīng)網(wǎng)絡(luò)識(shí)別。這樣 CNN 能夠做到對(duì)旋轉(zhuǎn)的 invariance,并且是「直覺(jué)上」的 invariance,根本不需要像人那樣去旋轉(zhuǎn)圖片,它直接就「忽視」了旋轉(zhuǎn),因?yàn)槲覀兿M鼘?duì)旋轉(zhuǎn) invariance。
CNN 同樣強(qiáng)調(diào)對(duì)空間的 invariance,也就是對(duì)物體的平移之類的不敏感(物體不同的位置不影響它的識(shí)別)。這當(dāng)然極大地提高了識(shí)別正確率,但是對(duì)于移動(dòng)的數(shù)據(jù)(比如視頻),或者我們需要檢測(cè)物體具體的位置的時(shí)候,CNN 本身很難做,需要一些滑動(dòng)窗口,或者 R-CNN 之類的方法,這些方法很反常(幾乎肯定在生物學(xué)中不存在對(duì)應(yīng)結(jié)構(gòu)),而且極難解釋為什么大腦在識(shí)別靜態(tài)圖像和觀察運(yùn)動(dòng)場(chǎng)景等差異很大的視覺(jué)功能時(shí),幾乎使用同一套視覺(jué)系統(tǒng)。
對(duì)平移和旋轉(zhuǎn)的 invariance,其實(shí)是丟棄了「坐標(biāo)框架」,Hinton 認(rèn)為這是 CNN 不能反映「坐標(biāo)框架」的重要原因。
而 equivariance 不會(huì)丟失這些信息,它只是對(duì)內(nèi)容的一種變換:

Hinton 認(rèn)為 CNN 前面非 Pooling 的部分做的很好,因?yàn)樗鼈兪?equivariance 的。
那么在 Capsule 的框架下,又應(yīng)該如何體現(xiàn) equivariance 呢?
Hinton 認(rèn)為存在兩種 equivariance:
位置編碼(place-coded):視覺(jué)中的內(nèi)容的位置發(fā)生了較大變化,則會(huì)由不同的 Capsule 表示其內(nèi)容。
速率編碼(rate-coded):視覺(jué)中的內(nèi)容為位置發(fā)生了較小的變化,則會(huì)由相同的 Capsule 表示其內(nèi)容,但是內(nèi)容有所改變。
并且,兩者的聯(lián)系是,高層的 capsule 有更廣的域 (domain),所以低層的 place-coded 信息到高層會(huì)變成 rate-coded。
這里 Hinton 雖然沒(méi)有指明,但是我感覺(jué)到 Hinton 是希望能夠統(tǒng)一靜態(tài)視覺(jué)和動(dòng)態(tài)視覺(jué)的(通過(guò)兩種編碼方式,同時(shí)感知運(yùn)動(dòng)和內(nèi)容)。人腦中對(duì)于靜態(tài)和動(dòng)態(tài)內(nèi)容的處理通路并沒(méi)有特別大的變化,但是現(xiàn)在做視頻理解的框架和做圖片理解的差異還是不小的。
但是,畢竟 invariance 是存在的,比如我們對(duì)物體的識(shí)別確實(shí)不和物體的位置有關(guān)。這里 Hinton 解釋了一下:
knowledge,but not activities have to be invariant of viewpoint
也就是 Hinton 談?wù)摰膯?wèn)題是關(guān)于 activation 的,之前人們所說(shuō)的 CNN 的 invariance 是關(guān)于神經(jīng)元 activation 的。Hinton 希望 invariance 僅僅是對(duì)于 knowledge 的(對(duì)于 Capsule 而言,是其輸出的概率部分)。通過(guò)這可以看到 Hinton 使用 Capsule 的一個(gè)原因是覺(jué)得 Capsule 相比單個(gè)神經(jīng)元更適合用來(lái)做表示。
Capsule 與 coincidence filtering(巧合篩分)
那么高層的 Capsule 怎么從底層的 Capsule 獲取信息呢?
首先 Capsule 的輸出是什么?
Hinton 假設(shè) Capsule 輸出的是 instantiation parameters(實(shí)例參數(shù)),這是一個(gè)高維向量:
其模長(zhǎng)代表某個(gè)實(shí)體(某個(gè)物體,或者其一部分)出現(xiàn)的概率
其方向/位置代表實(shí)體的一般姿態(tài) (generalized pose),包括位置,方向,尺寸,速度,顏色等等
Capsule 的核心觀念是,用一組神經(jīng)元而不是一個(gè)來(lái)代表一個(gè)實(shí)體,且僅代表一個(gè)實(shí)體。
然后通過(guò)對(duì)底層的 Capsule 做 coincidence filtering(巧合篩分)決定激活哪些高層的 Capsule。coincidence filtering 是一種通過(guò)對(duì)高維度向量進(jìn)行聚類來(lái)判斷置信的方式,Hinton 舉了一個(gè)例子:
比如你在街上聽到有人談?wù)?11 號(hào)的紐約時(shí)報(bào),你一開始可能并不在意;但是如果你沿路聽到 4 個(gè)或者 5 個(gè)不同的人在談?wù)?11 號(hào)的紐約時(shí)報(bào),你可能就立即意識(shí)到一定有什么不平常的事情發(fā)生了。
我們的(非日常)語(yǔ)句就像高維空間中向量,一組相近語(yǔ)句的出現(xiàn),自然條件下概率很小,我們會(huì)很本能地篩分出這種巧合。
coincidence filtering 能夠規(guī)避一些噪聲,使得結(jié)果比較 robust。
這讓我想起了現(xiàn)在 CNN 容易被對(duì)抗樣本欺騙的問(wèn)題。雖然幾乎所有的機(jī)器學(xué)習(xí)模型都存在對(duì)抗樣本的問(wèn)題,但是 CNN 可以被一些對(duì)人而言沒(méi)有區(qū)別的對(duì)抗樣本欺騙,這是嚴(yán)峻的問(wèn)題(這也是 CNN 異于我們視覺(jué)系統(tǒng)的一點(diǎn))。一部分原因在于 NN 的線性結(jié)構(gòu),其對(duì)噪聲的耐受不是很好。不知道 coincidence filtering 能否緩解這個(gè)問(wèn)題。
用圖來(lái)表示就像這樣:

Hinton 采用的聚類(他稱為 Agree)方式是使用以下評(píng)估:

其中 mixture 是 gaussian mixture,可以通過(guò) EM 算法得到。也就是,如果簇的形狀越接近高斯分布(也就是越集中),得分越高;反之越分散越接近均勻分布,得分越低:

(圖片取自 Youtube [2])
得到高分的簇的分類所對(duì)應(yīng)的上層 capsule 會(huì)接受下層 capsule 提供的 generalized pose,相當(dāng)于做了 routing。這是因?yàn)橄聦拥倪@些輸出,「選擇」了上層的 capsule,「找到最好的(處理)路徑等價(jià)于(正確)處理了圖像」,Hinton 這樣解釋。Hinton 稱這種機(jī)制為「routing by agreement」。
這種 routing 不是靜態(tài)的,而是動(dòng)態(tài)的(隨輸入決定的),這是 Pooling 等方式不具備的:

由于使用這種類似聚類的方式,其有潛在的 unsupervised learning 的能力,不過(guò) Hinton 還沒(méi)有透露具體的算法。但是 Hinton 在 [2] 中提到,對(duì)于 MNIST 數(shù)據(jù)集,經(jīng)過(guò) unsupervised learning 后,只需要 25 個(gè)例子,就可以達(dá)到 98.3% 的識(shí)別準(zhǔn)確率,并且解決了 CNN 識(shí)別重疊圖像困難等問(wèn)題。這些應(yīng)該在最近被 NIPS 接受的關(guān)于 Capsules 論文 Dynamic Routing between Capsules(尚未發(fā)表)https://research.google.com/pubs/pub46351.html 中可以看到。讓我們拭目以待。
圖形學(xué)和線性流形(linear manifold)
Hinton 這次明顯受到了計(jì)算機(jī)圖形學(xué)的啟發(fā)。他在報(bào)告 [2] 中說(shuō) literally,literally, reverse of graphics.(我非常非常認(rèn)真地想要「逆向」圖形學(xué))。
計(jì)算機(jī)圖形學(xué)中有個(gè)非常重要的性質(zhì),就是其使用了 linear manifold,有良好的視角不變性。
說(shuō)明白一點(diǎn),也就是用視角變換矩陣作用到場(chǎng)景中,不改變場(chǎng)景中物體的相對(duì)關(guān)系。
于是 Hinton 決定用矩陣處理兩個(gè)物體間的關(guān)聯(lián)。
按照上面的 routing by agreement 的算法,如果我們希望從 mouth 和 nose 得到 face,我們需要讓 mouth 的向量 Ti 和 nose 的向量 Th 基本一致。
它們本身肯定不會(huì)一致的,因?yàn)?mouth 和 nose 不是一樣的東西;要讓它們一致我們就需要找一類函數(shù),使得
。
但是選擇哪類函數(shù)呢?Hinton 的答案是多重線性函數(shù)(矩陣),因?yàn)檫@能夠使得它們的關(guān)系不受視角變換(設(shè)視角變換為矩陣 W)影響,這是因?yàn)?/p>


?。▓D片取自 Hinton 在 University of Toronto 的名為 Does the Brain do Inverse Graphics? 的講座的公開 PPT)
而且這對(duì)三維也是有效的,這里看到了 Hinton 沖擊三維視覺(jué)的野心。
Hinton 這波會(huì)成功嗎?
Hinton 是個(gè)很「固執(zhí)」的人,在吳恩達(dá)對(duì)他的采訪中,他說(shuō)出了自己的想法:
If your intuitions are good, you should follow them and you will eventually be successful; if your intuitions are not good, it doesn't matter what you do. You might as well trust your intuitions there's no point not trusting them.
?。ㄒ馑际侨绻庇X(jué)一直很好,那么當(dāng)然應(yīng)該堅(jiān)持;如果直覺(jué)很差,那么怎么做也沒(méi)有關(guān)系了(反正你也搞不出什么,即使你換個(gè)想法大抵也不會(huì)成功))。當(dāng)然后半句可能是 Hinton 的高級(jí)黑。
但是 Hinton 確乎堅(jiān)信自己的直覺(jué),從反向傳播提出,到深度學(xué)習(xí)的火爆,Hinton 已經(jīng)堅(jiān)守了 30 年了,并沒(méi)有任何放棄的意思。
現(xiàn)在 Capsule 給了 Hinton 很多直覺(jué),Hinton 估計(jì)也是會(huì)一條路走到黑。Hinton 的目標(biāo)也很大,從他對(duì) capsule 的介紹中可以看到有沖擊動(dòng)態(tài)視覺(jué)內(nèi)容、3D 視覺(jué)、無(wú)監(jiān)督學(xué)習(xí)、NN 魯棒性這幾個(gè)「老大難」問(wèn)題的意思。
如果 Hinton 會(huì)失?。ㄎ也皇遣豢春?Hinton,而是僅僅做一個(gè)假設(shè)),大抵是兩種情況,
第一種是因?yàn)楝F(xiàn)在反向傳播的各種優(yōu)點(diǎn),上面已經(jīng)總結(jié)過(guò)了。一個(gè)模型要成功,不僅要求效果良好,還要求靈活性(以便應(yīng)用在實(shí)際問(wèn)題中),高效性,和社區(qū)支持(工業(yè)界和學(xué)術(shù)界的采納程度和熱門程度)。現(xiàn)在的反向傳播在這幾點(diǎn)上都非常 promising,不容易給其他模型讓步。
第二種是因?yàn)榧词挂粋€(gè)直覺(jué)特別好的人,也有可能有直覺(jué)特別不好的一天,尤其是晚年。這點(diǎn)非常著名的例子是愛因斯坦。愛因斯坦性格和 Hinton 很像,有非常敏銳的直覺(jué),并且對(duì)自己的直覺(jué)的值守到了近乎固執(zhí)的程度。愛因斯坦晚年的時(shí)候,想要搞統(tǒng)一場(chǎng)論,這是一個(gè)很大的目標(biāo),就好像現(xiàn)在 Hinton 希望能夠創(chuàng)造顛覆 BP 機(jī)制的目標(biāo)一樣;愛因斯坦也獲得了很多直覺(jué),比如他覺(jué)得電磁場(chǎng)和引力是非常相似的,都和相對(duì)論緊密關(guān)聯(lián),都是平方反比,都是一種傳遞力的波色子,并且玻色子靜質(zhì)量都是 0,力的范圍都是無(wú)窮遠(yuǎn),等等等等,就好像現(xiàn)在 Hinton 找到的各種各樣很有說(shuō)服力的論據(jù)一樣;于是愛因斯坦決定首先統(tǒng)一電磁力和引力,結(jié)果是失敗的。反而是兩種看上去很不搭的力--弱相互作用力(3 種玻色子,范圍在原子核大小內(nèi))和電磁力首先被統(tǒng)一了(電弱統(tǒng)一理論)。而引力恰恰是目前最難統(tǒng)一的,也就是愛因斯坦的直覺(jué)走反了。我很擔(dān)心 Hinton 也會(huì)如此。
不過(guò)即使愛因斯坦沒(méi)有成功,后人也為其所激勵(lì),繼續(xù)扛起 GUT 的大旗推動(dòng)物理前沿;對(duì)于 Hinton 我想也是一樣。
尾注
Hinton 曾經(jīng)在 1987 年左右發(fā)明了 recirculation 算法代替 BP 來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò),雖然不算特別成功,但是卻預(yù)言了后來(lái)神經(jīng)科學(xué)才發(fā)現(xiàn)的 spike timing-independent plasticity。
Hinton 最初提出 capsule 的時(shí)候 (5 年前),幾乎「逢投必拒」,沒(méi)有人相信,但是 Hinton 自己一致堅(jiān)信這一點(diǎn),并且一直堅(jiān)持到現(xiàn)在。
在吳恩達(dá)對(duì)其采訪中,Hinton 對(duì)未來(lái)的趨勢(shì)(對(duì) CS 從業(yè)者)的一句很有意思的描述:showing computers is going to be as important as programming computers.
參考文獻(xiàn)
[1] 2017 年 8 月 17 日,于加拿大多倫多大學(xué) Fields Institute,Hinton 的報(bào)告 https://www.youtube.com/watch?v=Mqt8fs6ZbHk
[2] 2017 年 4 月 3 日發(fā)布 Brain & Cognitive Sciences 于 MIT,Hinton 的報(bào)告 https://www.youtube.com/watch?v=rTawFwUvnLE
[3] 媒體報(bào)道 Hinton 要將當(dāng)前的深度學(xué)習(xí)核心算法推倒重來(lái) Artificial intelligence pioneer says we need to start over
[4] Fei-Fei Li 在 Twitter 上的評(píng)論:Echo Geoff's sentiment no tool is eternal, even backprop or deeplearning. V. important to continue basic research.
[5] Le, Q. V. (2013, May). Building high-level features using large scale unsupervised learning. In Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on (pp. 8595-8598). IEEE.
[6] Bény, C. (2013). Deep learning and the renormalization group. arXiv preprint arXiv:1301.3124.
[7] Hinton, G. (2010). A practical guide to training restricted Boltzmann machines. Momentum, 9(1), 926.
[8] Rina Decher (1986). Learning while searching in constraint-satisfaction problems. University of California, Computer Science Department, Cognitive Systems Laboratory.
[9] Hinton, G. E., Krizhevsky, A., & Wang, S. D. (2011, June). Transforming auto-encoders. In International Conference on Artificial Neural Networks (pp. 44-51). Springer Berlin Heidelberg.
[10] Wolpert, D. H. (1996). The lack of a priori distinctions between learning algorithms. Neural computation, 8(7), 1341-1390.
[11] Hinton, G. E., & McClelland, J. L. (1988). Learning representations by recirculation. In Neural information processing systems (pp. 358-366).
[12] Pathak, D., Agrawal, P., Efros, A. A., & Darrell, T. (2017). Curiosity-driven exploration by self-supervised prediction. arXiv preprint arXiv:1705.05363.
