《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模拟设计 > 业界动态 > 浅析Geoffrey Hinton最近提出的Capsule计划

浅析Geoffrey Hinton最近提出的Capsule计划

2018-01-04
作者:SIY.Z
來源:机器之心

  Geoffrey Hinton 以「深度學(xué)習(xí)之父」和「神經(jīng)網(wǎng)絡(luò)先驅(qū)」聞名于世,其對深度學(xué)習(xí)及神經(jīng)網(wǎng)絡(luò)的諸多核心算法和結(jié)構(gòu)(包括「深度學(xué)習(xí)」這個名稱本身,反向傳播算法,受限玻爾茲曼機,深度置信網(wǎng)絡(luò),對比散度算法,ReLU 激活單元,Dropout 防止過擬合,以及深度學(xué)習(xí)早期在語音方面突破)做出了基礎(chǔ)性的貢獻(xiàn)。盡管已經(jīng)將大半輩子的時間投入到神經(jīng)網(wǎng)絡(luò)之上,這位老人卻絲毫沒有想退休的意思。

  Hinton 近幾年以「卷積神經(jīng)網(wǎng)絡(luò)有什么問題?」為主題做了多場報道 [1] [2],提出了他的 Capsule 計劃。Hinton 似乎毫不掩飾要推翻自己盼了 30 多年時間才建立起來的深度學(xué)習(xí)帝國的想法 [3]。他的這種精神也獲得了同行李飛飛(ImageNet 創(chuàng)始者)等人肯定 [4]。

  Hinton 為什么突然想要推倒重來?這肯定不是出于巧合或者突然心血來潮,畢竟作為一個領(lǐng)域的先驅(qū),質(zhì)疑自己親手建立的理論,不是誰都愿意做的事情。(試想一下,如果你到處做報告,說自己的領(lǐng)域有各種各樣的問題,就算不會影響到自己,也讓做這個領(lǐng)域的同行和靠這個領(lǐng)域吃飯的人不是很舒服)。

  說推倒重來有點過分,Hinton 并沒有否定一切,并且他的主要攻擊目標(biāo)是深度學(xué)習(xí)在計算機視覺方面的理論。但是從幾次演講來看,他的 Capsule 計劃確實和以前的方法出入比較大。Hinton 演講比較風(fēng)趣,但是也存在思維跳躍,難度跨度太大等問題。這些問題在他的關(guān)于 Capsule 的報告中還是比較突出的??梢哉f僅僅看報告很難理解完全 Hinton 的想法。我這幾天結(jié)合各類資料,整理了一下 Hinton 的思路和動機,和大家分享一下。

  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ù)史。

  人工智能才起步的時候,科學(xué)家們很自然的會有模擬人腦的想法(被稱為連接主義),因為人腦是我們唯一知道的擁有高級智能的實體。

  NN 起源于對神經(jīng)系統(tǒng)的模擬,最早的形式是感知機,學(xué)習(xí)方法是神經(jīng)學(xué)習(xí)理論中著名的 Hebb's rule。NN 最初提出就成為了人工智能火熱的研究方向。不過 Hebb's rule 只能訓(xùn)練單層 NN,而單層 NN 甚至連簡單的「異或」邏輯都不能學(xué)會,而多層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練仍然看不到希望,這導(dǎo)致了 NN 的第一個冬天。

  Hinton 意識到,人工神經(jīng)網(wǎng)絡(luò)不必非要按照生物的路子走。在上世紀(jì) 80 年代,Hinton 和 LeCun 奠定和推廣了可以用來訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的反向傳播算法 (back-propagation)。NN 再次迎來了春天。

  反向傳播算法,說白了就是一套快速求目標(biāo)函數(shù)梯度的算法。

  1.jpg對于最基本的梯度下降(Gradient Descent):2.jpg,反向傳播就是一種高效計算的方式。

  不過在那時,NN 就埋下了禍根。

  首先是,反向傳播算法在生物學(xué)上很難成立,很難相信神經(jīng)系統(tǒng)能夠自動形成與正向傳播對應(yīng)的反向傳播結(jié)構(gòu)(這需要精準(zhǔn)地求導(dǎo)數(shù),對矩陣轉(zhuǎn)置,利用鏈?zhǔn)椒▌t,并且解剖學(xué)上從來也沒有發(fā)現(xiàn)這樣的系統(tǒng)存在的證據(jù))。反向傳播算法更像是僅僅為了訓(xùn)練多層 NN 而發(fā)展的算法。失去了生物學(xué)支持的 NN 無疑少了很多底氣,一旦遇到問題,人們完全有更多理由拋棄它(歷史上上也是如此)

  其次是,反向傳播算法需要 SGD 等方式進(jìn)行優(yōu)化,這是個高度非凸的問題,其數(shù)學(xué)性質(zhì)是堪憂的,而且依賴精細(xì)調(diào)參。相比之下,(當(dāng)時的)后起之秀 SVM 等等使用了凸優(yōu)化技術(shù),這些都是讓人們遠(yuǎn)離 NN 的拉力。當(dāng)那時候的人們認(rèn)為 DNN 的訓(xùn)練沒有希望(當(dāng)時反向傳播只能訓(xùn)練淺層網(wǎng)絡(luò))的時候,NN 再次走向低谷。

  深度學(xué)習(xí)時代的敲門磚--RBM

  第二次 NN 低谷期間,Hinton 沒有放棄,轉(zhuǎn)而點了另外一個科技樹:熱力學(xué)統(tǒng)計模型。

  Hinton 由玻爾茲曼統(tǒng)計相關(guān)的知識,結(jié)合馬爾科夫隨機場等圖學(xué)習(xí)理論,為神經(jīng)網(wǎng)絡(luò)找到了一個新的模型:玻爾茲曼機 (BM)。Hinton 用能量函數(shù)來描述 NN 的一些特性,期望這樣可以帶來更多的統(tǒng)計學(xué)支持。

  不久 Hinton 發(fā)現(xiàn),多層神經(jīng)網(wǎng)絡(luò)可以被描述為玻爾茲曼機的一種特例--受限玻爾茲曼機 (RBM)。Hinton 在吳恩達(dá)近期對他的采訪中 (鏈接:https://www.youtube.com/watch?v=-eyhCTvrEtE),稱其為 「most beautiful work I did」。

  當(dāng)年我第一次看到 RBM 的相關(guān)數(shù)學(xué)理論的時候,真的非常激動,覺得這樣的理論不 work 有點說不過去。這里我給出相關(guān)的數(shù)學(xué)公式,以展示 NN 可以有完全不同于生物的詮釋方式。

  在統(tǒng)計力學(xué)中,玻爾茲曼分布(或稱吉布斯分布)可以用來描述量子體系的量子態(tài)的分布,有著以下的形式:

1.jpg

  其中 s 是某個量子態(tài), E(s) 為這個狀態(tài)的能量, P(s) 為這個狀態(tài)出現(xiàn)的概率。

  k 是玻爾茲曼常量,是個常數(shù)。T 是系統(tǒng)溫度,在具體問題中也是一個常數(shù)。于是我們不妨讓 kT=1,原來的表達(dá)式可以簡化為:

2.jpg

  也就是

3.jpg

  這不就是 softmax 嗎?居然自然地在統(tǒng)計力學(xué)分布里面出現(xiàn)了(難怪之前 LeCun 讓大家學(xué)物理)。

  為了再次簡化,我們定義 4.jpg,于是就有

5.jpg,(因為這時候公式里面只有一個s,就沒有必要寫下標(biāo)了)

  下面問題來了, E 是什么? s 又應(yīng)該是什么?

  Hinton 看了看神經(jīng)網(wǎng)絡(luò)的一層,其分為可見層(輸入層)和隱含層(中間層)。按照經(jīng)典網(wǎng)絡(luò)的定義,神經(jīng)元有激活和未激活兩個狀態(tài)。那么干脆讓 s 等于可見層 v 并上隱含層 h 神經(jīng)元的狀態(tài)吧(默認(rèn)都用向量的方式表示):

6.jpg

  于是


7.jpg

  (RBM示意圖,取自Wikipedia)

  那么 E 又是什么呢?

  非常巧合的是,量子物理學(xué)里面有個模型極其像神經(jīng)網(wǎng)絡(luò),以至于只要了解過幾乎都會驚嘆兩者的相似度。這個模型就是著名 易辛模型 (Ising model)。易辛模型(物理學(xué)界常見調(diào)侃:你 3 維 Ising 模型會解了嗎?)描述了晶格系統(tǒng)中的相變,解釋了鐵磁性問題(你可能好奇過,為啥這么多金屬,就鐵等少數(shù)金屬特別敏感,而且還能被磁化。這個模型給出了解釋)。

  Hinton 把神經(jīng)元的偏置 (對于可見層記作 a,對于隱含層記作 b ) 作為 Ising model 的「外場」,NN 的權(quán)重 W 作為 Ising Model 的「內(nèi)部耦合系數(shù)」(兩個神經(jīng)元之間的權(quán)重越大,代表它們的耦合越強,關(guān)聯(lián)越強),于是能量就可以寫作非常簡單的形式:

1.jpg

  這個形式讓人驚訝之處在于,在沒有浪費任何一個 NN 中的參量的情況下做到了最簡,并且非常合理的直覺:神經(jīng)元的偏置只和神經(jīng)元本身通過乘法直接相關(guān),而兩個神經(jīng)元間的權(quán)重也只和對應(yīng)的兩個神經(jīng)元通過乘法直接相關(guān),而整體的貢獻(xiàn)用加法聯(lián)系起來。

  我們可以將某個神經(jīng)元 hi 關(guān)聯(lián)的能量分離出來,也就是


2.jpg

  ,其中 Wi 是和神經(jīng)元 hi 相連的權(quán)重,h' 是除去 hi 的向量。

  為了方便,我們把和 hi 無關(guān)的部分記作


3.jpg

   于是,

 

4.jpg

    于是很容易得到

 

5.jpg

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

6.jpg

  這時候 sigmoid 函數(shù)就有了自然的解釋:玻爾茲曼分布下隱含層神經(jīng)元激活的條件概率的激活函數(shù)。

  如果你是 Hinton,推導(dǎo)到這一步,肯定也會覺得是個喜出望外的結(jié)果吧。

  而優(yōu)化的目標(biāo),就是極大似然估計,也就是最大化

1.jpg

  ,這里其實也非常有趣,因為和熱力學(xué)統(tǒng)計中的自由能非常相關(guān)。

  定義自由能為2.jpg(「自由」可以理解為 h 擁有額外的自由度,其蘊含的能量在體系中可以用來對外做功),則3.jpg于是有4.jpg 即 v 是關(guān)于自由能的玻爾茲曼分布。也就是我們找的參數(shù)是使得出現(xiàn)的樣本的自由能(在參數(shù)約束的分布中)最低的一組參數(shù)。這樣參數(shù)選擇就和樣本分布通過最低能量聯(lián)系起來。

  總之一切看上去都很有道理。Hinton 展現(xiàn)了 NN 和玻爾茲曼分布間驚人的聯(lián)系(其在論文中多次稱 surprisingly simple [7]),其背后的內(nèi)涵引人遐想。甚至有人在聽過 Hinton 的講座之后,還發(fā)現(xiàn) RBM 的訓(xùn)練模式和量子重整化群的重整化步驟是同構(gòu)的 [6]。

  不過問題是,優(yōu)化整體網(wǎng)絡(luò)是困難的,其根源性被認(rèn)為在于配分函數(shù) Z。求得最低能量對應(yīng)的結(jié)構(gòu)一般意義上是個 #P-Hard 的問題,如果真的能夠有有效算法,那么很多熱力學(xué)系統(tǒng),包括 Ising 模型也就迎刃而解。

  Hinton 使用貪心的方式來降低算法復(fù)雜度:逐層訓(xùn)練網(wǎng)絡(luò),而不是整體優(yōu)化。而為了訓(xùn)練每層 RBM,Hinton 發(fā)展了所謂的對比散度(contrastive divergence)算法。

  CD 算法利用了 Gibbs sampling,但是算法收斂的非常慢(這已經(jīng)是貪心處理過的問題了,可見原問題多難)。Hinton 再次近似,固定采樣步數(shù) k,被稱為 CD_k 算法。Hinton 驚奇的發(fā)現(xiàn) k=1 的時候(顯然是極度粗糙的近似),算法的表現(xiàn)就已經(jīng)相當(dāng)良好了。

  Hinton 發(fā)現(xiàn)用這個粗糙的算法預(yù)訓(xùn)練網(wǎng)絡(luò)(這個時候是無監(jiān)督學(xué)習(xí),也就是只需要數(shù)據(jù),不需要標(biāo)簽;在下面會提到)后,就可以通過調(diào)優(yōu)(加上標(biāo)簽,使用反向傳播繼續(xù)訓(xùn)練,或者干脆直接在后面接個新的分類器)高效且穩(wěn)定地訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)。

  之后「深度學(xué)習(xí)」這個詞逐漸走上歷史的前臺,雖然 1986 年就有這個概念了 [8]。可以說 RBM 是這一波人工智能浪潮的先行者。

  這讓人想起另外一個相當(dāng)粗糙但是甚至更加成功的算法--SGD??梢哉f,利用梯度的算法 中很難有比 SGD 還簡單的了,但是 SGD(加上動量后)效果確實特別好。非常粗糙的算法為何卻對 NN 的優(yōu)化這種非常復(fù)雜的問題很有效,這仍然是一個非常有趣的開放問題。

  由于玻爾茲曼機本身的特性,其可以被用來解決「無監(jiān)督學(xué)習(xí)」(Unsupervised learning)相關(guān)的問題。即使沒有標(biāo)簽,網(wǎng)絡(luò)也可以自己學(xué)會一些良好的表示,比如下面是從 MNIST 數(shù)據(jù)集中學(xué)到的表示:

1.jpg

  當(dāng)我們將人類智能,和目前的人工智障對比時,常常舉的例子就是「現(xiàn)在機器學(xué)習(xí)依賴大數(shù)據(jù),而人類的學(xué)習(xí)卻是相反的,依賴小數(shù)據(jù)」。這個說法其實不盡準(zhǔn)確。人類擁有太多的感知器官,無時無刻不接收著巨量的數(shù)據(jù):就按人眼的分辨率而言,目前幾乎沒有什么實際的機器學(xué)習(xí)模型模型使用如此高清晰度的數(shù)據(jù)進(jìn)行訓(xùn)練的。我們觀察一個東西的時候,所有的知覺都潛移默化地給我們灌輸海量的數(shù)據(jù),供我們學(xué)習(xí),推理,判斷。我們所謂的「小數(shù)據(jù)」,實際上主要分為兩個部分:

  少標(biāo)簽。我們遇到的「題目」很多,我們無時無刻不在接受信息;但是我們的「答案」很少,我們可能看過各種各樣的人,各種各樣的動物,直到某一天才有人用 3 個字告訴我們,「這是貓」。可能一生中,別人給你指出這是貓的次數(shù),都是屈指可數(shù)的。但是,僅僅通過這一兩次提示(相當(dāng)于一兩個標(biāo)簽),你就能在一生中記得這些概念。甚至別人從不告訴這是貓,你也知道這應(yīng)該不是狗或者其他動物。這種「沒有答案」的學(xué)習(xí)稱為「無監(jiān)督學(xué)習(xí)」(Yann LeCun 將其比作蛋糕胚,以示其基礎(chǔ)性的作用),目前機器學(xué)習(xí)在無監(jiān)督學(xué)習(xí)方面進(jìn)展很少。

  邏輯推斷,因果分析。也可以說是少證據(jù)。如果你看過探案相關(guān)的小說,那些偵探,能從非常細(xì)微的證據(jù)中,得出完整的邏輯鏈;現(xiàn)實中,愛因斯坦等物理學(xué)家能夠從非常少的幾點假設(shè)構(gòu)建出整套物理學(xué)框架。最早的人工智能研究很多集中在類似的方面(流派被稱為「符號主義」),但是事實證明這些研究大多數(shù)很難應(yīng)用到實際問題中?,F(xiàn)在 NN 為人所詬病的方面之一就是很難解決邏輯問題,以及因果推斷相關(guān)的問題(不過最近有些進(jìn)步,比如在視覺問答 VQA 方面)

