博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 75歲Hinton中國(guó)大會(huì)最新演講「通往智能的兩種道路」,最后感慨:我已經(jīng)老了,未來(lái)交給年輕人(2)

75歲Hinton中國(guó)大會(huì)最新演講「通往智能的兩種道路」,最后感慨:我已經(jīng)老了,未來(lái)交給年輕人(2)

發(fā)布人:機(jī)器之心 時(shí)間:2023-06-12 來(lái)源:工程師 發(fā)布文章

可朽計(jì)算面臨的問(wèn)題:反向傳播不可用


在特定硬件上執(zhí)行可朽計(jì)算的學(xué)習(xí)時(shí),就需要讓程序?qū)W習(xí)利用該硬件的特定模擬屬性,但它們無(wú)需知道這些屬性究竟是什么。舉個(gè)例子,它們無(wú)需知道究竟神經(jīng)元的內(nèi)部連接方式究竟是怎樣的,該神經(jīng)元的輸入和輸出又是通過(guò)什么函數(shù)關(guān)聯(lián)起來(lái)的。


圖片


這意味著我們不能使用反向傳播算法來(lái)獲取梯度,因?yàn)榉聪騻鞑バ枰粋€(gè)確切的前向傳播模型。


那么既然可朽計(jì)算不能使用反向傳播,我們又該怎么做呢?下面來(lái)看看在模擬硬件上執(zhí)行的一個(gè)簡(jiǎn)單學(xué)習(xí)過(guò)程,其中用到的方法稱(chēng)為權(quán)重?cái)_動(dòng)。


圖片


首先,為網(wǎng)絡(luò)中的每個(gè)權(quán)重生成一個(gè)隨機(jī)向量,該向量由隨機(jī)的小擾動(dòng)構(gòu)成。然后,基于一個(gè)或少量樣本,測(cè)量全局目標(biāo)函數(shù)在使用這個(gè)擾動(dòng)向量后的變化情況。最后,根據(jù)目標(biāo)函數(shù)的提升情況,將該擾動(dòng)向量帶來(lái)的效果按比例尺度永久化到權(quán)重之中。


這個(gè)算法的優(yōu)點(diǎn)是其大致上的行為模式與反向傳播一致,同樣遵循梯度。但問(wèn)題是它具有非常高的方差。因此,當(dāng)網(wǎng)絡(luò)規(guī)模增大時(shí),在權(quán)重空間中選擇隨機(jī)移動(dòng)方向時(shí)所產(chǎn)生的噪聲會(huì)很大,讓這個(gè)方法難以為繼。這就意味著這種方法僅適用于小型網(wǎng)絡(luò),不適用于大型網(wǎng)絡(luò)。


圖片


另一種方法是活動(dòng)擾動(dòng),雖然它也存在類(lèi)似的問(wèn)題,但也能更好地用于更大型的網(wǎng)絡(luò)。


圖片


活動(dòng)擾動(dòng)方法是要用隨機(jī)向量對(duì)每個(gè)神經(jīng)元的整體輸入執(zhí)行擾動(dòng),然后在一小批樣本下觀察目標(biāo)函數(shù)的變化情況,再計(jì)算如何改變?cè)撋窠?jīng)元的權(quán)重以遵循梯度。


與權(quán)重?cái)_動(dòng)相比,活動(dòng)擾動(dòng)的噪聲要小得多。并且這種方法已經(jīng)足以學(xué)習(xí) MNIST 這樣的簡(jiǎn)單任務(wù)。如果你使用非常小的學(xué)習(xí)率,那么它的行為就與反向傳播完全一樣,但速度要慢得多。而如果學(xué)習(xí)率較大,那么噪聲會(huì)很多,但也足夠應(yīng)對(duì) MNIST 這樣的任務(wù)。


但是如果我們的網(wǎng)絡(luò)規(guī)模還要更大呢?Hinton 提到了兩種方法。


第一種方法是使用巨量目標(biāo)函數(shù),也就是說(shuō)不使用單個(gè)函數(shù)來(lái)定義大型神經(jīng)網(wǎng)絡(luò)的目標(biāo),而是使用大量函數(shù)來(lái)定義網(wǎng)絡(luò)中不同神經(jīng)元集團(tuán)的局部目標(biāo)。


圖片


這樣一來(lái),大型神經(jīng)網(wǎng)絡(luò)就被化整為零,我們就能使用活動(dòng)擾動(dòng)來(lái)學(xué)習(xí)小型的多層神經(jīng)網(wǎng)絡(luò)。但問(wèn)題來(lái)了:這些目標(biāo)函數(shù)從何而來(lái)?


圖片


