Geoffrey Hinton最新演講梳理:從人工神經網路到RNN應用

機器之心發表於2016-10-18

Ⅰ. 介紹

Geoffrey Hinton 教授上週做了一次非常棒的演講,我學到了很多。儘管該演講是面向普通聽眾,但裡面的好東西要比我預期的多,非常激動能聽到 Hinton 教授分享他的研究。也就是說,那些很瞭解深度學習的人可以認為這是將 Hinton 的想法解釋給對此領域瞭解不多的人。

Ⅱ. 人工神經元和網路

首先,讓我們先講講什麼是人工神經元。我們對大腦中神經元如何運作進行了粗野的理想化實現,以至於透過一堆這樣的神經元的協作讓我們能學習這類計算方式。粗簡化實現就是神經元獲得一些加權輸入,它從神經元突觸獲得一些峰值電壓(動作電位)。如果該輸入超過特定閾值,它就會產生與輸入線性相關的輸出。這被稱為修正線性神經元(rectified linear neuron)。我們可以在一個網路中連線這些神經元,並訓練突觸強點(權重)讓這些網路完成一些任務。

讓我們舉例說明一下這種網路能做什麼。假設我採用一張依照畫素強度(pixel intensity)描述的照片(每個輸入是一個畫素的 3 元組 RGB 值),並假設這張影像中有一百萬個畫素。我們把此作為輸入,輸出就是一串描述影像是什麼的單詞。這是一項難以編寫的計算機程式,也沒人真的知道如何編寫。有人花費了超過 50 年試圖寫出這樣的程式,我敢打賭他們並沒能走多遠。在機器學習領域,可以說難以做程式設計,所以我們打算訓練人工神經網路(ANN)做這件事。

人工神經網路就是一堆這樣簡單的神經元連線到一起。ANN 的最簡單形式被稱為前饋網路,該網路的思路是你採用如上所舉例的影像畫素作為輸入,有多層神經元對應大腦不同的皮層區,而且你還有一些輸出神經元給你回應,給出的回應對應不同的類。相鄰層所有神經元之間的連線強度就是權重,學習內容包括調整神經元之間的這些權重。很明顯,這樣的東西能被用於做昂貴的計算,只要我們能搞清楚如何改變所有連線。

接下來,我將講一種有效又易於理解的演算法,但它也完全無用。你要做的就是採用一個 ANN,在權重上給它一些初始值。你用一張影像作為輸入,而且你還知道正確的輸出類該是什麼,然後你觀察輸出。然後,你要做的就是採用訓練案例的一個小的子集(典型的子集),在此網路上執行這些子集,看該網路怎麼樣。你拿出連線強度中的一個,並稍微的擾亂它(可把它認為是一個突變)。再次在網路上執行同樣測試案例的子集,看它是變的更好還是更壞。如果變的更好,繼續做變動。如果變的更壞,做相反的改動。這種方法有效但卻非常非常慢。在此要重點記住的是,我們在實際網路中有千百萬(或數十億)的連線。為了升級一個連線的權重,上面的流程要在網路上對同樣的子集進行成千上萬次的執行。在效率上這種方法基本無望,但至少知道了它如何工作。為了更加有效,我將講下反向傳播演算法。

III. 反向傳播演算法

反向傳播演算法是計算權重中的改變如何影響輸出誤差的一種有效方式。簡單的說,不再是進行隨機的突變,觀察反向傳播是否對此進行改進,網路觀察輸出和你給出答案(正確的或預期的輸出)之間的差別。它透過使用網路中的權重搞清楚這種差別,並搞清楚如何改變這些連線能產生輸出。這只是一些基礎的微積分學。因為這些權重在網路中,權重中變化的關係和輸出中發生了什麼不是一個未知的秘密,但卻是決定性的。這意味著你可以同時搞清楚所有的權重,要比樸素演算法明顯的更高效。