2.jpg

  (Yann LeCun 的蛋糕,來自網(wǎng)絡(luò)上公開的 Yann LeCun PPT 的圖片)

  無監(jiān)督學(xué)習(xí)和先驗知識

  這是為了幫助理解而在中間插入的一小節(jié)。這一小節(jié)強調(diào)先驗知識對無監(jiān)督學(xué)習(xí)的重要性,這有助于理解后面為什么 Hinton 要強行把所謂「坐標(biāo)框架」體現(xiàn)在模型中,因為「坐標(biāo)框架」就是一種先驗知識,而且是從認(rèn)知神經(jīng)科學(xué)中總結(jié)的先驗知識。

  無監(jiān)督學(xué)習(xí)是一種沒有答案的學(xué)習(xí)。很關(guān)鍵的一點是,沒有答案怎么學(xué)?

  子曰:學(xué)而不思則罔,思而不學(xué)則殆。無監(jiān)督學(xué)習(xí)就像一個「思而不學(xué)」(這里的「學(xué)」是指學(xué)習(xí)書本(即較直接答案),不是指廣義的學(xué)習(xí))的學(xué)生。顯然這個學(xué)生如果沒有正確的思路和指導(dǎo)方向,自己一直憑空想下去,八成會變成一個瘋狂級的黑暗民科。

  這個「思路和指導(dǎo)方向」就是我們的先驗知識。先驗知識并沒有限定思考的范圍,但是卻給出了一些「建議的方向」。這對有監(jiān)督和無監(jiān)督學(xué)習(xí)都很重要,但是可能對無監(jiān)督更加關(guān)鍵。

  我們可以回顧一下為什么同為神經(jīng)網(wǎng)絡(luò),CNN 在圖像,甚至語音等領(lǐng)域全方面碾壓那種「簡單」的密連接網(wǎng)絡(luò)(參數(shù)少,訓(xùn)練快,得分高,易遷移)?

3.jpg

 ?。–NN示意圖,來自Wikipedia)

  顯然CNN有一個很強的先驗關(guān)系:局部性。它非常在意局部的關(guān)系,以及從局部到整體的過渡。

4.jpg

  (AlphaGo 中使用 CNN 提取圍棋的特征,取自 DeepMind 關(guān)于 AlphaGo 的論文)

  這在圍棋中也非常明顯,使用 CNN 的 AlphaGo 能夠「看清」局部的關(guān)系,同時能夠有很好的大局觀。

  而換一個領(lǐng)域,Kaggle 比如上面表格數(shù)據(jù)的學(xué)習(xí),CNN 就差多了,這時候勝出往往是各種集成方法,比如 Gradient Boosting 和 Random Forest。因為這些數(shù)據(jù)很少有局部關(guān)聯(lián)。

  無監(jiān)督領(lǐng)域比較成熟的算法大多是聚類算法,比如 k-Means 等等。

  這些算法聚類顯著的特點是強調(diào)空間相關(guān)的先驗,認(rèn)為比較靠近的是一類。

5.jpg

 ?。▓D為兩個不同的聚類算法的效果,取自 Wikipedia k-Means 頁面)

  然而即使如此,兩個聚類算法的不同的先驗知識仍然導(dǎo)致不同的結(jié)果。上面圖中,k-Means 的先驗更強調(diào) cluster 的大小均勻性(損失是聚類中心到類成員的距離平方),因此有大而平均的聚類簇;而高斯 EM 聚類則更強調(diào)密集性(損失是中心到成員的距離的指數(shù)),因此有大小不一但是密集的聚類簇。(大多數(shù)人更加偏向 EM 的結(jié)果,這大多是因為我們對米老鼠的,或者對動物頭部的先驗知識,希望能夠分出「耳朵」和「臉」)

  人的先驗知識是我們最關(guān)心的,這可能是 AI 的核心。近期有不少 RL(強化學(xué)習(xí))方面的論文試圖探究這一點。比如下面的這篇論文試圖建模關(guān)于「好奇心」的先驗知識,鼓勵模型自己探究特殊之處,還是有一些奇效的。

