Hinton最新访谈丨他如何看待谷歌胶囊网络专利、神经科学以及下一代AI?
本文作者:林檎、Hugo
Geoff Hinton 是公認(rèn)的深度學(xué)習(xí)先驅(qū)。2018 年,他與 Yoshua Bengio、Yann LeCun 共同獲得了圖靈獎(jiǎng)。而在這之前的一年,他提出了一個(gè)想法 —— 膠囊網(wǎng)絡(luò)(Capsule Network)。這是卷積神經(jīng)網(wǎng)絡(luò)的替代方案,它考慮了物體在 3D 世界中的姿勢(shì),嘗試彌補(bǔ)當(dāng)今計(jì)算機(jī)視覺軟件學(xué)習(xí)能力上的不足,比如學(xué)會(huì)從不同的角度來(lái)識(shí)別同一個(gè)物體。
從那之后, Hinton 在學(xué)術(shù)界的公開活動(dòng)有所沉寂,直到 2020 年。2020 年 12 月,在 NeurIPS 上,他的團(tuán)隊(duì)介紹了一項(xiàng)堆疊式膠囊自動(dòng)編碼器(stacked capsule autoencoders)相關(guān)的研究成果。更早之前 2 月的 AAAI 會(huì)議上,他談到,膠囊網(wǎng)絡(luò)是無(wú)監(jiān)督學(xué)習(xí)的關(guān)鍵。4 月,Hinton 又重新提出了將反向傳播作為人類大腦中的一種學(xué)習(xí)功能,并介紹了近似反向傳播的算法 —— 用活動(dòng)差異表示神經(jīng)梯度(neural gradient representation by activity differences,簡(jiǎn)稱 NGRAD)。
近日,在播客節(jié)目 Eye on AI 中,受到播客主理人、紐約時(shí)報(bào)資深記者 Craig Smith 的邀請(qǐng),Hinton 進(jìn)一步分享了他對(duì)于膠囊網(wǎng)絡(luò)、下一代神經(jīng)網(wǎng)絡(luò) SimCLR 框架以及 NGRAD 這三大技術(shù)成果的一系列思考。“數(shù)據(jù)實(shí)戰(zhàn)派” 將 Hinton 的主要觀點(diǎn)整理如下:
談關(guān)于膠囊網(wǎng)絡(luò)和膠囊自動(dòng)編碼器
提出膠囊網(wǎng)絡(luò)之后,它已經(jīng)有所改變,而且更多的變化正在發(fā)生。
最初,我們用的是監(jiān)督式學(xué)習(xí),我們認(rèn)為這樣很容易讓它運(yùn)轉(zhuǎn)起來(lái),盡管我并不相信監(jiān)督式學(xué)習(xí)。而在去年,我們換成了無(wú)監(jiān)督學(xué)習(xí),改用 Set Transformers。
膠囊網(wǎng)絡(luò)做的是通過(guò)識(shí)別部分和部分之間的關(guān)系來(lái)識(shí)別整個(gè)物體。
如果你看到一個(gè)可能是眼睛的東西,以及一個(gè)可能是鼻子的東西,前者對(duì)應(yīng)一個(gè)臉部的位置,后者對(duì)應(yīng)一個(gè)臉部的位置。如果它們指向的臉的位置達(dá)成某種一致,那么你就會(huì)判斷,嘿,它們的關(guān)系是正確的,可以做一張臉,所以我們將實(shí)例化一張臉。我們將激活臉部膠囊。
這里面有各種問(wèn)題。其中一個(gè)問(wèn)題是,你是否嘗試在有監(jiān)督或無(wú)監(jiān)督的情況下訓(xùn)練它,使用無(wú)監(jiān)督會(huì)更好,因?yàn)檫@樣就不需要標(biāo)簽。但是另一個(gè)問(wèn)題,如果你看到比如說(shuō)直線線條中有一個(gè)圓狀物,你不知道它是左眼還是右眼,或者是汽車的前輪后輪。
所以,要為該圓狀物可能對(duì)應(yīng)的各種存在 vote。
現(xiàn)在發(fā)生的情況是,每一個(gè)更高級(jí)別的膠囊都會(huì)得到一大堆 votes,幾乎所有都是錯(cuò)誤的。但是有一種方法可以糾正這種情況,那就是說(shuō),如果有其他膠囊喜歡這個(gè) vote,如果有其他膠囊可以利用這個(gè) vote,成為這個(gè)對(duì)象的一部分,那么就把這個(gè) vote 導(dǎo)向到那里,而不是這里。
這就是動(dòng)態(tài)路徑選擇(dynamic routing)的想法。嘗試讓所有的錯(cuò)誤的 votes 去到它們可以作為正確 votes 的地方。
這是很復(fù)雜的工作。我們?cè)诙询B膠囊自動(dòng)編碼器中使用的替代方法是,如果你發(fā)現(xiàn)了一些部件,假設(shè)是一個(gè)圓形、一個(gè)三角形和一個(gè)矩形,你并不知道它們是誰(shuí)的部件,它們可能是很多很多東西的一部分。你要做的是讓它們相互作用一下,利用它們之間的空間關(guān)系,讓每個(gè)部分更加確信自己是什么樣的部分。所以,如果你是一個(gè)圓,有一個(gè)三角形作為一個(gè)鼻子出現(xiàn)在你右邊的位置,如果你是一個(gè)左眼,那么格外確認(rèn)這一點(diǎn)。而這正是 transformers 非常擅長(zhǎng)的地方。
在語(yǔ)言的情況下, transformers 對(duì)詞語(yǔ)片段有一個(gè)表示。例如,“may” 這個(gè)詞恰好是一個(gè)完整的單詞, transformers 不知道它表示 “愿意”、“應(yīng)該” 的意思,還是像 “六月” 和 “七月” 一樣表示一個(gè)月份。transformers 所做的是,讓這個(gè)片段的表示與其他片段的表示相互作用。如果句子中還有另一個(gè)片段,比如說(shuō) “六月”,那么 “may” 就更像是在說(shuō)一個(gè)月份。而如果有另一個(gè)片段是,“會(huì)” 或 “應(yīng)該”,“may” 就會(huì)更像一種情態(tài)動(dòng)詞。經(jīng)過(guò)幾層之后,這些片段可以消除歧義。也就是說(shuō),每個(gè)片段都意味著什么是可知的。
在語(yǔ)言中,這意味著對(duì)這個(gè)詞存在著一個(gè)上下文敏感的表達(dá),它在不同的意義之間消除了歧義。在視覺上,如果有一個(gè)圓,你想知道這個(gè)圓是眼睛,還是汽車的輪子,通過(guò)零件之間的相互作用,就可以做到這一點(diǎn)。在堆疊式膠囊自動(dòng)編碼器中,我們就是這么做的。
我們用第一層的各個(gè)部分讓它們相互作用。因此,它們對(duì)自己是哪類事物的哪一部分會(huì)更有信心。一旦對(duì)自己是什么樣的一部分更有信心,它們就會(huì)投票決定自己可能是什么樣的一部分,就能得到更具體、更有信心的 votes。
而且不會(huì)有很多瘋狂的 votes。一旦你確信一個(gè)圓圈可能是左眼,它就不會(huì)投票贊成成為汽車的后輪。這意味著容易找到集群。我們做到了這一點(diǎn),而不是試圖通過(guò)監(jiān)督學(xué)習(xí),通過(guò)貼標(biāo)簽。堆疊式膠囊自動(dòng)編碼器學(xué)會(huì)了創(chuàng)造善于重構(gòu)部分的整體。這就是無(wú)監(jiān)督學(xué)習(xí)。
至于膠囊網(wǎng)絡(luò)專利的問(wèn)題,我不知道申請(qǐng)專利的全部動(dòng)機(jī)。但我認(rèn)為,谷歌對(duì)通過(guò)專利賺錢不感興趣。專利法保護(hù)的是第一個(gè)申請(qǐng)專利的人,不是第一個(gè)發(fā)明的人。所以,申請(qǐng)專利,只是為了保護(hù)。
談 SimCLR 框架
SimCLR 框架所要做的是說(shuō),我想學(xué)習(xí)用一種方式來(lái)表示一幅圖像的一個(gè)局部,使同一幅圖像的其他局部具有相似的表示。所以,你要做的是,先截取一幅圖像,然后再截取另一幅圖像。
再來(lái)一個(gè)神經(jīng)網(wǎng)絡(luò),把它們轉(zhuǎn)換成向量表示,轉(zhuǎn)換成神經(jīng)活動(dòng)的模式。我們希望這些模式是相似的。如果它們來(lái)自同一個(gè)圖像,你必須使它們相似;如果它們來(lái)自不同的圖像,你必須使它們不同。這就是對(duì)比學(xué)習(xí)。
事實(shí)上,與這個(gè)想法相關(guān)的第一個(gè)研究,是我在 1993 年與 Sue Becker 合作的研究,然后是我在 2002 年的研究。但我們從來(lái)沒有真正讓它在圖像上起到很好的作用,其他人在 2018 年重新提出了這個(gè)想法,并讓對(duì)比學(xué)習(xí)在大規(guī)模圖像數(shù)據(jù)上發(fā)揮作用。后來(lái) Google lab in Toronto 的 Ting Chen 讓這個(gè)想法達(dá)到了新的高度。
一旦你有了這個(gè)圖像局部的表征,或者,這個(gè)神經(jīng)網(wǎng)絡(luò)可以把這個(gè)局部轉(zhuǎn)換成一個(gè)表征,這樣你就可以得到相似的表征,兩個(gè)局部來(lái)自同一圖像,那么你就可以用這些表征來(lái)嘗試識(shí)別圖像中的物體是什么。這個(gè)階段是監(jiān)督學(xué)習(xí),但這不需要深深度網(wǎng)絡(luò)。
而我們的想法是,通過(guò)使用深度網(wǎng)絡(luò)來(lái)進(jìn)行無(wú)監(jiān)督學(xué)習(xí),嘗試為同一圖像的兩個(gè)不同的 patch 獲得相同的表征或非常相似的表征。而對(duì)于不同圖像的局部,則有不同的表示。像 Ting 用的是 ResNet,就直接學(xué)習(xí)把這些沒有額外隱藏層的表征變成類標(biāo)簽。這就叫線性分類器。
它里面沒有隱藏層。而且效果非常好。我們通過(guò)純無(wú)監(jiān)督學(xué)習(xí)得到的,基于這些表征的線性分類器,沒有標(biāo)簽知識(shí)的線性分類器,現(xiàn)在在 ImageNet 上和有監(jiān)督的方法一樣好。前提是對(duì)于無(wú)監(jiān)督學(xué)習(xí),我們使用更大的 ResNet。如果你在 ImageNet 上使用標(biāo)準(zhǔn)大小的 ResNet,會(huì)有一定的錯(cuò)誤率。
談大腦中的反向傳播與神經(jīng)科學(xué)
神經(jīng)科學(xué)家一直非常懷疑大腦是否存在類似反向傳播的機(jī)制。
其中一個(gè)大問(wèn)題是,大腦是如何傳遞神經(jīng)梯度的?因?yàn)樵诜聪騻鞑ブ?#xff0c;無(wú)論誤差函數(shù)是什么,都需要根據(jù)誤差的梯度來(lái)改變權(quán)重。它的原理是用神經(jīng)活動(dòng)的變化率來(lái)表示誤差。
這很好理解,因?yàn)樗梢杂袃蓚€(gè)標(biāo)志,也就是說(shuō),神經(jīng)活動(dòng)可以上升也可以下降,所以可以用這兩個(gè)標(biāo)志來(lái)表示誤差。這也暗示了使用神經(jīng)梯度的學(xué)習(xí)規(guī)則,一種叫做脈沖時(shí)間依賴的可塑性( spike timing dependent plasticity,STDP)的機(jī)制。也就是說(shuō),當(dāng)改變突觸強(qiáng)度時(shí),它會(huì)隨著誤差導(dǎo)數(shù)的變化而變化。
這意味著根據(jù)突觸后活動(dòng)性的變化率來(lái)改變它,即突觸前活動(dòng)乘以突觸后活動(dòng)的變化率。這就是 STDP。事實(shí)上,我很久以來(lái)一直在建議使用神經(jīng)活動(dòng)差異。
我和 James McClelland 在 1987 年有一篇論文,提出神經(jīng)活動(dòng)的時(shí)間差異可以用作誤差導(dǎo)數(shù)。那是在發(fā)現(xiàn)脈沖時(shí)間依的可塑性之前。到 2005 年,我又對(duì)活動(dòng)差異產(chǎn)生了興趣。最近,人們已經(jīng)成功地讓它發(fā)揮了作用。
到現(xiàn)在,我還是有點(diǎn)懷疑。我認(rèn)為大腦可以做反向傳播,如果它想的話。大腦有點(diǎn)笨拙,我現(xiàn)在對(duì)此持懷疑態(tài)度,因?yàn)槲艺J(rèn)為反向傳播算法對(duì)大腦來(lái)說(shuō)太適合了。大腦實(shí)際上處理的問(wèn)題與大多數(shù)神經(jīng)網(wǎng)絡(luò)處理的問(wèn)題非常不同。
大多數(shù)神經(jīng)網(wǎng)絡(luò)想要獲得大量用有限的參數(shù)來(lái)表示的知識(shí),例如,10 億個(gè)參數(shù)。對(duì)于大腦來(lái)說(shuō),這參數(shù)太小了。這是大概一立方毫米的大腦所擁有的參數(shù)的數(shù)量。我們的大腦有無(wú)數(shù)的參數(shù)。
但是,大腦無(wú)法進(jìn)行很多訓(xùn)練。因?yàn)槲覀冎荒芑钍畠|秒或二十億秒。
所以,我們的大腦擁有大量的參數(shù)但是沒有太多的經(jīng)驗(yàn)。而大部分神經(jīng)網(wǎng)絡(luò)能接受大量的訓(xùn)練,但是沒有太多的參數(shù)。現(xiàn)在,如果有很多很多的參數(shù)卻沒有多少訓(xùn)練數(shù)據(jù),我認(rèn)為就需要做一些不同于反向傳播算法的事。
我對(duì)可以讓這種活動(dòng)差異法很好地工作的方法很感興趣。這種方法試圖在自頂向下表示和自底向上表示之間產(chǎn)生一致性。比如說(shuō),如果你已經(jīng)有了一些零件的層次結(jié)構(gòu),你就能通過(guò)查看圖像在不同的級(jí)別將部件實(shí)例化。
然后從高級(jí)別的部分,從上到下預(yù)測(cè)低級(jí)別的部分。你希望看到的是自頂向下的預(yù)測(cè)(取決于較大的上下文)與自下而上的零件提取(取決于較小的上下文)之間的一致性。所以,從圖像的局部區(qū)域中提取一部分,從這些部分中,你可以預(yù)測(cè)整體。從整體上,你自上而下地預(yù)測(cè)各個(gè)部分。但這些對(duì)部分的預(yù)測(cè)需要使用更多的信息,因?yàn)樗鼈兪腔谡w的,所以需要的信息也更多。
你想要的是,自頂向下的預(yù)測(cè)和自底向上提取之間的一致性。而且,你希望它是特別一致的。你真正想要的是在同一幅圖像上,它們是一致的,但在不同的圖像上它們是不一致的。所以,如果從一張圖片和自上而下的預(yù)測(cè)或另一張圖片中提取部分,它們應(yīng)該是不一致的。
這就是 SimCLR 中的對(duì)比學(xué)習(xí)。但它也提出了一種不同于反向傳播的大腦學(xué)習(xí)算法。我非常興奮。它不像反向傳播那樣有效,但它更容易植入大腦,因?yàn)槟悴恍枰聪騻鞑ズ芏鄬印?/p>
只需要比較自上而下的預(yù)測(cè)和自下而上的預(yù)測(cè)。我稱它為 back relaxation。而且,在許多步驟中,它將向后獲取信息,但是在試用中不會(huì)向后獲取信息。反向傳播會(huì)在一幅圖像的單個(gè)表示上通過(guò)多層網(wǎng)絡(luò)向后發(fā)送信息,而 back relaxation 每次僅將其返回到一層,并且它需要對(duì)同一圖像進(jìn)行多次表示才能完全返回。
因此,我對(duì)這種 back relaxation 算法真的很感興趣,這或許可以解釋大腦如何進(jìn)行多層網(wǎng)絡(luò)的學(xué)習(xí)。但是后來(lái)我發(fā)現(xiàn)那種純粹的、貪心的自下而上學(xué)習(xí)算法也差不多。我沒有足夠仔細(xì)地進(jìn)行控制。我在 2006 年引入的自底向上算法實(shí)際上可以很好地解決此問(wèn)題。
這讓我感到非常失望。我仍然想看看我是否可以使 back relaxation 算法比貪心的自下而上算法更好。
人們喜歡這種自上而下的預(yù)測(cè),并使其與自下而上的提取相一致。你會(huì)希望這比一次一層地訓(xùn)練一堆自動(dòng)編碼器要好。否則就不值得這么做,訓(xùn)練一堆自動(dòng)編碼器,每次隱藏一層,結(jié)果證明是很好的。
最近在這些大型神經(jīng)網(wǎng)絡(luò)中發(fā)生的事情是,深度學(xué)習(xí)在 2006 年左右真正開始發(fā)展,我們發(fā)現(xiàn)如果訓(xùn)練一堆自動(dòng)編碼器或受限玻爾茲曼機(jī)器時(shí),一次一層微調(diào)它,它能工作得很好。
這讓神經(jīng)網(wǎng)絡(luò)再次運(yùn)轉(zhuǎn)起來(lái)。然后人們做了像演講這樣的事情。在 ImageNet 上,他們說(shuō)不需要預(yù)先訓(xùn)練,不需要訓(xùn)練這些自動(dòng)編碼器,可以在監(jiān)督下訓(xùn)練它。
這在一段時(shí)間內(nèi)是沒問(wèn)題的。但是當(dāng)?shù)玫礁蟮臄?shù)據(jù)集和更大的網(wǎng)絡(luò)時(shí),人們又回到了無(wú)監(jiān)督的預(yù)訓(xùn)練。這就是 Bert 所做的。Bert 是無(wú)人監(jiān)督的預(yù)訓(xùn)練。GPT-3 使用無(wú)監(jiān)督的預(yù)訓(xùn)練。這一點(diǎn)現(xiàn)在很重要。我們確實(shí)需要一些無(wú)監(jiān)督學(xué)習(xí)算法。但是無(wú)監(jiān)督學(xué)習(xí)算法現(xiàn)在變得更加復(fù)雜。
計(jì)算神經(jīng)科學(xué)的巨大成功是利用 Rich Sutton 等人在時(shí)間差異方面所做的工作,并將其與大腦和多巴胺的實(shí)驗(yàn)研究聯(lián)系起來(lái)。尤其是 Peter Dayan,他非常重要地展示了理論學(xué)習(xí)算法和大腦中實(shí)際發(fā)生的事情之間的關(guān)系。但這是關(guān)于強(qiáng)化學(xué)習(xí)的。
我認(rèn)為強(qiáng)化學(xué)習(xí)是錦上添花。大部分的學(xué)習(xí)都是無(wú)監(jiān)督學(xué)習(xí)。你必須了解世界是如何運(yùn)作的,但不是通過(guò)強(qiáng)化信號(hào)來(lái)了解。你不會(huì)想通過(guò)蹩腳的方法來(lái)學(xué)習(xí)視覺。你要學(xué)習(xí)用其他的方法來(lái)做視覺。
我人生的主要目標(biāo)是了解大腦是如何工作的,而所有這些試圖了解大腦是如何工作的技術(shù),并不能解釋真正的大腦是如何工作的。它是有用的副產(chǎn)品。
但這不是我真正想要的。
膠囊網(wǎng)絡(luò)、SimCLR、NGRAD 會(huì) “合并” 嗎?
如果你的研究已經(jīng)有一段時(shí)間了,你會(huì)有很多關(guān)于事物應(yīng)該如何發(fā)展的深刻直覺,然后你會(huì)有一些特定的項(xiàng)目,這些特定的實(shí)例也會(huì)與這些直覺相結(jié)合。通常看起來(lái)很獨(dú)立的項(xiàng)目最終會(huì)合并。但就目前而言,膠囊網(wǎng)絡(luò)的工作有些不同。盡管這三個(gè)都可以合并在一起。
如果我們能從上到下的預(yù)測(cè)和從下到上的預(yù)測(cè)在一個(gè)對(duì)比的意義上一致,也就是說(shuō),它們對(duì)相同的圖像很一致,對(duì)不同的圖像很不同,這將適合堆疊式膠囊自編碼器。
但它也是一個(gè)對(duì)比學(xué)習(xí)的例子,就像 SimCLR 一樣。這也可以解釋大腦如何學(xué)習(xí)多層網(wǎng)絡(luò)。所以很明顯,我和很多人一樣,想找出所有問(wèn)題的解決方案。只是,我們得更現(xiàn)實(shí)一點(diǎn),我們只能了解其中的一部分,不可能一下子得到所有的東西。
堆疊膠囊自動(dòng)編碼器的一個(gè)重要?jiǎng)訖C(jī)是,它會(huì)有更像我們用的表示方式。
一個(gè)經(jīng)典的例子是,如果有一個(gè)旋轉(zhuǎn)了 45 度的正方形,你有兩種完全不同的方式來(lái)感知它。一個(gè)是傾斜的正方形,另一個(gè)是直立的菱形。這取決于你使用的表示方式。卷積網(wǎng)絡(luò)沒有兩種不同的表示方式。
它們只有一種表示。為了得到兩種不同的表示方式,你需要一個(gè)參照系。我們感知的一個(gè)非常強(qiáng)烈的特征是,我們給事物強(qiáng)加了參照系并根據(jù)這些參照系來(lái)理解它們。如果強(qiáng)加一個(gè)不同的框架,那么對(duì)事情的理解就會(huì)完全不同。
這是制作堆疊膠囊自動(dòng)編碼器的主要?jiǎng)訖C(jī)之一。它也是一個(gè)計(jì)算機(jī)圖形處理算法。所以,在計(jì)算機(jī)圖形學(xué)中,你用一個(gè)特定的坐標(biāo)系來(lái)代表一個(gè)房子。然后相對(duì)于那個(gè)坐標(biāo)系,你才能知道窗戶和門的位置。
這就是我們?cè)谏窠?jīng)網(wǎng)絡(luò)中需要的表現(xiàn)方式,如果神經(jīng)網(wǎng)絡(luò)在表達(dá)對(duì)象方面更像我們的話。目前深度神經(jīng)網(wǎng)絡(luò)非常擅長(zhǎng)分類,它們的分類方式與人類完全不同。所以,他們更依賴于紋理之類的東西。
它們可以看到各種我們不敏感的復(fù)雜紋理。這就是為什么會(huì)有這種情況,兩個(gè)東西在我們看來(lái)完全不同,但在神經(jīng)網(wǎng)絡(luò)看來(lái)是相似的。
Refrence:
https://www.eye-on.ai/
關(guān)于數(shù)據(jù)實(shí)戰(zhàn)派
數(shù)據(jù)實(shí)戰(zhàn)派希望用真實(shí)數(shù)據(jù)和行業(yè)實(shí)戰(zhàn)案例,幫助讀者提升業(yè)務(wù)能力,共建有趣的大數(shù)據(jù)社區(qū)。
總結(jié)
以上是生活随笔為你收集整理的Hinton最新访谈丨他如何看待谷歌胶囊网络专利、神经科学以及下一代AI?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android控件Recy,Androi
- 下一篇: 从“富客户端”(RIA)说到 Flex