在反向傳播演算法中,你在網路中用現有的權重向前執行輸入,觀察網路輸出與你想要輸出之間的不同。然後將資訊在一個反向通道中反向傳送到網路,用來計算突觸串(權重)中的一個小變化如何改變所得答案與正確答案之間的相差。並行的對每個連線進行這種工作,你就能朝著改進差異標準的方向輕微升級所有連線。

反向傳播不是一直都很流行。它發明於 20 世紀 70 年代,但它沒能像機器學習科學家預想的那樣有效,因為有很多隱層的深度網路沒有淺層網路好,在迴圈網路中也不很好。到了 90 年代,大部分人都放棄它了。這基本上就是反向傳播的寒冬了。在加拿大的一些人開發出的技術使得機器學習在深度網路中表現更好,而後才渡過了寒冷的冬天。由於這不是該演講的重點,我不會深入此話題。重點是透過開發這些技術,使得反向傳播有效了,從廣義上來說有更多的資料集和計算能力了,全世界都在追求反向傳播了。

IV. 迴圈神經網路

迴圈神經網路(RNN)是該演講的下一個主題。為了簡潔,Hinton 教授略去了很多細節(我相信你可以很輕鬆地在網上找到相關材料)。本文也不會深入到相關細節中,而只會簡單地描述一下這種網路。RNN 是一種接受輸入序列併產生輸出序列的的網路。這種網路由輸入神經元、輸出神經元和一些隱藏神經元組成。在每個時間步驟,隱藏神經元都會接收到一些狀態,而隱藏神經元的狀態依賴於它們在這個時間步驟所接受到的輸入,也依賴於之間步驟的輸入狀態——這也是它們被稱作「迴圈(recurrent)」的原因。關於 RNN 需要注意的一點是其權重在不同的時間步驟是捆綁在一起的,這樣當它經過一系列的時間步驟時,它可以重複利用同樣的權重。它們的訓練方式在細節上和反向傳播有一些相似,此處就不談及這些細節了。瞭解更多資訊,請參看 Hochreiter and Schmidhuber (1997) 瞭解目前效果最好的迴圈網路型別。

V. 應用

Hinton 教授談了一些用 RNN 完成的一些應用。這些應用不管是新是舊,都能為被探索的可能的新領域提供見解(insights),並且在計算方法也取得了一些進步。

i. 預測維基百科的下一個字元

這是 Hinton 的組在 2010、2011 年完成的一項實驗。將維基百科僅看作是一個字元的序列。該網路所見到的就是一個字元的序列——5 億個字元,該網路要做的就是預測下一個字元。不同的字元有 86 個,輸入就是這 86 個字元,而輸出就是預測下一個會出現的字元是什麼(86 個總和為 1 的機率)。正如我之前所提到的,我不會談論演算法上的細節。我很確定如果輸入是「生命的意義是」,你會對這個訓練出來的網路的輸出感興趣。下面這個輸出結果僅供娛樂。

The meaning oflife is the tradition of the ancient human reproduction: it is less favorable to the good boy for when to remove her bigger.

這可比 42 這個答案要有趣多了(42, 是《銀河系漫遊指南》一書裡超級計算機對生命的意義的計算結果,非常富有喜劇性,是所有西方科技愛好者樂於引用的一個調侃型的典故。)!

ii. 一種實現機器翻譯的全新方法

一個更激動人心的主題是相對較新的機器翻譯應用,谷歌將其投入應用還不到兩週。對於每一種語言,我們都有一個編碼器 RNN 和一個解碼器 RNN。其中編碼器 RNN 獲取一個詞串(string of words),並以一些隱藏狀態作為結束。我們將這些隱藏狀態定義為「思想(thought)」。換句話說,任何詞串都可以表達成一個思想(事實並不是聽起來那麼蠢)。英語編碼器 RNN 的工作就是將一個英語詞序列轉換成一個思想向量(thought vector)。你訓練這個 RNN 的方法是:你有成對的英語句子,使用比如法語的解碼器 RNN 的反向傳播,隨著時間逐漸最大化產生特定翻譯的機率。

