博客專欄

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

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

發(fā)布人:機器之心 時間:2023-06-12 來源:工程師 發(fā)布文章

可朽計算面臨的問題:反向傳播不可用


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


圖片


這意味著我們不能使用反向傳播算法來獲取梯度,因為反向傳播需要一個確切的前向傳播模型。


那么既然可朽計算不能使用反向傳播,我們又該怎么做呢?下面來看看在模擬硬件上執(zhí)行的一個簡單學習過程,其中用到的方法稱為權(quán)重擾動。


圖片


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


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


圖片


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


圖片


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


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


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


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


圖片


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


圖片


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


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


實際上這正是 Hinton 團隊近些年最重要的研究成果之一,詳情可參閱機器之心的報道《放棄反向傳播后,Geoffrey Hinton 參與的前向梯度學習重磅研究來了》。


圖片


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


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


可朽計算面臨的問題:知識的傳承


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


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


圖片


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


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


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


圖片


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


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


圖片


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


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


圖片


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


對于第四行,可以看到教師有信心它是 2,但它也認為有點可能是 1,畢竟有時候我們寫的 1 就類似于圖左側(cè)畫的那樣。


對于第五行,教師出錯了,認為它是 5(但根據(jù) MNIST 標簽應(yīng)該是 2)。學生也能從教師的錯誤中學到很多。


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


圖片


通常來說,我們訓(xùn)練模型是為了讓模型在訓(xùn)練數(shù)據(jù)上得到正確答案,并能將這種能力泛化到測試數(shù)據(jù)上。但使用教師 - 學生訓(xùn)練模式時,我們是直接訓(xùn)練學生的泛化能力,因為學生的訓(xùn)練目標是能與老師一樣地進行泛化。


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


圖片


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


圖片


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


圖片


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


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


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



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



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