6.jpg

 ?。▓D片取自論文 Curiosity-driven Exploration by Self-supervised Prediction)

  后面我們會看到 Hinton 通過認(rèn)知科學(xué)和圖形學(xué)總結(jié)出來的一些先驗知識,以及他如何將這些先驗知識加入到模型中去。

  反向傳播,它就是有效

  不過不久,人們發(fā)現(xiàn),使用 ReLU 以及合適的初始化方法,用上 CNN,搭配上強勁的 GPU 之后,發(fā)現(xiàn)原來的深度神經(jīng)網(wǎng)絡(luò)可以照常訓(xùn)練,根本不用 RBM 預(yù)訓(xùn)練。RBM 雖然數(shù)學(xué)上很漂亮,但是受結(jié)構(gòu)限制嚴(yán)重,而且在 supervised learning 方面往往搞不過直接暴力反向傳播。前幾年吳恩達(dá)在 Google 讓神經(jīng)網(wǎng)絡(luò)自動檢測視頻中的貓的時候,Google 內(nèi)部的深度學(xué)習(xí)框架幾乎就是用來支持 RBM 等的訓(xùn)練的。而現(xiàn)在 Google 開源的 TensorFlow 等主流框架中都沒有 RBM 的影子。很多從 TensorFlow 入手的新人估計也沒有聽過 RBM。

  好了,現(xiàn)在除了各種小修小改(殘差網(wǎng)絡(luò),Adam 優(yōu)化器,ReLU,Batchnorm,Dropout,GRU,和稍微創(chuàng)意點的 GAN),神經(jīng)網(wǎng)絡(luò)訓(xùn)練主流算法又回到了 30 年前(那個時候 CNN,LSTM 已經(jīng)有了)的反向傳播了。

  目前來看,很多對 NN 的貢獻(xiàn)(特別是核心的貢獻(xiàn)),都在于 NN 的梯度流上,比如

  sigmoid 會飽和,造成梯度消失。于是有了 ReLU。

  ReLU 負(fù)半軸是死區(qū),造成梯度變 0。于是有了 LeakyReLU,PReLU。

  強調(diào)梯度和權(quán)值分布的穩(wěn)定性,由此有了 ELU,以及較新的 SELU。

  太深了,梯度傳不下去,于是有了 highway。

  干脆連 highway 的參數(shù)都不要,直接變殘差,于是有了 ResNet。

  強行穩(wěn)定參數(shù)的均值和方差,于是有了 BatchNorm。

  在梯度流中增加噪聲,于是有了 Dropout。

  RNN 梯度不穩(wěn)定,于是加幾個通路和門控,于是有了 LSTM。

  LSTM 簡化一下,有了 GRU。

  GAN 的 JS 散度有問題,會導(dǎo)致梯度消失或無效,于是有了 WGAN。

  WGAN 對梯度的 clip 有問題,于是有了 WGAN-GP。

  說到底,相對于八、九十年代(已經(jīng)有了 CNN,LSTM,以及反向傳播算法),沒有特別本質(zhì)的改變。

  但是為什么當(dāng)前這種方式實際效果很好?我想主要有:

  全參數(shù)優(yōu)化,end-to-end。反向傳播(下面用 BP 代替)可以同時優(yōu)化所有的參數(shù),而不像一些逐層優(yōu)化的算法,下層的優(yōu)化不依賴上層,為了充分利用所有權(quán)值,所以最終還是要用 BP 來 fine-tuning;也不像隨機森林等集成算法,有相對分立的參數(shù)。很多論文都顯示 end-to-end 的系統(tǒng)效果會更好。

  形狀靈活。幾乎什么形狀的 NN 都可以用 BP 訓(xùn)練,可以搞 CNN,可以搞 LSTM,可以變成雙向的 Bi-LSTM,可以加 Attention,可以加殘差,可以做成 DCGAN 那種金字塔形的,或者搞出 Inception 那種復(fù)雜的結(jié)構(gòu)。如果某個結(jié)構(gòu)對 NN 很有利,那么就可以隨便加進(jìn)去;將訓(xùn)練好的部分加入到另一個 NN 中也是非常方便的事情。這樣隨著時間推進(jìn),NN 結(jié)構(gòu)會被人工優(yōu)化得越來越好。BP 的要求非常低:只要連續(xù),就可以像一根導(dǎo)線一樣傳遞梯度;即使不連續(xù),大部分也可以歸結(jié)為離散的強化學(xué)習(xí)問題來提供 Loss。這也導(dǎo)致了大量 NN 框架的誕生,因為框架制作者知道,這些框架可以用于所有需要計算圖的問題(就像萬能引擎),應(yīng)用非常廣泛,大部分問題都可以在框架內(nèi)部解決,所以有必要制作。

  計算高效。BP 要求的計算絕大多數(shù)都是張量操作,GPU 跑起來賊快,并且 NN 的計算圖的形式天生適合分布式計算;而且有大量的開源框架以及大公司的支持。

  神經(jīng)解剖學(xué)與 Capsule 的由來

  不過 Hinton 看上去是不會對目前這種結(jié)果滿意的。他在 2011 年的時候,就第一次提出了 Capsule 結(jié)構(gòu) [9](我們會在后面解釋 Capsule 是什么)。不過那次 Hinton 打擂顯然沒有成功。

  Hinton 最近抓住了 NN 中最成功的 CNN 批判了一番,又重新提出了 Capsule 結(jié)構(gòu)??梢悦鞔_的是,Hinton 受到了下面 3 個領(lǐng)域的啟示:

  神經(jīng)解剖學(xué)

  認(rèn)知神經(jīng)科學(xué)

  計算機圖形學(xué)

  其中前兩者明顯是和人腦相關(guān)的??赡懿簧僮x者都有疑問:NN 非要按照生物的路子走嗎?

  回答是:看情況。

  對于人腦中存在的結(jié)構(gòu)和現(xiàn)象,可以從不同的觀點看待:

  這是生物基礎(chǔ)導(dǎo)致的妥協(xié),是進(jìn)化的累贅。由于細(xì)胞構(gòu)成的生物系統(tǒng)難以完成某些特定任務(wù),而以實質(zhì)上非常低效的方式勉強實現(xiàn)。這時候不模仿人腦是正確的。典型的例子是算術(shù)計算以及數(shù)據(jù)存儲。生物結(jié)構(gòu)很難進(jìn)化出精確的運算元件,以及大容量的存儲元件,并且讓它們能以 GHz 量級的頻率持續(xù)工作。我們只能用高層的、抽象的方式進(jìn)行不保證精準(zhǔn)的運算、記憶,這大大慢于當(dāng)代的計算機,也沒有計算機準(zhǔn)確。比如知乎上這個問題 比特幣挖礦一定要用計算機嗎?用紙筆來計算可行嗎?,有很多折疊的回答是「這孩子能用來做顯卡」。雖然這些回答有侵犯性,但是確實足以說明這些方面生物結(jié)構(gòu)的顯著弱勢。

  這是演化中的中性功能。進(jìn)化只要求「夠用」,而不是「最好」。有些人腦的結(jié)構(gòu)和功能也許可以被完全不同的實現(xiàn)方式替代。這里的一個例子是 AlphaGo 下圍棋。圍棋高手能夠把圍棋下的很好,但是普通人不能。下圍棋確乎關(guān)系到人的直覺,但是這種直覺不是強制的,也不是先天的:不會下圍棋不意味著會在進(jìn)化中淘汰,人腦中也沒有專用的「圍棋模塊」。這個時候,我們可以設(shè)計一個和人腦機制差異很大的系統(tǒng),比如 AlphaGo,它可以下得比人還要好。

  這是演化中的重大突破,這些功能造就了我們「人」的存在。比如人的各類感知系統(tǒng),人的因果分析系統(tǒng),學(xué)習(xí)系統(tǒng),規(guī)劃系統(tǒng),運動控制系統(tǒng)。這些是人工智能尚且欠缺的。

  不過首要問題是,我們怎么知道某個人腦的功能或者結(jié)構(gòu)屬于上面的第 3 點呢?按照上面的觀點,顯然生物的某個結(jié)構(gòu)和功能本身的出現(xiàn)不能說明它很有用。我們需要更多證據(jù)。

  一個重要的統(tǒng)計學(xué)證據(jù)是普遍性。我們?yōu)槭裁磿心?NN 做 AI 的想法?因為 NN 本身正是生物進(jìn)化中的重大突破,凡是有 NN 的生物中,我們都發(fā)現(xiàn) NN 對其行為調(diào)控起了關(guān)鍵性作用,尤其是人類。這也是我們?nèi)缃裨敢庀嘈潘睦碛?,而不只是因為人有一個大腦,所以我們就必須搞一個(就像我們不給 AI 做肝臟一樣)。

  人的實際神經(jīng)系統(tǒng)是有分層的(比如視覺系統(tǒng)有 V1, V2 等等分層),但是層數(shù)不可能像現(xiàn)在的大型神經(jīng)網(wǎng)絡(luò)(特別是 ResNet 之后)一樣動不動就成百上千層(而且生物學(xué)上也不支持如此,神經(jīng)傳導(dǎo)速度很慢,不像用 GPU 計算神經(jīng)網(wǎng)絡(luò)一層可能在微秒量級,生物系統(tǒng)傳導(dǎo)一次一般在 ms 量級,這么多層數(shù)不可能支持我們現(xiàn)在這樣的反應(yīng)速度,并且同步也存在問題)。

