過去十年,AI 在電腦視覺、語音辨識、機器翻譯、機器人、醫學、計算生物學、蛋白質折疊預測等等領域取得了一個又一個突破,而這些突破的背後,均離不開深度學習。那麼,深度學習起源於何時何地,又在何時成為最突出的AI方法?
最近,UC柏克萊教授、深度學習專家Pieter Abbeel在其播客節目《機器人大腦》(Robot Brains)中,對Geoffrey Hinton進行了一次訪談。
曾獲2018年圖靈獎的Hinton,被稱為「深度學習三巨頭」之一,是人工智慧史上最重要的學者之一。他的論文被引用了50多萬次,這意味著,有50萬篇以上的研究論文是建立在他的研究之上。
他在深度學習領域已經研究了大約半個世紀,大部分時間相對默默無聞,但在2012年,事情發生了轉折:那一年,憑藉AlexNet在ImageNet比賽的勝出,他證明了深度學習在圖像識別方面比其他計算機視覺的方法具備更大的優勢。這被稱為「ImageNet時刻」,改變了整個AI領域,掀起了深度學習的浪潮。
在這次對話中,Hinton講述了他從學術界到谷歌大腦的工作經歷、學習心理學和當木匠的經歷,以及可視化技術t-SNE演算法背後的歷史,並就一些問題發表了他的觀點,包括:
#AI科技評論在不改變原意的基礎上對他們的訪談作了編輯與整理:
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中共享權重,透過共享權重來共享知識。要記住,大腦分享知識不是透過共享權重,而是透過共享從輸入到輸出的功能,利用提取來傳遞知識。
Abbeel:現在還有一個主題被廣泛談論,大腦與當前神經網路很不同,神經元是用尖峰訊號工作的,跟我們GPU中的人工神經元有很大的差異。我很好奇你對這個問題的看法,這只是一個工程上的差異,還是我們可能需要更多知識來更好地理解?
Hinton:這不只是工程上的差異。一旦我們了解為什麼硬體這麼出色,就能理解它對大腦地理標記單位視網膜是敏感的。例如,視網膜不使用尖峰神經元,有大量非尖峰神經的處理。一旦了解大腦皮質的運作原因,我們就會發現這是生物學的正確做法。我認為這取決於學習演算法是如何得到尖峰神經元網路的梯度,但目前沒有人真正知道。
關於尖峰神經元的問題,往往會出現兩種截然不同的決策:它何時會出現尖峰,以及它會不會出現尖峰。 這就是離散決策。人們想出各種替代函數來試圖優化系統。
2000年,Andy Brown和我有一篇關於嘗試學習尖峰玻耳茲曼機的論文,如果有一個適合尖峰碼的學習演算法就太棒了,我想這是阻礙尖峰神經元硬體發展的主要原因。
許多人已經意識到可以用這種方式製造更節能的硬件,並且也構建了巨大的系統,但真正欠缺的是一個出色的學習結果。因此我認為,在得到一個好的學習演算法之前,我們將無法真正利用尖峰神經元來做事情。
因此,當你採取一個標準的人工神經元時,只需要問:它是否能分辨輸入的兩個值是否相同?不能。但當你使用尖峰神經元時,就很容易建立一個系統,兩個尖峰在同時到達,它們就會在著火時發出聲音,不同時間到達則不會。因此,使用峰值時間似乎是衡量一致性的好方法。
正如生物系統,你之所以可以看到方向、聲音,來自於信號到達兩隻耳朵的延時,如果拿一英尺來說,光大約是一納秒,而第一個聲音大約是一毫秒。但如果我將東西在你側面移動幾英寸,到兩隻耳朵的時間延遲差異,到兩隻耳朵的路徑長度只有一英寸的一小部分,即信號到兩隻耳朵的時間差只有一毫秒。因此我們對30毫秒的時間很敏感,以便從聲音中獲得立體聲。我們透過兩個軸突和不同方向的刺突來做到這一點,一個來自一個耳朵,一個來自另一個耳朵,當刺突同時到達,就有細胞發出信號。
因為尖峰時間可以用來做非常敏感的事情,那麼當它的精確時間沒有被使用時,將是件令人驚訝的事。長時間以來,我一直認為,如果你能用尖峰時間來檢測自監督學習等方面的一致性,或者說,我提取了你的嘴巴和鼻子的信息,從嘴巴和鼻子來預測你整個面部,當你的嘴巴和鼻子能正確組成一個臉部,這些預測就會一致。如果能用尖峰時間來觀察這些預測是否一致就更好了,但很難做到,因為我們不知道、也沒有一個好的演算法來訓練網絡,就像神經元一樣。
Abbeel:你剛才是說視網膜不使用所有尖峰神經元?大腦有兩種類型的神經元,有些更像我們的人工神經元,有些則是尖峰神經元?
#Hinton:我不確定視網膜是否更像人工神經元,但可以肯定的是,大腦新皮層有尖峰神經元,這是它的主要交流模式,發送尖峰從一個參數到另一個參數細胞。
我有一個很好的論點:大腦有非常多參數,和我們使用的典型神經網路相比沒有太多的數據,這種狀態下有可能過度擬合,除非使用強大的正則化。 一個好的正則化技術是每次你使用一個神經網絡,你忽略了一大堆的單元,因此可能也忽略神經元正在發送尖峰的事實。它們真正交流的是潛在的泊松速率。我們假設它是傳遞的。這個過程是有代價的,它隨機發送脈衝,這個過程中速率是變化的,由輸入到神經元的信息決定,你可能會想要把真實值的速率從一個尿液發送到另一個,當你想做很多正則化,可以把真實值的速率加上一些噪聲,增加噪音的一種方法是使用會增加很多噪音的脈衝,大多數情況下就是退出的動機。
當你觀察任何一個時間窗口,大多數神經元都不參與任何事情,你可以把尖峰看作是一個代表性的潛在個人比率。這聽起來非常糟糕,因為它很吵。但一旦你理解了正規化,這會是個非常好的主意。
所以我仍然對這個想法情有獨鍾,但實際上我們根本沒有使用尖峰計時。它只是使用非常嘈雜的個人速率表示來成為一個好的正則化器,而我有點像在兩者之間切換。有些年我認為神經網路是確定性的。我們應該有確定性的神經網絡,這是再往後幾年的東西。我認為這是一個5年的周期。最好的隨機性也非常重要,它會改變一切。因此,玻爾茲曼機本質上是隨機的,這對它們來說很重要。但重要的是,不要完全致力於這兩種情況,而是要對這兩種情況持開放態度。
現在重要的是,多考慮你剛才所說尖峰神經元的重要性,並弄清楚如何有效地訓練尖峰神經元網路。
Abbeel:如果我們現在說不要擔心訓練的部分(考慮到它看起來更有效率),難道人們不想分佈純粹的推理晶片,也即是分別進行有效的預訓練,然後將其編譯到尖峰神經元晶片上,使它具有非常低功率的推理能力?
Hinton:很多人都想到了這一點,這非常明智,它可能在進化的道路上使用神經網路進行推理是有效的,並且所有人都在這樣做,也被證明是更有效的,不同的公司已經生產了這些大的尖峰系統。
一旦你在做這些事情,你會對推理越來越感興趣,可以用一種方式來學習在尖峰時期更多地利用可用的能量。所以你可以想像有一個系統,你學習時是使用輔助設備,不是模擬硬件,例如不在這個低能量的硬體上,但你可以將其轉移到低能量的硬體上就很好。
#Abbeel:什麼是AlexNet?它是如何產生的?你從研究受限玻爾茲曼機器到試圖理解大腦如何運作的路徑是什麼?
Hinton:我想說,你可能突然就證明了,更傳統的神經網路方法確實行得通。
大約在2005年,我被可以使用成堆的限制電壓機器來預先訓練特徵檢測器的想法迷住了,它可以更容易地讓Backdrop工作,結果是有足夠的數據。後來,因為Faith Ali和她的圖像辨識團隊有了足夠的數據,儘管預訓練即將回歸,但不再需要預先訓練。
GPT-3有預訓練,預訓練也是個好主意,可一旦我們發現你可以預訓練,這能使背景工作更好,對語音有很大的幫助,就像George John 和Abdul Rahman Muhammad在2009年所做的那樣。此後,我小組的研究生 Alex 開始將相同的想法應用於視覺,很快我們發現,當你有ImageNet的資料時,你並不需要預先訓練。
我記得有一天Ilya來到實驗室說:「看,現在我們已經有了語音識別,這東西真的很管用,我們必須在其他人之前做出ImageNet。」Janella也走進實驗室表達了這樣的想法,他的學生和博士後也說:「哇,但是我正在忙其他的事情。」事實上他沒有辦法讓誰致力於此。後來他說服了Alex透過對數據進行預處理來完成這個實驗,數據都被預處理成他所需要的。
這只是背景。我想說的是,很多研究人員都知道這個,但可能不是每個人都知道Alex的結果和Ilya之前在ImageNet圖像識別競賽上的工作相比錯誤率降低了一半。這就是為什麼每個人都從手工設計的方法轉向電腦視覺,嘗試直接編程。
#Abbeel:哪一刻標誌著你的職業生涯發生了重大變化?從學術界到谷歌,對你產生了什麼影響?為什麼會發生這種轉變?
Hinton:我有一個殘疾的兒子需要撫養,所以需要一大筆錢,一個方法是教課。 2012年,我教了一門神經網路的課程。但他們的軟體不是很好,所以做起來非常煩躁。每週一章,我必須給他們提供教學視頻,會有一大堆人要看。有時上完課第二天Yoshua Bengio會問:「你為什麼(在課堂上)這麼說?」
我與多倫多大學最初的協議是,如果從這些課程中賺到任何錢,我希望大學將錢與教授分享,他們沒有明確說明具體的分配方式,但人們認為大概在50%或類似,我對此沒有意見。但在我開始授課後,教務長在沒有諮詢我或其他人的情況下做出了一個單方面的決定:如果資金來自課程平台,大學會拿走所有的錢,而教授什麼都拿不到。我讓學校幫我準備視頻,製作視頻的人會來問我,你知道製作視頻有多貴嗎?
這讓我對學校感到非常生氣,所以我開始考慮教授以外的其他職業選擇。那時候,我們突然引起了各種公司的興趣,他們要招募我們,要嘛是給予大額撥款,要嘛是資助創業。通常我會說不,我不想試圖從研究中賺取額外的錢,但那次學校騙了我錢的經歷,讓我想找一些其他的方式來賺錢。
Abbeel:當時的拍賣會是怎樣的場景?
Hinton:那是在NIPS會議上,Terry在一個賭場裡組織了一些小活動。在飯店地下室煙霧繚繞的房間裡,有人在樓上賭博,感覺就像在拍電影。我們完全不知道自己值多少錢。我諮詢了一位律師,他說我可以聘請專業的談判人員,或直接拍賣。
據我所知,這是第一次有像這樣的小團體進行拍賣。我們透過Gmail進行拍賣,人們必須把他們的出價用電子郵件發給我,並附上電子郵件的時間戳記。價格一直在漲,一開始是50萬美元,之後是100萬美元,這很令人興奮,我們發現自己的價值比我們想像的要高得多。
回想起來,我們也許可以得到更多,但我們已經看到了一個我們認為是天文數字的金額。我們都想為谷歌工作,所以我們停止了拍賣,並確定加入谷歌。
Abbeel:據我了解,你今天還在Google。
Hinton:我現在還在Google工作,已經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年代,馮諾伊曼和圖靈都相信神經網絡,圖靈尤其相信神經網路的強化訓練。我仍然相信,如果他們沒有早逝,整個人工智慧的歷史可能會非常不同,因為他們是強大到足以左右整個領域的智者,他們也對大腦是如何運作的非常感興趣。
Abbeel:現在的深度學習非常有效。它是我們所需要的全部,還是說我們還需要其他東西?你曾說過(也許我不是原文引用你的話),深度學習可以做到一切。
Hinton:我這樣說的真正意思是,用隨機梯度發送一大堆參數,深度學習得到梯度的方式可能不是反向傳播,以及你得到的梯度可能不是最終的性能測量,而是這些局部目標函數。我認為這就是大腦的工作方式,而且我認為這可以解釋一切。
我想說的另一件事,是我們現在擁有的電腦對銀行業務非常有幫助,因為它們能記住你的帳戶裡有多少錢。如果你去銀行問,他們只會告訴你大概有多少。我們無法給出確定答案,因為我們無法做到那麼精確,只能給一個大概。在電腦處理銀行業務或操控太空梭時,我們可不希望那種事情發生,我們很希望電腦能得到完全正確的答案。我認為,人們還沒有充分意識到我們做出了一個關於計算將如何發展的決定,即我們的計算機、我們的知識將會不朽。
現有的電腦有一個電腦程序,或是權重很多的神經網路(那是一種不同類型的程式)。但如果你的硬體壞了,你可以在另一個硬體上運行相同的程式。這就使得知識不朽。它不依賴特定的硬體存活。而不朽的代價是巨大的,因為這意味著不同位元的硬體必須做完全相同的事情,這顯然是在完成所有錯誤校正之後的零點校正。它們必須做完全相同的事情,這意味著最好是數位化的或基本數位化,它們會做一些事情,例如把數字相乘,這需要消耗很多很多的能量來使運算變得非常謹慎,而這不是硬體的目標。一旦你想要讓你的程式或神經網路不朽,你就會投入到非常昂貴的計算和製造過程中。
如果我們願意放棄不朽,我們將得到的回報是非常低的能源計算和非常廉價的製造。所以,我們該做的不是製造計算機,而是讓它們進化。 打個比喻,如果你有一棵盆栽植物,你把它從花盆裡拔出來,會得到一團球狀的根部,這正是花盆的形狀,所以所有不同的盆栽植物都有相同形狀的根部,而根系的細節都不一樣,但它們都在做同樣的事情,它們從土壤中提取養分,它們的功能是一樣的。
而這就是真正的大腦的樣子,這就是我所說的非永生電腦的樣子。這些計算機是培育出來的,而不是製造出來的。你不能給它們編程,它們需要在學習,它們必須有一個某種程度上是內建的學習演算法。他們用模擬來做大部分的計算,因為模擬非常適合做一些事情,例如取電壓,乘以電阻,然後把它變成電荷,再把電荷加起來,晶片已經做了這樣的事情。問題是你接下來要做什麼,你如何在這些晶片中學習。而目前,人們已經提出了反向傳播或各種版本的裝箱機。我認為我們還需要別的東西,但我認為,在不久的將來,我們將會看到非永生計算機,它們的製造成本很低,它們必須透過學習來獲取所有的知識,而且它們所需的能量很低。 當這些非永生電腦死亡時,它們的知識也會隨之死亡。看權重是沒有用的,因為那些權重只適用於硬體。所以你要做的,就是把這些知識提取到其他計算機上。
#Abbeel:今天那些佔據頭條的神經網路都是非常大的。在某種意義上,大型語言模型的規模已經開始向大腦靠近,非常令人印象深刻。你對這些模型有什麼看法?你在其中看到了什麼限制?另一方面,例如螞蟻的大腦顯然比人類小得多,但公平地說,我們人工開發的視覺運動系統還沒有達到螞蟻或蜜蜂的水平。所以,對於最近語言模型的重大進步,你有什麼樣的想法?
Hinton:蜜蜂的大腦可能在你看來很小,但我認為蜜蜂有大約一百萬個神經元,蜜蜂更接近GPT-3。但蜜蜂的大腦其實是一個很大的神經網路。
我的觀點是,如果你有一個參數很大的系統,而且這些參數是用一些合理的目標函數中的梯度下降來調整的,那麼你會得到很好的性能,就像GPT-3那樣,還有我已經提到很多谷歌的類似模型。這並沒有解決它們是否能做到和我們一樣的問題,我認為我們在做更多的事情,例如我們在神經網路中所做的遞歸。
我在去年那篇關於GLOM的論文中試圖闡述這些問題,關於如何在神經網路中做部分孔層次結構。你肯定要有結構,如果你說的符號計算只是你有部分和整體結構,那麼我們做的就是符號計算。這通常不是人們所說的那種偏硬的符號計算,那種符號計算意味著你在使用符號,你在符號上操作的規則只取決於你處理的符號字串的形式,一個符號所具有的唯一屬性是它與其他符號是相同或不相同,也可能是它可以作為指標來獲得一些東西。
#論文網址:https://arxiv.org/pdf/2102.12627.pdf
#神經網路與此非常不同,所以我認為我們做的不是那種偏硬的符號處理,但我們肯定做孔層次結構。但我們是在巨大的神經網路中做的,我現在不太清楚GPT-3在多大程度上能真正理解它所說的話。我認為這是相當清楚的,它不像以前的聊天機器人程式Eliza,只是重新排列符號串,而完全不知道它是在說什麼。相信這一點的理由是,例如你用英文說“給我一張倉鼠戴著紅帽子的圖片”,它就會畫出一張倉鼠戴著紅色帽子的圖片,而它之前從來沒有預先做過這個配對,所以它必須在給出圖片之前理解英語字符和圖片之間的關係。如果你問這些神經網路懷疑論者、神經網路否定論者:「你如何證明它理解了」,我想他們也會接受。如果你讓它畫一幅畫,它就畫出那副畫,那麼它就是理解了。
Abbeel:最近谷歌的PaLM模型展示了它是如何對笑話的機制進行有效解釋的。這似乎是對語言非常深刻的理解。
Hinton:不,它只是在重新排列訓練中的單字。我不同意「如果不是理解了笑話所講的是什麼,它怎麼可能會產生那些對笑話的解釋」這種想法,我仍然對此持開放態度,因為它的框架是反向傳播的,它會走向一種與我們完全不同的理解。很明顯,對抗性圖像告訴你可以透過它們的紋理來識別物體,在這個意義上你可能是正確的,因為它會泛化到其他物體實例。
但這是一種與我們完全不同的方法,我喜歡以昆蟲和花朵為例。昆蟲可以看到紫外線。在我們看來相同的兩朵花,在昆蟲看來可能完全不同。而現在因為花朵在我們看來是一樣的,我們就能說是昆蟲搞錯了嗎?這些花和昆蟲一起進化,紫外線向昆蟲發出訊號,告訴它們這是哪朵花。很明顯,昆蟲是正確的,我們只是看不出差異而已,這是另一種思考對抗性例子的方式。所以問題是,在昆蟲的例子中,誰是對的?僅僅因為兩朵花在我們看來是一樣的,並不意味著它們真的是一樣的,在這種情況下,可能昆蟲關於兩朵花是非常不同的看法是正確的。
Abbeel:對於我們目前神經網路的圖像識別,有人可能會認為,既然我們創造了它們,並希望它們為我們做一些事情,那麼我們真的不想只是承認「好吧,它們是對的,我們是錯的」。我的意思是,它們需要識別出車和行人。
Hinton:是的。我只是想告訴大家,這並不像你想的誰對誰錯那麼簡單。我那篇關於GLOM的論文重點之一就是嘗試建立更類人的感知系統。所以它們會更容易犯下和我們一樣的錯誤,而不會犯下那些不尋常的錯誤。 舉個例子,如果你有一輛自動駕駛汽車,它犯了一個任何正常人類司機都會犯的錯誤,這似乎比犯一個非常愚蠢的錯誤更容易被接受。
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分佈。
以上是Geoffrey Hinton 最新訪談:不出五年,我們就會破解大腦的運作機制,但不是透過反向傳播的詳細內容。更多資訊請關注PHP中文網其他相關文章!