其中一種可能性是在不同層級(jí)的局部圖塊上使用無(wú)監(jiān)督對(duì)比學(xué)習(xí)。其工作方式是這樣的:一個(gè)局部圖塊有多個(gè)表示層級(jí),在每個(gè)層級(jí),該局部圖塊會(huì)盡力與同一圖像的所有其它局部圖塊產(chǎn)生的平均表示保持一致;與此同時(shí),還要盡力與其它圖像在該層級(jí)的表示保持差異。


Hinton 表示該方法在實(shí)踐中的表現(xiàn)很不錯(cuò)。大概的做法是讓每個(gè)表示層級(jí)都具有多個(gè)隱藏層,這樣可以進(jìn)行非線(xiàn)性的操作。這些層級(jí)使用活動(dòng)擾動(dòng)來(lái)進(jìn)行貪婪學(xué)習(xí)并且不會(huì)反向傳播到更低層級(jí)。由于它不能像反向傳播那樣傳遞很多層,因此不會(huì)像反向傳播那樣強(qiáng)大。


實(shí)際上這正是 Hinton 團(tuán)隊(duì)近些年最重要的研究成果之一,詳情可參閱機(jī)器之心的報(bào)道《放棄反向傳播后,Geoffrey Hinton 參與的前向梯度學(xué)習(xí)重磅研究來(lái)了》。


圖片


Mengye Ren 通過(guò)大量研究表明該方法是能夠在神經(jīng)網(wǎng)絡(luò)中實(shí)際生效的,但操作起來(lái)卻很復(fù)雜,實(shí)際效果也還趕不上反向傳播。如果大型網(wǎng)絡(luò)的深度更深,那么它與反向傳播的差距還會(huì)更大。


Hinton 表示這個(gè)能利用模擬屬性的學(xué)習(xí)算法只能說(shuō)還算 OK,足以應(yīng)對(duì) MNIST 這樣的任務(wù),但也并不是真正好用,比如在 ImageNet 任務(wù)上的表現(xiàn)就不是很好。


可朽計(jì)算面臨的問(wèn)題:知識(shí)的傳承


可朽計(jì)算面臨的另一個(gè)主要問(wèn)題是難以保證知識(shí)的傳承。由于可朽計(jì)算與硬件高度相關(guān),因此無(wú)法通過(guò)復(fù)制權(quán)重來(lái)復(fù)制知識(shí),這就意味著當(dāng)特定的硬件「死去」時(shí),其學(xué)習(xí)到的知識(shí)也會(huì)一并消失。


Hinton 說(shuō)解決該問(wèn)題的最好方法是在硬件「死去」之前,將知識(shí)傳遞給學(xué)生。這類(lèi)方法被稱(chēng)為知識(shí)蒸餾(knowledge distillation),這一概念是 Hinton 在 2015 年與 Oriol Vinyals 和 Jeff Dean 合著的論文《Distilling the Knowledge in a Neural Network》中最早提出的。


圖片


這一概念的基本思路很簡(jiǎn)單,就類(lèi)似于教師教授學(xué)生知識(shí):教師向?qū)W生展示不同輸入的正確響應(yīng),學(xué)生嘗試模仿教師的響應(yīng)。


Hinton 使用了美國(guó)前總統(tǒng)特朗普發(fā)推文為例來(lái)進(jìn)行直觀的說(shuō)明:特朗普發(fā)推時(shí)常常會(huì)對(duì)各種事件做出非常情緒化的回應(yīng),這會(huì)促使其追隨者改變自己的「神經(jīng)網(wǎng)絡(luò)」,從而產(chǎn)生同樣的情緒反應(yīng);這樣一來(lái),特朗普就將偏見(jiàn)蒸餾到了其追隨者的頭腦中,就像「邪教」——Hinton 很顯然并不喜歡特朗普。


知識(shí)蒸餾方法的效果如何呢?考慮到特朗普擁躉眾多,效果應(yīng)該不會(huì)差。Hinton 使用了一個(gè)例子進(jìn)行解釋?zhuān)杭僭O(shè)一個(gè)智能體需要將圖像歸類(lèi)到 1024 個(gè)互不重疊的類(lèi)別。


圖片


要指認(rèn)出正確答案,我們只需要 10 比特信息。因此,要訓(xùn)練該智能體正確識(shí)別一個(gè)特定樣本,只需要提供 10 比特信息來(lái)約束其權(quán)重即可。


但假如我們訓(xùn)練一個(gè)智能體使之與一個(gè)教師在這 1024 個(gè)類(lèi)別上的概率大致保持一致呢?也就是說(shuō),使該智能體的概率分布與該教師一樣。這個(gè)概率分布有 1023 個(gè)實(shí)數(shù),如果這些概率都不是很小,那么其提供的約束就增多了幾百倍。