7.jpg

 ?。▽⑷四X視覺通路分層和 DNN 分層的類比。Image (c) Jonas Kubilias)

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

8.jpg

 ?。╩ini-column 圖片,引自 minicolumn hypothesis in neuroscience | Brain | Oxford Academic)

  為什么大腦皮層中普遍存在 mini-column?這顯然是一個重要的統(tǒng)計學(xué)證據(jù),讓 Hinton 愿意相信 mini-column 肯定起了什么作用。于是 Hinton 也提出了一個對應(yīng)的結(jié)構(gòu),稱為 capsule(膠囊,和微柱對應(yīng))。這就是 capsule 的由來。

  但是 capsule 做了什么?之前的 CNN 又有什么問題?統(tǒng)計學(xué)證據(jù)不能給出這些的答案。Hinton 的這部分答案來自認(rèn)知神經(jīng)科學(xué)。

  認(rèn)知神經(jīng)科學(xué)和「沒有免費的午餐」

  每一個機器學(xué)習(xí)的初學(xué)者都應(yīng)該了解關(guān)于機器學(xué)習(xí)的重要定律--「沒有免費的午餐」[10]

  這個可以通過科幻小說《三體》里面的提到一個例子來理解:

  「農(nóng)場主假說」則有一層令人不安的恐怖色彩:一個農(nóng)場里有一群火雞,農(nóng)場主每天中午十一點來給它們喂食?;痣u中的一名科學(xué)家觀察這個現(xiàn)象,一直觀察了近一年都沒有例外,于是它也發(fā)現(xiàn)了自己宇宙中的偉大定律:「每天上午十一點,就有食物降臨。」它在感恩節(jié)早晨向火雞們公布了這個定律,但這天上午十一點食物沒有降臨,農(nóng)場主進(jìn)來把它們都捉去殺了。

  在這個例子中,問題是,火雞愚蠢嗎?

  觀點 1:火雞很聰明。它能夠發(fā)現(xiàn)和總結(jié)規(guī)律。只不過它在農(nóng)場很不走運。

  觀點 2:火雞很愚蠢。無論如何,它沒有能夠讓自己逃脫死亡的命運。而且正是它自己得到的「規(guī)律」將它們送上死亡之路。

  觀點 2 就是「沒有免費的午餐」。這是在「數(shù)學(xué)現(xiàn)實」中成立的,在「數(shù)學(xué)現(xiàn)實」中,一切可能性都存在,感恩節(jié)那天,火雞有可能被殺,也有可能被農(nóng)場主的孩子當(dāng)成寵物,也有可能農(nóng)場主決定把一部分雞再養(yǎng)一年然后殺掉。雞無論做出怎樣的猜想都可能落空。可以證明,無論我們學(xué)習(xí)到了什么東西,或者掌握到了什么規(guī)律,我們總是可以(在數(shù)學(xué)上)構(gòu)造一個反例(比如,讓太陽從西邊升起,讓黃金變成泥土),與我們的判斷不一致。這不管對于機器,而是對于人,都是一樣的。也就是在「一般「的意義上,或者數(shù)學(xué)的意義上,沒有哪個生物,或者哪個算法,在預(yù)測能力上比瞎猜更好。

  而看似矛盾的觀點 1,卻在物理現(xiàn)實中得以成立。可以說,物理定律是一部分不能用數(shù)學(xué)證明的真理。我們相信這些定律,一是因為我們尚且沒有發(fā)現(xiàn)違背的情況,二是某種直覺告訴我們它很可能是對的。為什么我們能總結(jié)出這些定律,這是一個讓人困惑的問題,因為看起來人并不是先天就能總結(jié)出各種定律。但是可以確定的是,我們本身就是定律約束下進(jìn)化的產(chǎn)物,雖然對物理定律的理解不是我們的本能,但是很多「準(zhǔn)定律」已然成為我們的本能,它們塑造了我們本能的思考問題的方式,對對稱性的理解,等等等等。

  現(xiàn)實中的情況介于觀點 1 和觀點 2 之間。很多東西既不是完全沒有規(guī)律,也不是一種物理定律,但是對我們的進(jìn)化和存活意義重大(也就是上面說的「準(zhǔn)定律」),它們是一種非常強的「先驗分布」,或者說,是我們的常識,而且我們通常情況下意識不到這種常識。

  既然不是物理定律,那么按照觀點 2,我們就能夠找到一些反例。這些反例對我們來說是某種「錯誤」,這種錯誤正是非常非常強的證據(jù)。理由是,我們很少出錯(指認(rèn)知和腦功能上的出錯)。人腦是個黑盒,在絕大多數(shù)時候都工作正常,我們從中獲得的信息量很小。但是一旦出錯,就能給予我們很大的信息量,因為我們得以有機會觀察到一些奇特的現(xiàn)象,好似百年一遇的日全食一般。很多神經(jīng)科學(xué)上面的發(fā)現(xiàn)都建立在錯誤之上(比如腦損傷導(dǎo)致了語言區(qū)的發(fā)現(xiàn),以及左右腦功能的確認(rèn)等等)。它揭示了一些我們的本能,或者我們習(xí)得的先驗知識。

  根據(jù)上文所述,這種先驗知識,對于機器學(xué)習(xí),尤其是無監(jiān)督學(xué)習(xí),是極度重要的。

  而認(rèn)知神經(jīng)科學(xué)就可以通過一些實驗揭示出這些錯誤。下面給出一些例子:

  第一個例子是下面的人臉:

