Geoffrey Hinton 最新訪談:不出五年,我們就會破解大腦的運作機制,但不是通過反向傳播
過去十年,AI 在計算機視覺、語音識別、機器翻譯、機器人、醫學、計算生物學、蛋白質折疊預測等等領域取得了一個又一個突破,而這些突破的背后,均離不開深度學習。那么,深度學習起源于何時何地,又在何時成為最突出的AI方法?
最近,UC伯克利教授、深度學習專家Pieter Abbeel在其播客節目《機器人大腦》(Robot Brains)中,對Geoffrey Hinton進行了一次訪談。
曾獲得2018年圖靈獎的Hinton,被稱為「深度學習三巨頭」之一,是人工智能史上最重要的學者之一。他的論文被引用了50多萬次,這意味著,有50萬篇以上的研究論文是建立在他的研究之上。
他在深度學習領域已經研究了大約半個世紀,大部分時間相對默默無聞,但在2012年,事情發生了轉折:那一年,憑借AlexNet在ImageNet比賽的勝出,他證明了深度學習在圖像識別方面比其他計算機視覺的方法具備更大的優勢。這被稱為「ImageNet時刻」,改變了整個AI領域,掀起了深度學習的浪潮。
在這次對話中,Hinton講述了他從學術界到谷歌大腦的工作經歷、學習心理學和當木匠的經歷,以及可視化技術t-SNE算法背后的歷史,并就一些問題發表了他的觀點,包括:
- 現有的神經網絡和反向傳播算法與大腦的運作方式有何不同?
- 為什么我們需要無監督的局部目標函數?
- 睡眠和玻爾茲曼機的功能是什么?
- 為什么培育計算機比制造計算機更好?
- 為什么需要負面數據?
- 如今的大規模語言模型真正理解了語言嗎?
- ……
AI科技評論在不改變原意的基礎上對他們的訪談作了編輯與整理:
1 反向傳播不同于人腦運作方式
Abbeel:什么是神經網絡?我們為什么要關注它?
Hinton:我們的大腦是這樣工作的:
它有很多被稱為神經元的小處理元件,每隔一段時間,一個神經元就會發出 “ping”聲,而使它發出“ping”聲的原因是它聽到了其他神經元的“ping”聲。每次它聽到其他神經元的“ping”聲時,就會在它得到的一些輸入存儲中增加權重,當權重達到一定輸入后,它也會發出“ping”聲。
因此,如果你想知道大腦是如何工作的,你只需要知道神經元如何決定調整這些權重。有一些用于調整權重的程序,如果我們能夠把它們弄清楚,那我們就會知道大腦是如何工作的。我認為我們會在未來五年內破解這些程序。
我認為,所有現有的人工智能都是建立在與大腦高層次上所做的事情完全不同的基礎上。它必須趨于相同,當你有很多參數,假設你有數十億的參數,這些神經元間的權重在你大量訓練實例的基礎上去調整參數,就會發生奇妙的事情。大腦是這樣,深度學習也是這樣。問題在于,你如何獲得調整參數的梯度,因此你要思考衡量標準及想調整的參數,使它們來完善你想達成的措施。
但我目前的信念是,反向傳播,也即目前深度學習的工作方式,與大腦所做的完全不同,大腦是以不同的方式來獲得梯度的。
Abbeel:你寫過一篇關于訓練神經網絡的反向傳播的論文,它成為今天大家所做一切的動力,而現在你說是時候弄清楚我們是否應該做些改變了?是否應該將其向與大腦相似做努力?你是否認為反向傳播可以比大腦正在做的事更好?
Hinton:Rumelhart、Williams和我確實寫了關于反向傳播的論文(如下)、且被引用次數最多。
論文地址:http://www.cs.toronto.edu/~hinton/absps/naturebp.pdf
反向傳播已廣為人知。我們真正做的是表明了它可以學習有趣的表征,并非我們發明了反向傳播,而是重新定義了反向傳播。我們提出它可以學習有趣的表征,例如單詞嵌入,因此認為反向傳播可能比我們在大腦中的效率要高得多。將大量信息擠壓到少數幾個連接中,而少數幾個連接只有幾十億個,因此大腦的問題是連接非常便宜,有數以萬億計的連接, 而經驗是非常昂貴的,所以我們傾向于在少量經驗上投入大量參數。
而我們正在使用的神經網絡基本上是相反的。它們有很多的經驗,并試圖把輸入和輸出的信息聯系到參數中。我認為反向傳播比大腦使用的方法更有效,但并不擅長從不多的數據中抽象出很多結構。
Abbeel:對于這方面,你有什么可能獲得更好性能的方法的假設嗎?
Hinton:很長時間里我都認為,我們需要無監督目標函數。這里主要是指感知學習,如果你能通過觀察世界來學習模型,那你就可以基于這個模型、而非原始數據采取行動,這正確率更高。
我相信大腦使用了很多局部小的目標函數,它不是一種端到端的系統鏈,通過訓練來優化目標函數。
舉個例子,如果你看張圖像的一小塊,試圖提取些表征,可以將你從那小塊圖像中得到的表征、與通過附近其他斑塊的表征而得到的上下文語境進行比較,由此去預測該圖像中有什么。
一旦你對這個領域很熟悉,這些來自上下文的預測和本地提取的特征通常會一致。如果不一致,你也能從中學到很多。
我認為大腦可以從這種局部分歧中學到很多東西。可能在你看來,一個大圖像和圖像的許多小局部斑塊意味著很多反饋,即圖像中的局部提取和上下文預測的一致。我們可以從這些與上下文預測的一致中得到更豐富的反饋。要做到這一點很難,但我認為現在正沿著這條線發展。
Abbeel:你對SimCLR這項工作以及它與更普遍的學習的差異有什么看法?你怎么看待最近的MAE(Masked Autoencoders)?它與你剛才的描述有什么關系?
Hinton:我所得到的相關有證據表明,這種目標函數是好的。
我個人沒有寫過這篇論文,但在很久以前,曾與Sue Becker寫過一篇關于從圖像的兩個不同斑塊得到一致表征思考的論文。我認為,那是關于通過在同一圖像的兩個塊表征之間達成一致、來進行自監督學習的想法的起源。
Abbeel:我們來談一談你提到的使用端到端學習反向傳播來支持端到端學習的方法。你的意思是,以接近大腦的學習方式,即從更少的數據中學習、提取更多數據,將是在了解大腦運作方式上取得進展的關鍵。今天,很多人正在努力解決從無標簽數據中有效學習的問題,因為它需要的人力更少,但他們仍然使用跟反向傳播相同的機制。
Hinton:我不喜歡MAE的地方在于,你有一些輸入補丁,經過多層表征,在網絡的輸出中試圖重建缺失的輸入補丁。
我認為大腦有這些層次上的表征,但每個層都在試圖重構下面那個層次的內容。并不是說經歷了這么多層再返回,而是有這么多層,每一層都試圖重建下一層的東西。在我看來,這更像大腦,但問題在于:如果不使用反向傳播,你能做到這一點嗎?
顯然,如果通過多個層次重建輸出的缺失部分,你需要通過所有層次來獲得信息,而反向傳播已經內置于所有的模擬器中,但大腦并非如此。
Abbeel:想象一下,大腦在處理這些局部的目標時有三個選擇:一是我們想要優化的局部目標是什么?二是用什么算法來優化它?三是我們將神經元連接在一起進行學習的架構是什么?在這三個問題上,我們似乎都還沒有做得很好。你怎么看?
Hinton:如果你對認知學習感興趣,那就非常清楚。
你想要一個可視主題地圖,一種書寫主題地圖的層次結構,架構上是局部連接的。對此,你可以通過假設在反電子地圖上某個位置的東西是由其對應的視神經圖決定的,來解決很多信用分配問題。不需深入系統,而是使用局部交互、弄清楚像素在其中的作用。
目前,神經網絡所做的是,假設在每個局部性上使用相同函數,卷積神經網絡如此,transformer也如此。大腦不一定能做到這點,因為這會涉及權重共享,且要在每個地方做完全相同的計算。而有一種方法能達到權重共享的目標,那就是卷積,我認為它在大腦中能起到更有效的作用。
如果你想通過上下文預測同局部提取達成一致,那么想象一下,有一堆列在做本地預測,并通過查看附近的列以獲得其上下文預測。你可以把上下文看作是本地預測的老師,反之亦然。把上下文中的信息看作是被提煉到本地提取器中。由此可得到的是相互提煉,它們都在為對方提供教學信號,這意味著關于你應在一個地方提取的知識正被轉移到其他地方。
當它們試圖達成一致,或者想讓不同位置的事物達成一致,例如希望鼻子和嘴巴同意各自是同一張臉的一部分,那它們都應該產生相同的表征,當你試圖在不同地方獲得相同表征,就需要允許知識從一個地方被提煉到另一個地方,這與實際的權重共享相比有更大的優勢。
顯然,從生物學角度來說,一個優勢是不同位置的詳細架構無需相同,另一個優勢是前端處理無需相同。
拿視網膜來說,不同部分的視網膜有不同大小的感知域,卷積網忽略它們多個不同的分辨率,并在每個分辨率上做卷積,但它們無法執行不同的前端處理。而如果從一個位置提取到另一個位置,要做的就是從光學陣列獲得相同函數在不同位置的表示,此時在不同的位置對光學陣列采取不同的預處理也可以,即使前端處理不同,但仍可以提煉出表示整個功能的知識。
所以,雖然提取比實際顯示權重效率低,但它更靈活,在神經系統上更可信。這也是我一年前提出一個重要看法,即必須有類似權重共享的技巧來提高效率,但如果你試圖讓相鄰事物達成一致,那本地提取就會起作用。
Abbeel:既然大腦的方式不同,我們是否應該繼續用另一種方式來考慮權重共享,還是說我們不應該繼續權重共享?
Hinton:我認為應該繼續在卷積網中做卷積的事情,在transformer中共享權重,通過共享權重來共享知識。要記住,大腦分享知識不是通過共享權重,而是通過共享從輸入到輸出的功能,利用提取來傳遞知識。
2 人腦尖峰神經元 vs. GPU人工神經元
Abbeel:現在還有一個話題被廣泛談論,大腦與當前神經網絡很不同,神經元是用尖峰信號工作的,跟我們GPU中的人工神經元存在很大的差異。我很好奇你對這個問題的看法,這只是一個工程上的差異,還是我們可能需要更多知識來更好理解?
Hinton:這不僅僅是工程上的不同。一旦我們理解了為什么硬件這么出色,就能理解它對大腦地理標記單位視網膜是敏感的。例如,視網膜不使用尖峰神經元,有大量非尖峰神經的處理。一旦理解了大腦皮層的運作原因,我們就會發現這是生物學的正確做法。我認為這取決于學習算法是如何得到尖峰神經元網絡的梯度,但目前沒有人真正知道。
關于尖峰神經元的問題,往往會出現兩種截然不同的決策:它在什么時候會出現尖峰,以及它會不會出現尖峰。這就是離散決策。人們想出各種替代函數來試圖優化系統。
2000年,Andy Brown和我有一篇關于嘗試學習尖峰玻耳茲曼機的論文,如果有一個適合尖峰碼的學習算法就太棒了,我想這是阻礙尖峰神經元硬件發展的主要原因。
許多人已經意識到可以用這種方式制造更節能的硬件,并且也構建了巨大的系統,但真正欠缺的是一個出色的學習結果。因此我認為,在得到一個好的學習算法之前,我們將無法真正利用尖峰神經元做事情。
因此,當你采取一個標準的人工神經元時,只需要問:它是否能分辨輸入的兩個值是否相同?不能。但當你使用尖峰神經元時,就很容易建立一個系統,兩個尖峰在同時到達,它們就會在著火時發出聲音,不同時間到達則不會。因此,使用峰值時間似乎是一個衡量一致性的好方法。
正如生物系統,你之所以可以看到方向、聲音,來自于信號到達兩只耳朵的延時,如果拿一英尺來說,光大約是一納秒,而第一個聲音大約是一毫秒。但如果我將東西在你側面移動幾英寸,到兩只耳朵的時間延遲差異,到兩只耳朵的路徑長度只有一英寸的一小部分,即信號到兩只耳朵的時間差只有一毫秒。因此我們對30毫秒的時間很敏感,以便從聲音中獲得立體聲。我們通過兩個軸突和不同方向的刺突來做到這一點,一個來自一個耳朵,一個來自另一個耳朵,當刺突同時到達,就有細胞發出信號。
因為尖峰時間可以被用來做非常敏感的事情,那當它的精確時間沒被使用時,將是件令人驚訝的事。長時間以來,我一直認為,如果你能用尖峰時間來檢測自監督學習等方面的一致性,或者說,我提取了你的嘴巴和鼻子的信息,從嘴巴和鼻子來預測你整個面部,當你的嘴巴和鼻子能正確組成一個面部,這些預測就會一致。如果能用尖峰時間來觀察這些預測是否一致就更好了,但很難做到,因為我們不知道、也沒有一個好的算法來訓練網絡,就像神經元一樣。
Abbeel:你剛才是說視網膜不使用所有尖峰神經元?大腦有兩種類型的神經元,有些更像我們的人工神經元,有些則是尖峰神經元?
Hinton:我不確定視網膜是否更像人工神經元,但可以肯定的是,大腦新皮層有尖峰神經元,這是它的主要交流模式,發送尖峰從一個參數到另一個參數細胞。
我有一個很好的論點:大腦有非常多參數,和我們使用的典型神經網絡相比沒有太多的數據,這種狀態下有可能過度擬合,除非使用強大的正則化。一個好的正則化技術是每次你使用一個神經網絡,你忽略了一大堆的單元,因此可能也忽略神經元正在發送尖峰的事實。它們真正交流的是潛在的泊松速率。我們假設它是傳遞的。這個過程是有代價的,它隨機發送脈沖,這個過程中速率是變化的,由輸入到神經元的信息決定,你可能會想要把真實值的速率從一個尿液發送到另一個,當你想做很多正則化,可以把真實值的速率加上一些噪聲,增加噪音的一種方法是使用會增加很多噪音的脈沖,大多數情況下就是退出的動機。
當你觀察任何一個時間窗口,大多數神經元都不參與任何事情,你可以把尖峰看作是一個代表性的潛在個人比率。這聽起來非常糟糕,因為它很嘈雜。但一旦你理解了正則化,這會是個非常好的主意。
所以我仍然對這個想法情有獨鐘,但實際上我們根本沒有使用尖峰計時。它只是使用非常嘈雜的個人速率表示來成為一個好的正則化器,而我有點像在兩者之間切換。有些年我認為神經網絡是確定性的。我們應該有確定性的神經網絡,這是再往后幾年的東西。我認為這是一個5年的周期。最好的隨機性也非常重要,它會改變一切。因此,玻爾茲曼機本質上是隨機的,這對它們來說很重要。但重要的是,不要完全致力于這兩種情況,而是要對這兩種情況持開放態度。
現在重要的是,更多地考慮你剛才所說尖峰神經元的重要性,并弄清楚如何有效地訓練尖峰神經元網絡。
Abbeel:如果我們現在說不要擔心訓練的部分(考慮到它看起來更有效率),難道人們不想分布純粹的推理芯片,也即是分別進行有效的預訓練,然后將其編譯到尖峰神經元芯片上,使它具有非常低功率的推理能力?
Hinton:很多人都想到了這一點,這非常明智,它可能在進化的道路上使用神經網絡進行推理是有效的,并且所有人都在這樣做,也被證明是更有效的,不同的公司已經生產了這些大的尖峰系統。
一旦你在做這些事情,你會對推理越來越感興趣,可以用一種方式來學習在尖峰時期更多利用可用的能量。所以你可以想象有一個系統,你學習時是使用輔助設備,不是模擬硬件,例如不在這個低能量的硬件上,但你可以將其轉移到低能量的硬件上就很好。
3 AlexNet的誕生背景
Abbeel:什么是AlexNet?它是如何產生的?你從研究受限玻爾茲曼機器到試圖理解大腦如何工作的路徑是什么?
Hinton:我想說,你可能突然間就證明了,更傳統的神經網絡方法確實行得通。
大約在2005年,我被可以使用成堆的限制電壓機器來預先訓練特征檢測器的想法迷住了,它可以更容易地讓Backdrop工作,結果是有足夠的數據。后來,因為Faith Ali和她的圖像識別團隊有了足夠的數據,盡管預訓練即將回歸,但不再需要預訓練。
GPT-3有預訓練,預訓練也是個好主意,可一旦我們發現你可以預訓練,這能使背景工作更好,對語音有很大的幫助,就像George John 和 Abdul Rahman Muhammad在2009年做的那樣。此后,我小組的研究生 Alex 開始將相同的想法應用于視覺,很快我們發現,當你有ImageNet的數據時,你并不需要預訓練。
我記得有一天Ilya來到實驗室說:「看,現在我們已經有了語音識別,這東西真的很管用 ,我們必須在其他人之前做出ImageNet。」Janella也走進實驗室表達了這樣的想法,他的學生和博士后也說:「哇,但是我正在忙其他的事情。」事實上他沒有辦法讓誰致力于此。后來他說服了Alex通過對數據進行預處理來完成這個實驗,數據都被預處理成他所需要的。
這只是背景。我想說的是,很多研究人員都知道這個,但可能不是每個人都知道Alex的結果和Ilya之前在ImageNet圖像識別競賽上的工作相比錯誤率降低了一半。這就是為什么每個人都從手工設計的方法轉向計算機視覺,嘗試直接編程。
4 從學術界到谷歌
Abbeel:哪一刻標志著你的職業生涯發生了重大變化?從學術界到谷歌,對你產生了什么影響?為什么會發生這種轉變?
Hinton:我有一個殘疾的兒子需要撫養,所以需要一大筆錢,一個方法是教課。2012年,我教了一門神經網絡的課程。但他們的軟件不是很好,所以做起來非常煩躁。每周一章,我必須給他們提供教學視頻,會有一大堆人要看。有時上完課第二天Yoshua Bengio會問:「你為什么(在課上)這么說?」
我與多倫多大學最初的協議是,如果從這些課程中賺到任何錢,我希望大學將錢與教授們分享,他們沒有明確說明具體的分配方式,但人們認為大概在50%或類似,我對此沒有意見。但在我開始授課后,教務長在沒有咨詢我或其他人的情況下做出了一個單方面的決定:如果資金來自課程平臺,大學會拿走所有的錢,而教授什么都拿不到。我讓學校幫我準備視頻,制作視頻的人會來問我,你知道制作視頻有多貴嗎?
這讓我對學校感到非常生氣,所以我開始考慮教授之外的其他職業選擇。那個時候,我們突然引起了各種公司的興趣,他們要招募我們,要么是給予大額撥款,要么是資助創業。通常我會說不,我不想試圖從研究中賺取額外的錢,但那次學校騙了我錢的經歷,讓我想找一些其他的方式來賺錢。
Abbeel:當時的拍賣會是一種怎樣的場景?
Hinton:那是在NIPS會議上,Terry在一個賭場里組織了一些小活動。在酒店地下室煙霧繚繞的房間里,有人在樓上賭博,感覺就像在拍電影。我們完全不知道自己值多少錢。我咨詢了一位律師,他說我可以聘請專業的談判人員,或者直接進行拍賣。
據我所知,這是第一次有像這樣的小團體進行拍賣。我們通過Gmail進行拍賣,人們必須把他們的出價用電子郵件發給我,并附上電子郵件的時間戳。價格一直在漲,一開始是50萬美元,之后是100萬美元,這很令人興奮,我們發現自己的價值比我們想象的要高得多。
回想起來,我們也許可以得到更多,但我們已經看到了一個我們認為是天文數字的金額。我們都想為谷歌工作,所以我們停止了拍賣,并確定加入谷歌。
Abbeel:據我了解,你今天還在谷歌。
Hinton:我現在還在谷歌工作,已經9年了。我喜歡谷歌的主要原因是,核心團隊非常好。
我和Jeff Dean相處得非常好,他非常聰明,而我是非常直截了當的。他希望我做的正是我想做的事情,也就是基礎研究。他認為我應該做的是嘗試提出全新的算法,這就是我想做的,非常適配。我不擅長管理一個大團隊,去提高百分之一的語音識別能力。但我很樂意,最好是可以再一次徹底改變這個領域。
Abbeel:你曾是多倫多大學的計算機科學教授,但你從來沒有獲得過計算機科學學位,你獲得過心理學學位,而且你還曾做過木匠。你是如何從學習心理學、到成為一名木匠、再到進入人工智能領域的?
Hinton:在劍橋的最后一年,我過得很艱難。考試后我就退學當了一名木匠,我喜歡做木工活勝過其他任何事。高中時上完所有的課程,晚上就可以呆在家里做木工活,所以我成為了一名木匠,做了大約6個月。
但我不可能以做木匠為生。我曾是一名木匠兼裝修師,在裝修的過程中賺了錢,我很享受做木工活的樂趣。直到我遇到了一個真正的木匠,才意識到我在木工方面完全沒有希望。他可以用手鋸把一塊木頭完全切成方形。和他比起來,我太絕望了,我決定還是回到人工智能。
Abbeel:據我所知,你的博士是在愛丁堡大學攻讀的。
Hinton:是的,我去那里攻讀神經網絡的博士學位,和著名教授Christopher Longa Higgins一起做研究,他真的非常出色,在30多歲時就因為研究出硼氫化物的結構而差點獲得諾貝爾獎。他對神經網絡以及與全息圖的關系很感興趣,大約在我到達愛丁堡的那天,他對神經網絡失去興趣,因為讀了Winograd的論文而完全改變看法,認為神經網絡是錯誤的思考方式。盡管他完全不同意我所做的事情,但他并沒有阻止我做這件事。
Abbeel:70年代初,在其他人都說Minsky和Papert所提出的神經網絡是無稽之談時, 你為什么要做這個東西?
Hinton:事實上,我給那個小組做的第一次演講就是關于如何用神經網絡做真正的遞歸。這是在1973年、即49年前的演講。我發現的一個項目是,當你想要一個能夠畫出形狀的神經網絡,它把形狀分成不同的部分,有可能可以讓一部分的形狀由相同的神經硬件來畫,而整個形狀是由神經中樞來畫的,神經中樞存儲整個形狀,且必須記住它在整個形狀中的位置、以及整個形狀的方向和位置大小。
但我現在想法改變了,你想用同樣的神經元來畫出形狀的一部分時,你需要在某個地方記住整個形狀是什么,以及你在其中走了多遠。一旦你完成了這個子程序,你就可以跳回那個地方。形狀這一部分的問題是,神經網絡如何記住它,顯然你不能只是復制神經元,因此我設法讓一個系統工作和一直適應,讓神經網絡通過快速的重度和權重來記住它。因此,我有了一個神經網絡在做真正的遞歸,重復使用相同的神經元和權重來做遞歸調用,正如在1973年所做的高級調用一樣。
我認為人們不理解我的演講,因為我不擅長演講,但他們也會問為什么要在你的比賽中做遞歸。他們不明白的是,除非我們讓神經網絡做遞歸之類的事情,否則我們永遠無法解釋一大堆事情,現在這又變成了一個有趣的問題, 所以我打算再等一年,直到這個想法成為一個真正的古董。當它將有50年的歷史時,我會寫一份研究報告。
Abbeel:當你和大家一樣是博士生或者博士剛畢業時,幾乎所有人都告訴你,你所從事的工作是在浪費時間,而你卻深信并非如此,你這種信念來源于哪里?
Hinton:我想很大一部分原因是我的學校教育。我的父親把我送到了一所昂貴的私立學校,那里有良好的科學教育,我從7歲起就在那里上學。那是一所基督教學校,其他所有的孩子都信仰上帝,但我在家里被教導說那都是胡說八道,在我看來那確實是胡說八道,所以我習慣了別人都是錯的。
我認為這很重要。你需要對科學有信念,愿意去研究那些顯然正確的東西,即使其他所有人都說那是胡說八道,而且事實上并非所有人都那么認為。在70年代初,研究AI的幾乎所有人都認為(我做的東西)是胡說八道。但如果你再往前看一點,在50年代,馮·諾伊曼和圖靈都相信神經網絡,圖靈尤其相信神經網絡的強化訓練。我仍然相信,如果他們沒有早逝,整個人工智能的歷史可能會非常不同,因為他們是強大到足以左右整個領域的智者,他們還對大腦是如何工作的非常感興趣。
5 非永生計算機:成本低,通過學習獲取知識
Abbeel:現在的深度學習非常有效。它是我們所需要的全部,還是說我們還需要其他東西?你曾說過(也許我不是原文引用你的話),深度學習可以做到一切。
Hinton:我那樣說的真正意思是,用隨機梯度發送一大堆參數,深度學習得到梯度的方式可能不是反向傳播,以及你得到的梯度可能不是最終的性能測量,而是這些局部目標函數。我認為這就是大腦的工作方式,而且我認為這可以解釋一切。
我想說的另一件事,是我們現在擁有的計算機對銀行業務非常有幫助,因為它們能記住你的賬戶里有多少錢。如果你去銀行問,他們只會告訴你大概有多少。我們無法給出確定答案,因為我們無法做到那么精確,只能給出一個大概。在計算機處理銀行業務或操控航天飛機時,我們可不希望那種事情發生,我們很希望計算機能得到完全正確的答案。我認為,人們還沒有充分意識到我們做出了一個關于計算將如何發展的決定,即我們的計算機、我們的知識將會不朽。
現有的計算機有一個計算機程序,或者權重很多的神經網絡(那是一種不同類型的程序)。但如果你的硬件壞了,你可以在另一個硬件上運行相同的程序。這就使得知識不朽。它不依賴于特定的硬件存活。而不朽的代價是巨大的,因為這意味著不同位的硬件必須做完全相同的事情,這顯然是在做完所有錯誤校正之后的零點校正。它們必須做完全相同的事情,這意味著最好是數字化的或者基本數字化,它們會做一些事情,比如把數字相乘,這需要消耗很多很多的能量來使運算變得非常謹慎,而這不是硬件的目標。一旦你想要讓你的程序或神經網絡不朽,你就會投入到非常昂貴的計算和制造過程中。
如果我們愿意放棄不朽,我們將得到的回報是非常低的能源計算和非常廉價的制造。所以,我們應該做的不是制造計算機,而是讓它們進化。打個比喻,如果你有一棵盆栽植物,你把它從花盆里拔出來,會得到一團球狀的根部,這正是花盆的形狀,所以所有不同的盆栽植物都有相同形狀的根部,而根系的細節都不一樣,但它們都在做同樣的事情,它們從土壤中提取養分,它們的功能是一樣的。
而這就是真正的大腦的樣子,這就是我所說的非永生計算機的樣子。這些計算機是培育出來的,而不是制造出來的。你不能給它們編程,它們需要在學習,它們必須有一個某種程度上是內置的學習算法。他們用模擬來做大部分的計算,因為模擬非常適合做一些事情,比如取電壓,乘以電阻,然后把它變成電荷,再把電荷加起來,芯片已經做了這樣的事情。問題是你接下來要做什么,你如何在這些芯片中學習。而目前,人們已經提出了反向傳播或各種版本的裝箱機。我認為我們還需要別的東西,但我認為,在不久的將來,我們將會看到非永生計算機,它們的制造成本很低,它們必須通過學習來獲取所有的知識,而且它們所需的能量很低。當這些非永生計算機死亡時,它們的知識也會隨之死亡。看權重是沒有用的,因為那些權重只適用于硬件。所以你要做的,就是把這些知識提取到其他計算機上。
6 大規模語言模型在多大程度上理解了語言
Abbeel:今天那些占據頭條的神經網絡都是非常大的。在某種意義上,大型語言模型的規模已經開始向大腦靠近,非常令人印象深刻。你對這些模型有什么看法?你在其中看到了什么局限性?另一方面,比如螞蟻的大腦顯然比人類小得多,但公平地說,我們人工開發的視覺運動系統還沒有達到螞蟻或蜜蜂的水平。所以,對于最近語言模型的重大進步,你有什么樣的想法?
Hinton:蜜蜂的大腦可能在你看來很小,但我認為蜜蜂有大約一百萬個神經元,蜜蜂更接近GPT-3。但蜜蜂的大腦實際上是一個很大的神經網絡。
我的觀點是,如果你有一個參數很大的系統,而且這些參數是用一些合理的目標函數中的梯度下降來調整的,那么你會得到很好的性能,就像GPT-3那樣,還有我已經提到很多谷歌的類似模型。這并沒有解決它們是否能做到和我們一樣的問題,我認為我們在做更多的事情,比如我們在神經網絡中做的遞歸。
我在去年那篇關于GLOM的論文中試圖闡述這些問題,關于如何在神經網絡中做部分孔層次結構。你肯定要有結構,如果你說的符號計算只是你有部分和整體結構,那么我們做的就是符號計算。這通常不是人們所說的那種偏硬的符號計算,那種符號計算意味著你在使用符號,你在符號上操作的規則只取決于你處理的符號字符串的形式,一個符號所具有的唯一屬性是它與其他符號是相同或不相同,也可能是它可以作為指針來得到一些東西。
論文地址:https://arxiv.org/pdf/2102.12627.pdf
神經網絡與此非常不同,所以我認為我們做的不是那種偏硬的符號處理,但我們肯定做孔層次結構。但我們是在巨大的神經網絡中做的,我現在不太清楚GPT-3在多大程度上能真正理解它所說的話。我認為這是相當清楚的,它不像以前的聊天機器人程序Eliza,只是重新排列符號串,而完全不知道它是在說什么。相信這一點的理由是,比如你用英文說「給我一張倉鼠戴著紅帽子的圖片」,它就會畫出一張倉鼠戴著紅色帽子的圖片,而它之前從來沒有預先做過這個配對,所以它必須在給出圖片之前理解英語字符和圖片之間的關系。如果你問這些神經網絡懷疑論者、神經網絡否定論者:「你如何證明它理解了」,我想他們也會接受。如果你讓它畫一幅畫,它就畫出那副畫,那么它就是理解了。
Abbeel:最近谷歌的PaLM模型展示了它是如何對笑話的機制進行有效解釋的。這似乎是對語言非常深刻的理解。
Hinton:不,它只是在重新排列訓練中的單詞。我不同意「如果不是理解了笑話所講的是什么,它怎么可能會產生那些對笑話的解釋」這種想法,我仍然對此持開放態度,因為它的框架是反向傳播的,它會走向一種與我們完全不同的理解。很明顯,對抗性圖像告訴你可以通過它們的紋理來識別物體,在這個意義上你可能是正確的,因為它會泛化到其他物體實例。
但這是一種與我們完全不同的方法,我喜歡以昆蟲和花朵為例。昆蟲可以看到紫外線。在我們看來相同的兩朵花,在昆蟲看來可能完全不同。而現在因為花朵在我們看來是一樣的,我們就能說是昆蟲搞錯了嗎?這些花和昆蟲一起進化,紫外線向昆蟲發出信號,告訴它們這是哪朵花。很明顯,昆蟲是正確的,我們只是看不出區別而已,這是另一種思考對抗性例子的方式。所以問題是,在昆蟲的例子中,誰是對的?僅僅因為兩朵花在我們看來是一樣的,并不意味著它們真的是一樣的,在這種情況下,可能昆蟲關于兩朵花是非常不同的看法是正確的。
Abbeel:對于我們目前神經網絡的圖像識別,有人可能會認為,既然我們創造了它們,并希望它們為我們做一些事情,那么我們真的不想只是承認「好吧,它們是對的,我們是錯的」。我的意思是,它們需要識別出車和行人。
Hinton:是的。我只是想告訴大家,這并不像你想的誰對誰錯那么簡單。我那篇關于GLOM的論文重點之一就是嘗試建立更類人的感知系統。所以它們會更容易犯和我們一樣的錯誤,而不會犯那些不同尋常的錯誤。舉個例子,如果你有一輛自動駕駛汽車,它犯了一個任何正常人類司機都會犯的錯誤,這似乎比犯一個非常愚蠢的錯誤更容易被接受。
7 玻爾茲曼機、知識蒸餾與t-SNE降維算法
Abbeel:據我所知,睡眠也是你在考慮的事情。你能詳細談一談嗎?
Hinton:如果你剝奪人們的睡眠,他們就會變得非常奇怪,比如如果你讓某人保持興奮狀態三天,他們就會開始產生幻覺。如果持續一個星期,他們就會瘋掉,永遠不會再恢復過來。
問題是,為什么?睡眠的計算功能是什么?如果剝奪你的睡眠會讓你徹底崩潰,那么這其中可能就有一些非常重要的問題值得思考。目前的理論是,睡眠是用來鞏固記憶的,或者是用來把記憶從海馬體下載到大腦皮層,這有點奇怪,因為這就好像你在校園里要先經過法庭一樣。很久以前,在80年代早期,Terrence Sejnowski和我有一個叫做玻爾茲曼機的理論(boltzmann machines ),它部分是基于Francis Crick 的一個見解,當時他在思考Hopfield Nets, 他有一篇關于睡眠的論文,他的觀點是你可以給網絡以隨機的東西,并讓它不要滿足于隨機的東西。
論文地址:https://www.cs.toronto.edu/~hinton/absps/cogscibm.pdf
所以在一個Hopfield Net中,你給它一些你想記住的東西,它會改變權重。所以這個矢量的能量更低。如果你給它一個隨機的矢量,讓能量變高,效果會更好,這就引出了玻爾茲曼機,我們就是通過它來實現的。如果你給它的不是隨機的東西,你就會得到由模型自身的馬爾可夫鏈所生成的東西。減少這種可能性,并增加數據的隨機性,這實際上是一種最大似然學習。
我們認為這就是睡眠的意義。睡眠是學習的消極階段。在對比學習的過程中,對于來自同一圖像的兩個補丁,你嘗試讓它們有相似的表現;對于兩個來自不同圖像的補丁,你嘗試讓它們有非常不同的表現。一旦它們不同,你要做的就不是讓它們變得更加不同,而是讓它們不再太過相似,這就是對比學習的原理。現在有了玻爾茲曼機器,你就無法把積極和消極的例子分開。你必須把積極例子和消極例子交叉在一起,否則整個事情就會出錯。我試過不讓它們交叉,要做很多積極例子,然后再做很多消極例子,這是很難的。
在對比學習中,你可以把積極階段和消極階段分開。所以你可以做很多正對的例子,然后做很多負對的例子。所以,如果你能把積極和消極的階段分開在不同的時間進行,做一大堆積極的更新,然后再做一大堆消極的更新,這就會使得對比學習更加合理。即使是標準的對比學習,你也可以做得比較好,你必須使用很多動量之類的東西。所以我認為,睡眠的功能很有可能是做遺忘或做消極例子,這就是為什么你會不記得你的夢。當你醒來的時候,你會記得那些在快權重中的內容,因為快權重是一個臨時存儲。但當你醒來時,你只記得你醒來時做的夢的最后一分鐘,我認為這是一個比其他任何睡眠理論都更可信的睡眠理論。如果把這一刻記憶去除,就能解釋為什么,整個系統就會崩潰。你會犯災難性的錯誤,開始產生幻覺,做各種奇怪的事情。
我再多說一點關于對消極例子的需求。如果你有一個神經網絡,它試圖優化一些內部目標函數,關于它的表現形式或者關于上下文預測和局部預測之間的一致性。它希望這種一致性成為真實數據的屬性,而神經網絡內部的問題是,你可能會在輸入中得到各種各樣的關聯。假設我是一個神經元,我的輸入中有各種各樣的相關性,而這些相關性與真實的數據無關,它們是由網絡的布線以及網絡中的方式帶來的。如果這兩個神經元都在看同一個像素,它們就會有關聯。但這并沒有告訴你任何關于數據的信息,所以問題是,如何學會提取關于真實數據的結構而不是關于網絡連接。要做到這一點,方法就是給它提供積極例子,在積極例子而非消極例子中找到結構,因為消極例子會經過完全相同的線路。如果消極例子里沒有這個結構,但在積極例子里有,那么這個結構就是關于消極例子和積極例子之間的區別,而不是你的連接方式。所以,盡管人們對這一點沒有太多思考,但如果你有強大的學習算法,你最好不要讓它們學習神經網絡自己的權重和連接。
Abbeel:你還提到了「學生模型打敗老師模型」的概念。這是什么意思?
Hinton:MNIST是一個標準的數字數據庫,你可以錯誤的標簽來替換訓練數據,得到一個數據集,其中的標簽有20%的正確率和80%的錯誤率。問題是:你能從這個數據集中學習嗎?學習的效果如何?答案是,你可以學習到95%的正確率。
假設老師模型(teacher model)有80%的錯誤率,而學生模型(student model)有95%的正確率,所以學生比老師要好很多。你是把這些訓練例子一次打包,所以你不能對恰好有相似圖像的不同訓練案例的錯誤進行平均化。如果你問,若你有損壞的案例,你需要多少訓練案例,這很有意思,因為圖像數據集很小。你是愿意有一百萬個標簽錯誤的圖像,還是愿意有一萬個標簽準確的圖像?我有一個假設,重要的是標簽和準確性之間的互信息量。如果標簽是正確地被損壞了,那么90%的情況下標簽和準確性之間沒有互信息;如果它們損壞80%,就只有少量的互信息。
我注意到你們最近做了一些sim-to-real的工作,你們用神經網絡給真實的數據打上不完美的標簽,然后學生從這些標簽中學習,而且學生比老師學得更好。人們很困惑,學生怎么可能比老師更好?但在神經網絡中,這很容易實現。如果有足夠的訓練數據,即使老師很不靠譜,學生也會比老師更好。我幾年前和Melody Y. Guan寫過一篇關于這個的論文,里面使用了一些醫學數據。論文的第一部分談到了這個,我們的經驗法則是被分配的標簽和準確性之間的互信息才是重要的。
論文地址:https://www.cs.toronto.edu/~hinton/absps/WhoSaidWhat.pdf
Abbeel:關于你剛才提到的我們那項工作以及最近一些非常受歡迎的工作,通常老師會提供帶噪音的標簽,但并不是所有的噪音標簽都被使用。有一種觀點認為,只需要看那些更有信心的老師。
Hinton:這是一個很好的方法,只看那些你有理由相信的東西可能會有所幫助。在MNIST中,Melody繪制了一個圖表,只要你有20%的標簽是正確的,學生就會有95%的正確率。但當下降到大約15%時,你就會突然得到一個相變,此時你能做的只能是碰運氣,因為無論如何學生一定會得到它,老師在說這些標簽時,學生在某種程度上要了解哪些例子是正確的,哪些例子是錯誤的。一旦學生看到標簽和輸入之間的關系,那么一個錯誤標簽的錯誤性就很明顯。所以如果它被隨機地錯誤啟用了也沒關系,但是有一個相變,在這個相變中你必須讓它足夠好,學生們能明白這個道理。這也解釋了為什么我們的學生都比我們聰明。
Abbeel:在神經網絡的學習中,尤其是當你建立模型的時候,你要理解它是什么,它在學習什么。通常人們試圖在學習過程中把所發生的事情可視化,你發明了最流行的可視化技術之一t-SNE(t-Distribution Stochastic Neighbor Embedding),它背后的故事是什么?
論文地址:http://www.cs.toronto.edu/~hinton/absps/tsne.pdf
Hinton:如果你有一些高維數據,你試著畫一個二維或三維的地圖,你可以取前兩個主分量,只畫出前兩個主分量。但是主分量關心的是如何讓大距離正確。所以如果兩個東西非常不同,主分量會非常擔心它們在二維空間中差異很大。它根本不關心小的差異,因為它是在大的差異的平方上操作的,所以它不能很好地保持高維度相似性。但我們感興趣的往往恰恰相反,對于得到的數據,我們感興趣的是什么和什么非常相似,而不關心大的距離是否有一點錯誤,只要小的距離是正確的就行。我很久以前就有了這個想法,如果我們把距離轉化成成對的概率會怎么樣?
t-SNE有各種不同的版本,假設我們把它們變成概率對,比如距離小的對概率高,距離大的對概率低。我們把距離轉換成概率,小的距離對應大的概率,在一個數據點周圍放一個高斯分布,然后在這個高斯分布下計算其他數據點的密度,這是一個非標準化的概率,然后將其歸一化。接著把這些點放在二維空間中以保持這些概率。所以它不關心兩點之間是否相距很遠。它們的成對概率很低,它不關心兩個點的相對位置。這就產生了非常漂亮的地圖,這被稱為隨機鄰域嵌入。我們想到放入一個高斯分布,然后根據高斯分布下的密度隨機選擇一個鄰居,它有非常簡單的導數。
我們得到的地圖傾向于把東西擠在一起,這是在把高維數據轉換成低維數據時存在一個的基本問題。這是由高維空間和低維空間的本質帶來的。在高維空間中,一個數據點可以接近很多其他點,而在一個低維空間中,這些點之間不會太近。如果它們都很接近這個數據點,它們之間就必須很接近。所以你在從高維到低維的嵌入上會遇到問題。當我在做t-SNE的時候,我有一個想法,我用概率作為一種「中間貨幣」來做一個混合模型。
我們成功地實施了這個想法,但我們始終沒有把它做得很好。我很失望人們沒能利用這個想法,然后我又做了一個更簡單的版本,它是高斯分布和均勻分布的混合,效果更好。
其中的想法是:在一張地圖上,所有的對都是等概率的,這就提供了一種經過大距離的背景概率,即一個小的背景概率;在另一張地圖中,你貢獻的概率與你在這張地圖中的平方距離成比例,但這意味著在這張地圖中,如果它們愿意,它們可以相隔很遠,因為它們需要一些概率的這個事實被均勻化處理了。實際上這個版本是使用高斯分布混合的一個特例,是一個非常廣的高斯分布,它是均勻的。如果我們用一整個高斯函數層級會如何呢?很多高斯函數具有不同寬度,稱為t分布,這帶來了t-SNE。t-SNE有一個很好的屬性,它可以提供事物的多尺度信息,一旦距離變大,你會從中得到許多結構化的不同層次,包括整體結構和精細結構。
目標函數被用在所有這些工作中,這是一種相對密度下的高斯,來自我和Alberto Pacinero早些時候所做的工作,當時發表過程很難,我收到過一篇被會議拒絕的評論:「Hinton已經為這個想法工作了7年,但沒有人感興趣」。我認為這些評論其實告訴了我,我正在做非常有創新性的東西,它實際上包含了一個函數叫做NCE,它使用了對比方法,t-SNE實際上是這個函數的一個版本。但t-SNE是用來做地圖的,后來我嘗試做一個混合版本,它最初一直行不通,直到最終得到一個巧合,就是我想要使用的t分布。