圖片


為了確保這些概率不是太小,可以「高溫」運(yùn)行教師,在訓(xùn)練學(xué)生時(shí)也以「高溫」運(yùn)行學(xué)生。比如說(shuō),如果采用的是 logit,那就是輸入 softmax 的東西。對(duì)于教師來(lái)說(shuō),可以基于溫度參數(shù)對(duì)其進(jìn)行縮放,進(jìn)而得到一個(gè)更 soft 的分布;然后在訓(xùn)練學(xué)生時(shí)使用同樣的溫度。


下面來(lái)看一個(gè)具體的例子。下圖是來(lái)自 MNIST 訓(xùn)練集的字符 2 的一些圖像,對(duì)應(yīng)的右側(cè)是當(dāng)運(yùn)行教師的溫度高時(shí),教師為每張圖像分配的概率。


圖片


對(duì)于第一行,教師確信它是 2;教師對(duì)第二行也有信心是 2,但它也認(rèn)為可能是 3 或 8。第三行則有些像 0。對(duì)于這個(gè)樣本,教師應(yīng)該說(shuō)這是一個(gè) 2,但也應(yīng)該留點(diǎn)可能性給 0。這樣一來(lái),比起直接告訴學(xué)生這是 2,學(xué)生能從中學(xué)到更多。


對(duì)于第四行,可以看到教師有信心它是 2,但它也認(rèn)為有點(diǎn)可能是 1,畢竟有時(shí)候我們寫(xiě)的 1 就類(lèi)似于圖左側(cè)畫(huà)的那樣。


對(duì)于第五行,教師出錯(cuò)了,認(rèn)為它是 5(但根據(jù) MNIST 標(biāo)簽應(yīng)該是 2)。學(xué)生也能從教師的錯(cuò)誤中學(xué)到很多。


蒸餾有一個(gè)很特殊的性質(zhì),那就是當(dāng)使用教師給出的概率來(lái)訓(xùn)練學(xué)生時(shí),那就在訓(xùn)練學(xué)生以老師那樣的方式來(lái)進(jìn)行泛化。如果教師為錯(cuò)誤答案分配了一定的小概率,那么也會(huì)訓(xùn)練學(xué)生泛化到錯(cuò)誤答案。


圖片


通常來(lái)說(shuō),我們訓(xùn)練模型是為了讓模型在訓(xùn)練數(shù)據(jù)上得到正確答案,并能將這種能力泛化到測(cè)試數(shù)據(jù)上。但使用教師 - 學(xué)生訓(xùn)練模式時(shí),我們是直接訓(xùn)練學(xué)生的泛化能力,因?yàn)閷W(xué)生的訓(xùn)練目標(biāo)是能與老師一樣地進(jìn)行泛化。


很顯然,我們可以創(chuàng)建更豐富的輸出以供蒸餾。比如說(shuō)我們可以為每張圖像賦予一個(gè)描述,而不僅僅是單個(gè)標(biāo)簽,然后再訓(xùn)練學(xué)生來(lái)預(yù)測(cè)這些描述中的詞。


圖片


接下來(lái),Hinton 談到了在智能體群中共享知識(shí)的研究。這也是一種傳承知識(shí)的方式。


圖片


當(dāng)多個(gè)智能體構(gòu)成的社群互相共享知識(shí)時(shí),共享知識(shí)的方式能在很大程度上決定計(jì)算執(zhí)行的方式。


圖片


對(duì)于數(shù)字模型,我們可以通過(guò)復(fù)制創(chuàng)建大量使用相同權(quán)重的智能體。我們可以讓這些智能體查看訓(xùn)練數(shù)據(jù)集的不同部分,讓它們各自基于不同部分的數(shù)據(jù)計(jì)算權(quán)重的梯度,然后再對(duì)這些梯度進(jìn)行平均。這樣一來(lái),每個(gè)模型都學(xué)到了其它每個(gè)模型學(xué)到的知識(shí)。這種訓(xùn)練策略的好處是能高效處理大量數(shù)據(jù);如果模型很大,就可以在每次共享中共享大量比特。


同時(shí),由于這種方法需要各個(gè)智能體的工作方式完全一樣,因此就只能是數(shù)字模型才行。


權(quán)重共享的成本也很高。要讓不同的硬件以同樣的方式工作,就需要以極高的精準(zhǔn)率生產(chǎn)計(jì)算機(jī),使得它們?cè)趫?zhí)行相同的指令時(shí)總是會(huì)得到相同的結(jié)果。另外,晶體管的功耗也不低。



*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