9.jpg

  這個人是什么樣的表情?倒過來再看看?

  這個例子說明了人對倒過來的人臉的表情的識別能力很差。長期的進(jìn)化過程中,我們對正著的人臉造成了「過擬合」,「正著」的信息變得不是很重要。上面的圖出現(xiàn)錯覺的原因是,雖然人臉是倒著的,我們卻用「正著」的思路觀察圖片中眼睛,而眼睛的線條走向給了我們表情信息:

 ?。ㄉ踔烈恍┖唵蔚木€條,都會讓我們覺得是人臉,并且得出它的表情。其中眼睛和嘴的線條在我們表情識別中起了重要作用)

10.jpg

  這啟示我們,人類識別臉,其實就是通過幾個關(guān)鍵的結(jié)構(gòu)(眼睛,眉毛,嘴,鼻子)完成的。當(dāng)今很多算法都模仿這一點,標(biāo)注出人臉的關(guān)鍵結(jié)構(gòu),成功率很高。

  另外人對臉的形狀過擬合,也讓我們看二次元中動畫人物的臉時覺得很正常,實際上這和真實的臉差異很大,但是我們大腦不這么認(rèn)為,因為這種識別機制已經(jīng)成為了我們的本能。

  第二個例子是這個錯覺圖:

11.jpg

  (圖片取自 Wikipedia)

  很難想象,A 和 B 的顏色居然是一樣的。

12.jpg

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

  下面這個圖片是更加極端的情況。中間的條帶其實沒有漸變。

13.jpg

  第三個錯覺是關(guān)于線條的:

14.png

  人類會不由自主的覺得中間似乎有個白色三角形,因為我們大腦「騙」我們,讓我們覺得似乎有一些「看不見的邊」。

  把效果變得更夸張一點:

15.jpg

  按照一定距離觀察這幅圖,會讓我們覺得產(chǎn)生了「纏繞」或者「扭曲」。實際上這些就是一個個同心圓。產(chǎn)生錯覺的原因是,大腦給我們「腦補」了很多傾斜邊(這些方塊是傾斜的,并且采用了不同的顏色加強邊的效果),這些邊的形狀不同于它們的排列方向,因此會覺得「纏繞」。如果我們到了這樣的圖案居多的世界中,我們的現(xiàn)在視覺系統(tǒng)將難以正常工作。

  我們生活中的絕大多數(shù)物體,都有著明確的邊界。這不是一個物理定律,但是就其普遍性而言,足夠成為一個「準(zhǔn)定律」。以至于人和動物的大腦視覺皮層擁有專門識別邊的結(jié)構(gòu):

16.jpg

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

17.jpg

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

18.jpg

  人類的這些錯覺同時也暗示了人類和算法模型一樣受「沒有免費午餐定理」的限制,人的認(rèn)知并沒有特別異于算法的地方,或許是可以被算法復(fù)現(xiàn)的。

  Hinton 從認(rèn)知神經(jīng)科學(xué)中得到的反對 CNN 的理由

  說 Hinton 是一個認(rèn)知神經(jīng)科學(xué)家并沒有問題。Hinton 做過不少認(rèn)知實驗,也在認(rèn)知科學(xué)領(lǐng)域發(fā)過不少論文。

  Hinton 自己也承認(rèn),CNN 做的非常好。但是當(dāng) Hinton 做了一系列認(rèn)知神經(jīng)科學(xué)的試驗后,HInton 覺得有些動搖,直至他現(xiàn)在反對 CNN。

  第一個實驗稱為四面體謎題(tetrahedron puzzle),也是 Hinton 認(rèn)為最有說服力的實驗。

  如圖,有兩個全等的簡單積木,要求你把它們拼成一個正四面體(不要看答案,先自己試試)。

19.jpg

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

20.jpg

 ?。ㄒ曨l中 Hinton 親自演示這個實驗的樣子很有趣,取自 Youtube[2])

  Hinton 此處狂黑 MIT,說 MIT 教授解決這個問題的分鐘數(shù)和和他們在 MIT 工作的年數(shù)基本一致,甚至有一個 MIT 教授看來半天寫了一個證明了說這是不可能的(然后底下 MIT 的學(xué)生聽了非常高興,他們很喜歡黑自己的教授)。

  但是兩類人解決得非???,一類是本來就對四面體的構(gòu)型非常了解的;另外就是不認(rèn)真對待隨便瞎試的(畢竟就幾種可能情況,枚舉起來很快)。但是如果希望通過觀察,通過視覺直覺解決問題會非常困難。

  這意味著我們出現(xiàn)了錯覺,而且是一種視覺錯覺。

  Hinton 通過人們嘗試的過程發(fā)現(xiàn),錯覺是由于人們不自覺地會根據(jù)物體形狀建立一種「坐標(biāo)框架」(coordinate frame)。

21.jpg

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

  如果給兩個幾何體不同的坐標(biāo)框架

22.jpg

  幾乎就立即可以得到解

23.jpg

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

24.png

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

25.jpg

 ?。▓D片取自 Hinton 在 University of Toronto 的名為 Does the Brain do Inverse Graphics? 的講座的公開 PPT)

  我們無法直接回答,而是要在意識中「旋轉(zhuǎn)」某個 R,才能判斷手相性是否一致。并且角度差的越大,人判斷時間就越長。

  而「意識旋轉(zhuǎn)」同樣突出了「坐標(biāo)框架」的存在,我們難以判斷手相性,是因為它們有不一致的坐標(biāo)框架,我們需要通過旋轉(zhuǎn)把坐標(biāo)框架變得一致,才能從直覺上知道它們是否一致。

  第三個實驗是關(guān)于地圖的。我們需要讓一個對地理不是特別精通,但是有基礎(chǔ)知識的人,回答一個簡單的問題:

  下面的圖案是什么洲?

26.jpg

  相當(dāng)多的人(特別是憑直覺直接答的)回答,像澳洲。

  這是因為對于不規(guī)則圖案,我們想當(dāng)然地建立了這樣的坐標(biāo)框架:

27.jpg

  但是如果你這樣建立:

28.jpg

  就會立即發(fā)現(xiàn)這是非洲,而且和澳洲相差的挺大。

  通過這幾個實驗,Hinton 得出了這樣的結(jié)論:

  人的視覺系統(tǒng)會建立「坐標(biāo)框架」,并且坐標(biāo)框架的不同會極大地改變?nèi)说恼J(rèn)知。

  但是在 CNN 上卻很難看到類似「坐標(biāo)框架」的東西。

  Hinton 提出了一個猜想:

  物體和觀察者之間的關(guān)系(比如物體的姿態(tài)),應(yīng)該由一整套激活的神經(jīng)元表示,而不是由單個神經(jīng)元,或者一組粗編碼(coarse-coded,這里意思是指類似一層中,并沒有經(jīng)過精細(xì)組織)的神經(jīng)元表示。這樣的表示比較適合實現(xiàn)類似「坐標(biāo)框架」的原理。

  而這一整套神經(jīng)元,Hinton 認(rèn)為就是 Capsule。

  同變性(Equivariance)和不變性(Invariance)

  Hinton 反對 CNN 的另外一個理由是,CNN 的目標(biāo)不正確。問題主要集中在 Pooling 方面(我認(rèn)為可以推廣到下采樣,因為現(xiàn)在很多 CNN 用卷積下采樣代替 Pooling 層)。Hinton 認(rèn)為,過去人們對 Pooling 的看法是能夠帶來 invariance 的效果,也就是當(dāng)內(nèi)容發(fā)生很小的變化的時候(以及一些平移旋轉(zhuǎn)),CNN 仍然能夠穩(wěn)定識別對應(yīng)內(nèi)容。

  但是這個目標(biāo)并不正確,因為最終我們理想的目標(biāo)不是為了「識別率」,而是為了得到對內(nèi)容的良好的表示 (representation)。如果我們找到了對內(nèi)容的良好表示,那么就等于我們「理解」了內(nèi)容,因為這些內(nèi)容可以被用來識別,用來進(jìn)行語義分析,用來構(gòu)建抽象邏輯,等等等等。而現(xiàn)在的 CNN 卻一味地追求識別率,這不是 Hinton 想要的東西,Hinton 想要「something big」。

  Hinton 的看法是,我們需要 Equivariance 而不是 Invariance。

  所謂 Invariance,是指表示不隨變換變化,比如分類結(jié)果等等。


29.jpg

  Invariance 主要是通過 Pooling 等下采樣過程得到的。如果你對訓(xùn)練神經(jīng)網(wǎng)絡(luò)有經(jīng)驗,你可能會想到我們在做圖像預(yù)處理和數(shù)據(jù)拓增的時候,會把某些圖片旋轉(zhuǎn)一些角度,作為新的樣本,給神經(jīng)網(wǎng)絡(luò)識別。這樣 CNN 能夠做到對旋轉(zhuǎn)的 invariance,并且是「直覺上」的 invariance,根本不需要像人那樣去旋轉(zhuǎn)圖片,它直接就「忽視」了旋轉(zhuǎn),因為我們希望它對旋轉(zhuǎn) invariance。

  CNN 同樣強調(diào)對空間的 invariance,也就是對物體的平移之類的不敏感(物體不同的位置不影響它的識別)。這當(dāng)然極大地提高了識別正確率,但是對于移動的數(shù)據(jù)(比如視頻),或者我們需要檢測物體具體的位置的時候,CNN 本身很難做,需要一些滑動窗口,或者 R-CNN 之類的方法,這些方法很反常(幾乎肯定在生物學(xué)中不存在對應(yīng)結(jié)構(gòu)),而且極難解釋為什么大腦在識別靜態(tài)圖像和觀察運動場景等差異很大的視覺功能時,幾乎使用同一套視覺系統(tǒng)。

  對平移和旋轉(zhuǎn)的 invariance,其實是丟棄了「坐標(biāo)框架」,Hinton 認(rèn)為這是 CNN 不能反映「坐標(biāo)框架」的重要原因。

  而 equivariance 不會丟失這些信息,它只是對內(nèi)容的一種變換:


30.jpg

  Hinton 認(rèn)為 CNN 前面非 Pooling 的部分做的很好,因為它們是 equivariance 的。

  那么在 Capsule 的框架下,又應(yīng)該如何體現(xiàn) equivariance 呢?

  Hinton 認(rèn)為存在兩種 equivariance:

  位置編碼(place-coded):視覺中的內(nèi)容的位置發(fā)生了較大變化,則會由不同的 Capsule 表示其內(nèi)容。

  速率編碼(rate-coded):視覺中的內(nèi)容為位置發(fā)生了較小的變化,則會由相同的 Capsule 表示其內(nèi)容,但是內(nèi)容有所改變。

  并且,兩者的聯(lián)系是,高層的 capsule 有更廣的域 (domain),所以低層的 place-coded 信息到高層會變成 rate-coded。

  這里 Hinton 雖然沒有指明,但是我感覺到 Hinton 是希望能夠統(tǒng)一靜態(tài)視覺和動態(tài)視覺的(通過兩種編碼方式,同時感知運動和內(nèi)容)。人腦中對于靜態(tài)和動態(tài)內(nèi)容的處理通路并沒有特別大的變化,但是現(xiàn)在做視頻理解的框架和做圖片理解的差異還是不小的。

  但是,畢竟 invariance 是存在的,比如我們對物體的識別確實不和物體的位置有關(guān)。這里 Hinton 解釋了一下:

  knowledge,but not activities have to be invariant of viewpoint

  也就是 Hinton 談?wù)摰膯栴}是關(guān)于 activation 的,之前人們所說的 CNN 的 invariance 是關(guān)于神經(jīng)元 activation 的。Hinton 希望 invariance 僅僅是對于 knowledge 的(對于 Capsule 而言,是其輸出的概率部分)。通過這可以看到 Hinton 使用 Capsule 的一個原因是覺得 Capsule 相比單個神經(jīng)元更適合用來做表示。

  Capsule 與 coincidence filtering(巧合篩分)

  那么高層的 Capsule 怎么從底層的 Capsule 獲取信息呢?

  首先 Capsule 的輸出是什么?

  Hinton 假設(shè) Capsule 輸出的是 instantiation parameters(實例參數(shù)),這是一個高維向量:

  其模長代表某個實體(某個物體,或者其一部分)出現(xiàn)的概率

  其方向/位置代表實體的一般姿態(tài) (generalized pose),包括位置,方向,尺寸,速度,顏色等等

  Capsule 的核心觀念是,用一組神經(jīng)元而不是一個來代表一個實體,且僅代表一個實體。

  然后通過對底層的 Capsule 做 coincidence filtering(巧合篩分)決定激活哪些高層的 Capsule。coincidence filtering 是一種通過對高維度向量進(jìn)行聚類來判斷置信的方式,Hinton 舉了一個例子:

  比如你在街上聽到有人談?wù)?11 號的紐約時報,你一開始可能并不在意;但是如果你沿路聽到 4 個或者 5 個不同的人在談?wù)?11 號的紐約時報,你可能就立即意識到一定有什么不平常的事情發(fā)生了。

  我們的(非日常)語句就像高維空間中向量,一組相近語句的出現(xiàn),自然條件下概率很小,我們會很本能地篩分出這種巧合。

  coincidence filtering 能夠規(guī)避一些噪聲,使得結(jié)果比較 robust。

  這讓我想起了現(xiàn)在 CNN 容易被對抗樣本欺騙的問題。雖然幾乎所有的機器學(xué)習(xí)模型都存在對抗樣本的問題,但是 CNN 可以被一些對人而言沒有區(qū)別的對抗樣本欺騙,這是嚴(yán)峻的問題(這也是 CNN 異于我們視覺系統(tǒng)的一點)。一部分原因在于 NN 的線性結(jié)構(gòu),其對噪聲的耐受不是很好。不知道 coincidence filtering 能否緩解這個問題。

  用圖來表示就像這樣:

31.jpg

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


32.jpg

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