在更容易的詞中,你可以從完全隨機的權重開始並饋送入英文句子的詞,這些句子會透過這些隨機的權重(隨機思想)。該隨機思想(random thought)被法語解碼器 RNN 的隨機權重編碼以生成一個機率分佈(輸出)。我們從這個分佈中選擇詞,並將其饋送回該 RNN 作為輸入。給定其第一個詞,該 RNN 可以為可能的第二個詞特定一個分佈。這個過程被不斷重複完成,直到完成 full stop。本質上講,我們想做的是獲取輸入串並確定其思想(thought)是什麼,然後將其用另一種語言表達出來。顯然,這就是機器翻譯應該的工作方式。這種方法顯著優於之前所用的詞到詞直接翻譯的方法。

更多資訊請參閱 Suskever, Vinyals, and Le, 2014

VI. 處理噪雜資料的兩種非常不同的方法

該演講的一項討論是機器學習科學家的哲學與傳統的數學家和統計學家處理嘈雜資料的方法之間的不同之處。傳統的統計技術的目標是使用簡單的模型表徵資料,並且只相信不太可能是由噪聲所引起的規律。這種方法是有漏洞的,我們只能檢測到一些非常強的規律。但是,因為這些數學方法涉及到尋找變數和預測輸出之間的關鍵,所以它們允許在模型引數上使用帶有理論分析的的可追溯演算法(traceable algorithm)。

另一方面,Hinton 教授相信,為了實現良好的表現,我們需要利用我們的計算能力,並向我們的網路中注入儘可能多的引數,從而獲取該資料的所有規律(既有可靠的也有不可靠的),並結合所有它們的意見以做出預測。在經驗上講,這已經在完成許多工上被證明是成功的了。還有其它解釋、直覺知識、以及某種程度上的數學公式用於支援機器學習。但是,以我的意見看,儘管機器學習技術取得了成功,但或多或少還缺乏其基礎的理論,甚至完全不存在。

VII. 向前發展的機器學習

正如你可能注意到的那樣,上面的討論全部圍繞著透過監督學習訓練的神經網路。而另一方面,無監督學習到目前為止還沒有取得很大的成功,儘管無監督學習是對人類學習方式的一種更正確的描述。這無疑是一個雄心勃勃的目標,而許多研究者相信類似於人類的創造能力並不能透過完全的無監督學習機制被注入到機器中。這種懷疑不是沒有意義的,因為在沒有提供任何形式的監督的情況下,如果演算法不知道資料中相關的變化,那麼它將如何執行有意義的學習?

隨著機器學習領域的繼續擴張,它毫無疑問將會吸引到越來越多的人才並繼續成熟。隨著這一趨勢的繼續,也許我們最終將能發現機器學習應用的潛在理論,不管其是複雜神經網路的數學公式,還是輸出解的最佳化證明,它肯定在學術研究方面都是一個激動人心的思想。

VIII. 最後的想法

因為機器學習領域是很有發展前途的,所以我認為我們應該記得機器學習的許多基本基礎來自於傳統的統計學和數學方法,儘管存在不同的哲學流派。因此,我們不應該忽視對這些基礎學科的研究,因為它們能極大地加快我們理解機器學習技術的速度。

此外,我想提一下 Hinton 教授留下的一個開放的問題:

如果心智只是我們的大腦——一團神經元、突觸、動作電位和神經遞質構成的網路——的產物,那麼我們可以將心智注入一個電腦建模了我們的大腦的人工神經網路嗎?如果可以,這又意味著什麼?

最後,作為結語。毫不奇怪,這個演講廳已經爆滿,我只能在後排的柱子旁邊聽 Hinton 教授的演講,為了看到幻燈片,我時不時就要伸出腦袋去瞧一眼。聽 Hinton 教授的演講無疑是一種享受。這是一個高層次的演講,但也透徹地介紹了機器學習領域及其應用,我希望能夠透過這一篇評論將這些概念和知識傳遞給你。

相關文章