33.jpg

 ?。▓D片取自 Youtube [2])

  得到高分的簇的分類所對應(yīng)的上層 capsule 會接受下層 capsule 提供的 generalized pose,相當(dāng)于做了 routing。這是因為下層的這些輸出,「選擇」了上層的 capsule,「找到最好的(處理)路徑等價于(正確)處理了圖像」,Hinton 這樣解釋。Hinton 稱這種機制為「routing by agreement」。

  這種 routing 不是靜態(tài)的,而是動態(tài)的(隨輸入決定的),這是 Pooling 等方式不具備的:

34.jpg

  由于使用這種類似聚類的方式,其有潛在的 unsupervised learning 的能力,不過 Hinton 還沒有透露具體的算法。但是 Hinton 在 [2] 中提到,對于 MNIST 數(shù)據(jù)集,經(jīng)過 unsupervised learning 后,只需要 25 個例子,就可以達(dá)到 98.3% 的識別準(zhǔn)確率,并且解決了 CNN 識別重疊圖像困難等問題。這些應(yīng)該在最近被 NIPS 接受的關(guān)于 Capsules 論文 Dynamic Routing between Capsules(尚未發(fā)表)https://research.google.com/pubs/pub46351.html 中可以看到。讓我們拭目以待。

  圖形學(xué)和線性流形(linear manifold)

  Hinton 這次明顯受到了計算機圖形學(xué)的啟發(fā)。他在報告 [2] 中說 literally,literally, reverse of graphics.(我非常非常認(rèn)真地想要「逆向」圖形學(xué))。

  計算機圖形學(xué)中有個非常重要的性質(zhì),就是其使用了 linear manifold,有良好的視角不變性。

  說明白一點,也就是用視角變換矩陣作用到場景中,不改變場景中物體的相對關(guān)系。

  于是 Hinton 決定用矩陣處理兩個物體間的關(guān)聯(lián)。

  按照上面的 routing by agreement 的算法,如果我們希望從 mouth 和 nose 得到 face,我們需要讓 mouth 的向量 Ti 和 nose 的向量 Th 基本一致。

  它們本身肯定不會一致的,因為 mouth 和 nose 不是一樣的東西;要讓它們一致我們就需要找一類函數(shù),使得 35.jpg。

  但是選擇哪類函數(shù)呢?Hinton 的答案是多重線性函數(shù)(矩陣),因為這能夠使得它們的關(guān)系不受視角變換(設(shè)視角變換為矩陣 W)影響,這是因為

36.jpg

37.jpg

 ?。▓D片取自 Hinton 在 University of Toronto 的名為 Does the Brain do Inverse Graphics? 的講座的公開 PPT)

  而且這對三維也是有效的,這里看到了 Hinton 沖擊三維視覺的野心。

  Hinton 這波會成功嗎?

  Hinton 是個很「固執(zhí)」的人,在吳恩達(dá)對他的采訪中,他說出了自己的想法:

  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.

  (意思是如果直覺一直很好,那么當(dāng)然應(yīng)該堅持;如果直覺很差,那么怎么做也沒有關(guān)系了(反正你也搞不出什么,即使你換個想法大抵也不會成功))。當(dāng)然后半句可能是 Hinton 的高級黑。

  但是 Hinton 確乎堅信自己的直覺,從反向傳播提出,到深度學(xué)習(xí)的火爆,Hinton 已經(jīng)堅守了 30 年了,并沒有任何放棄的意思。

  現(xiàn)在 Capsule 給了 Hinton 很多直覺,Hinton 估計也是會一條路走到黑。Hinton 的目標(biāo)也很大,從他對 capsule 的介紹中可以看到有沖擊動態(tài)視覺內(nèi)容、3D 視覺、無監(jiān)督學(xué)習(xí)、NN 魯棒性這幾個「老大難」問題的意思。

  如果 Hinton 會失?。ㄎ也皇遣豢春?Hinton,而是僅僅做一個假設(shè)),大抵是兩種情況,

  第一種是因為現(xiàn)在反向傳播的各種優(yōu)點,上面已經(jīng)總結(jié)過了。一個模型要成功,不僅要求效果良好,還要求靈活性(以便應(yīng)用在實際問題中),高效性,和社區(qū)支持(工業(yè)界和學(xué)術(shù)界的采納程度和熱門程度)。現(xiàn)在的反向傳播在這幾點上都非常 promising,不容易給其他模型讓步。

  第二種是因為即使一個直覺特別好的人,也有可能有直覺特別不好的一天,尤其是晚年。這點非常著名的例子是愛因斯坦。愛因斯坦性格和 Hinton 很像,有非常敏銳的直覺,并且對自己的直覺的值守到了近乎固執(zhí)的程度。愛因斯坦晚年的時候,想要搞統(tǒng)一場論,這是一個很大的目標(biāo),就好像現(xiàn)在 Hinton 希望能夠創(chuàng)造顛覆 BP 機制的目標(biāo)一樣;愛因斯坦也獲得了很多直覺,比如他覺得電磁場和引力是非常相似的,都和相對論緊密關(guān)聯(lián),都是平方反比,都是一種傳遞力的波色子,并且玻色子靜質(zhì)量都是 0,力的范圍都是無窮遠(yuǎn),等等等等,就好像現(xiàn)在 Hinton 找到的各種各樣很有說服力的論據(jù)一樣;于是愛因斯坦決定首先統(tǒng)一電磁力和引力,結(jié)果是失敗的。反而是兩種看上去很不搭的力--弱相互作用力(3 種玻色子,范圍在原子核大小內(nèi))和電磁力首先被統(tǒng)一了(電弱統(tǒng)一理論)。而引力恰恰是目前最難統(tǒng)一的,也就是愛因斯坦的直覺走反了。我很擔(dān)心 Hinton 也會如此。

  不過即使愛因斯坦沒有成功,后人也為其所激勵,繼續(xù)扛起 GUT 的大旗推動物理前沿;對于 Hinton 我想也是一樣。

  尾注

  Hinton 曾經(jīng)在 1987 年左右發(fā)明了 recirculation 算法代替 BP 來訓(xùn)練神經(jīng)網(wǎng)絡(luò),雖然不算特別成功,但是卻預(yù)言了后來神經(jīng)科學(xué)才發(fā)現(xiàn)的 spike timing-independent plasticity。

  Hinton 最初提出 capsule 的時候 (5 年前),幾乎「逢投必拒」,沒有人相信,但是 Hinton 自己一致堅信這一點,并且一直堅持到現(xiàn)在。

  在吳恩達(dá)對其采訪中,Hinton 對未來的趨勢(對 CS 從業(yè)者)的一句很有意思的描述:showing computers is going to be as important as programming computers.

  參考文獻(xiàn)

  [1] 2017 年 8 月 17 日,于加拿大多倫多大學(xué) Fields Institute,Hinton 的報告 https://www.youtube.com/watch?v=Mqt8fs6ZbHk

  [2] 2017 年 4 月 3 日發(fā)布 Brain & Cognitive Sciences 于 MIT,Hinton 的報告 https://www.youtube.com/watch?v=rTawFwUvnLE

  [3] 媒體報道 Hinton 要將當(dāng)前的深度學(xué)習(xí)核心算法推倒重來 Artificial intelligence pioneer says we need to start over

  [4] Fei-Fei Li 在 Twitter 上的評論: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.


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容