谷歌大腦科學家親解 LSTM:一個關於「遺忘」與「記憶」的故事

2021-01-08 雷鋒網

雷鋒網(公眾號:雷鋒網)按:這篇文章發布已久,但非常經典,出自 Google Brain 科學家 Christopher Olah 的博客,小編保證這是相對通俗易懂的一篇入門介紹了,看不懂的話歡迎關注「AI 科技評論」私聊。

如果你對深度學習稍有些研究的話,相信你一定聽說過 LSTM,雷鋒網此前也編譯過 LSTM 之父 Jürgen Schmidhuber 的訪談文章,他與 Sepp Hochreiter 在 1997 年發表的一篇論文中提出了 LSTM 的概念。

LSTM 能夠提升神經網絡接受輸入信息及訓練數據的記憶機制,讓輸出結果得到大幅度的提升。雖然因為當時的硬體限制不那麼廣為人知,但近年來包括谷歌在內的一系列公司都開始在深度學習中採用 LSTM。

那麼 LSTM 到底是什麼呢?雷鋒網今天介紹的這篇文章出自 Google Brain 科學家 Christopher Olah 的博客,雷鋒網在原文的基礎上加入了一些自己的理解,儘量保證這是最簡單的入門介紹了,看不懂的話歡迎關注「AI 科技評論」私聊。

首先,了解一下 RNN 吧

在開始 LSTM 的入門前,別急,讓我們先了解一下 RNN。如果你有一定的基礎,雷鋒網建議你直接跳過這一部分。

首先,人們在思考問題的時候,並不會從零開始,而是會憑藉自己以往的一些經驗與記憶做出判斷。最簡單的例子,就是你現在正在閱讀的過程中,你不會孤立地理解所讀的每一個詞,而會結合前面所看到的詞來理解意義。也就是說,你的思考具備連續性。

傳統的神經網絡可做不到這一點,而且這儼然是它的一個短板。舉個例子,你想要對一部電影裡的每個鏡頭進行分類,判斷熒幕上都在演些什麼。但是,傳統神經網絡可能只能孤立地看待每一幀,而無法把上一個鏡頭串聯起下一秒發生的事情。

RNN(循環神經網絡)就是為解決這個問題而生的,顧名思義,也就是能夠讓信息在網絡中再次循環的網絡。

含有「環」(loop)的循環神經網絡

上圖是 RNN 的一部分,A 的輸入是 xt , 輸出為值 ht. 這個循環能夠讓信息從神經網絡中的一步傳遞到下一步。

這些環看起來讓 RNN 變得有些難理解。但是,如果你再想一下,其實它與傳統神經網絡類似,只不過是把同一個網絡多次複製,並將信息傳遞到下一個網絡。如果將這個循環拆開,就能比較容易地理解了:

一個展開的 RNN

像鏈條一樣的網絡實際上也體現出 RNN 的一個特點:它與序列或列表有著緊密的聯繫,而它們是處理此類數據的重要架構(簡直就是量身定製的一樣!)。

而更重要的是,它們確實得以順利應用。在過去的幾年時間中,RNN 被成功應用於解決各種問題:語音識別、語言建模、機器翻譯、為圖像起標題等……而且它的應用領域還在不斷擴展。它到底有多牛?我就不在這裡贅述了。

這些成功的關鍵在於它們使用了 LSTM。LSTM 是 RNN 的一種特殊形式,而它的普適性比起傳統的 RNN 要好得多。幾乎所有激動人心的發現都是在 LSTM 上實現的,而這也是雷鋒網在接下來的篇幅中所要討論的內容。

世界上最遙遠的距離

RNN 的一大魅力在於它能夠將此前的信息結合到當前的任務中,比如像我們剛才提及的電影例子一樣,利用此前的幀信息理解當前的內容。如果 RNN 能實現這一點,那誠然非常有效。但事實是否如願?不一定。

有時,我們只需要利用近期信息來處理當前任務。比如在一個語言模型中,如果我們嘗試根據幾個單詞來預測下一個單詞,像我們要猜出「the clouds are in the _____」,但是因為句義已經非常明顯,我們不需要更多的上下文。在這種情況下,相關信息所隔的距離並不遠,因此 RNN 能夠學會使用此前的信息。

但是,就像我們做完型填空時,可能需要整合全文來填某一個句子,比如「I grew up in France….(雷鋒網此處省略一萬字)I speak fluent _____ .」。如果網絡只知道鄰近的幾個單詞,可能它會知道此處需要填寫一門語言,但至於應該填什麼,就需要找到更遠前的信息,直到 找到 France 才行。這種需要尋找相距很遠信息的情況,實際上非常常見。

而糟糕的是,距離增加時,RNN 能將相關信息串聯起來的能力也就越弱。正如雷鋒網雲,世界上最遙遠的距離不是生與死,而是明明在同一個段落裡,卻找不到相關聯的詞語。

理論上,RNN 是能夠處理這種「遙遠」的問題的。我們能夠人為地挑選出一些參數,解決依賴問題中較為簡單的任務。不過在實踐中,RNN 並不能自主地處理這些任務。這個問題 Hochreiter (1991) [German] 與 Bengio, et al. (1994) 已經進行過探討並找到了相關方法。

幸運的是,LSTM 不存在這個問題。

LSTM 網絡

長短期記憶網絡——通常也被簡稱為 LSTMs——是一種特殊類型的 RNN,能夠學習長期的依賴關係。這個網絡就像雷鋒網所說的,由 Sepp Hochreiter 和 Jürgen Schmidhuber 在 1997 年提出,並加以完善與普及,LSTM 在各類任務上表現良好,因此也被廣泛使用。

LSTM 就是為了解決長期依賴問題而生,也就是說,對信息的長期記憶是它們的自發行為,而不是刻意去學習的。

所有的 RNN 都具備重複性的鏈條形式,而在標準的 RNN 中,這個重複模式都有著一個簡單的結構,比如單層的 tanh 層。

標準 RNN 的重複模塊裡都有一個單層網絡

LSTM 也有這種結構化的鏈條,但重複性模塊有著不同的結構。與 RNN 不同的是,LSTM 中有一個四層的網絡,並以一種特殊的方式進行交互。

LSTM 網絡的重複模塊包含一個四層的交互網絡

然而我們並不需要在意這些細節。接下來,請和雷鋒網一起對 LSTM 圖進行一步步的梳理。現在,讓我們一起熟悉下接下來會用到的一些符號。

 在上面所示的圖中,

LSTMs 的核心

LSTMs 的核心所在是 cell 的狀態(cell state),也就是下圖這條向右的線。

Cell 的狀態就像是傳送帶,它的狀態會沿著整條鏈條傳送,而只有少數地方有一些線性交互。信息如果以這樣的方式傳遞,實際上會保持不變。

LSTM 通過一種名為「門」(gate)的結構控制 cell 的狀態,並向其中刪減或增加信息。

雷鋒網註:你可以把門理解為一種控制信息通過的方式。門由一個 sigmoid 網絡層與一個按位乘操作構成。

Sigmoid 層的輸出值在 0 到 1 間,表示每個部分所通過的信息。0 表示「對所有信息關上大門」;1 表示「我家大門常打開」。

一個 LSTM 有三個這樣的門,控制 cell 的狀態。

解讀 LSTM:一個關於「遺忘」的故事

首先,LSTM 的第一步需要決定我們需要從 cell 中拋棄哪些信息。這個決定是從 sigmoid 中的「遺忘層」來實現的。它的輸入是 ht-1 和 xt,輸出為一個 0 到 1 之間的數。Ct−1 就是每個在 cell 中所有在 0 和 1 之間的數值,就像我們剛剛所說的,0 代表全拋棄,1 代表全保留。

再拿剛才預測單詞的語言模型來舉例,cell 的狀態可能會需要考慮主語的性別,這樣才能找到正確的代詞。因此如果我們設定,如果看到了一個新的主語,就「忘記」舊的主語所代表的性別。

下一步,我們需要決定什麼樣的信息應該被存儲起來。這個過程主要分兩步。首先是 sigmoid 層(輸入門)決定我們需要更新哪些值;隨後,tanh 層生成了一個新的候選向量 C`,它能夠加入狀態中。

最後,我們將這兩個值結合起來,並更新 cell 的狀態。

在雷鋒網方才提及的這個例子中,我們需要將新主語的性別信息加入 cell 的狀態中,以替換要忘記的舊信息。

接下來,我們就可以更新 cell 的狀態了。將舊狀態與 ft 相乘,忘記此前我們想要忘記的內容,然後加上 C`。得到的結果便是新的候選值,依照我們決定的值進行縮放。

在這個語言模型中,這個過程就實現了我們所設想的目標:遇到一個新主語時,就忘記舊語言的性別。

最後,我們需要確定輸出的內容。這個輸出內容取決於我們的 cell 狀態,但這是一個經過過濾的版本。

首先,我們會運行一個 sigmoid 層決定 cell 狀態輸出哪一部分。

隨後,我們把 cell 狀態通過 tanh 函數,將輸出值保持在-1 到 1 間。

之後,我們再乘以 sigmoid 門的輸出值,就可以得到結果了。

對於語言模型的例子,當它只看到一個主語時,就可能會輸出與動詞相關的信息。比如它會輸出主語是單數還是複數。這樣的話,如果後面真的出現了動詞,我們就可以確定它的形式了。

LSTM 的各種「變體」

目前我所提及的 LSTM,只是最最基本的形式,並不是所有的 LSTM 長得都一樣一樣的。實際上,所有提及 LSTM 的論文都有著小小的改動,這些改進雖然並不明顯,但值得在這裡一提。

時尚時尚最時尚的 LSTM 變體就是 Gers & Schmidhuber (2000) 提出的「貓眼連接」(peephole connections)的神經網絡,也就是說,門連接層能夠接收到 cell 的狀態。

上圖展示了全加上「貓眼」的效果,但實際上論文中並不會加這麼多啦。

另一種變體就是採用一對門,分別叫遺忘門(forget)及輸入門(input)。與分開決定遺忘及輸入的內容不同,現在的變體會將這兩個流程一同實現。我們只有在將要輸入新信息時才會遺忘,而也只會在忘記信息的同時才會有新的信息輸入。

一個比較惹眼的變體為 GRU(Gated Recurrent),由 Cho, et al. (2014) 提出。他將遺忘門與輸入門結合在一起,名為「更新門」(update gate),並將 cell 狀態與隱藏層狀態合併在一起,此外還有一些小的改動。這個模型比起標準 LSTM 模型簡單一些,因此也變得更加流行了。

當然,這裡所列舉的只是一管窺豹,還有很多其它的變體,比如 Yao, et al. (2015) 提出的 Depth Gated RNNs;或是另闢蹊徑處理長期依賴問題的 Clockwork RNNs,由 Koutnik, et al. (2014) 提出。

哪個是最好的呢?而這些變化是否真的意義深遠?Greff, et al. (2015) 曾經對比較流行的幾種變種做過對比,發現它們基本上都差不多;而 Jozefowicz, et al. (2015) 測試了超過一萬種 RNN 結構,發現有一些能夠在特定任務上超過 LSTMs。

結論

早些時候,我曾經提及很多人用 RNN 取得重要進步,而這些都是基於 LSTM 的網絡。它們的確在大多數任務上表現頗佳!

在前文中,雷鋒網小編貼出了好多公式呀,概念呀,算法呀,搞得 LSTM 好像有點嚇人。但是呢,我們希望一步步的解讀能讓 LSTM 於你而言,不再是一頭霧水的一個概念,讓它變得更加有人味一些。

LSTM 對於 RNN 來說是一個大的進步。在有了 LSTMs 後,越來越多的任務都可用 RNN 來解決了。那麼自然地,我們會想:是否還會有下一個 LSTM 式的飛躍呢?學界普遍的一個答案是,會的!下一步就是 attention 了。Attention 是什麼?也就是說,從 RNN 的每一步中提取信息,並形成一個更大的信息集合。比如使用 RNN 產生能描述圖片的標題時,它可能只選擇圖片的一部分進行關注。實際上,Xu, et al. (2015) 就是這樣做的——這可能會成為你探索 attention 算法的一個切入口。目前採用 attention 的研究也已經取得了不少進展,可能已經走到了飛躍的十字路口吧……

除了 attention,RNN 領域中還有其它的研究方向,比如 Kalchbrenner, et al. (2015) 的 Grid LSTMs 前景不錯,而生成模型中的 RNN 同樣也令人印象深刻:比如 Gregor, et al. (2015)、 Chung, et al. (2015) 或是 Bayer & Osendorfer (2015) 的論文。

過去幾年間,RNN 可謂是深度學習的寵兒,我也同樣相信接下來的數年也會是這樣。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 大腦為什麼會遺忘 關於大腦遺忘機制目前仍無標準答案
    一直以來,科學家們把遺忘看作是記憶的一個小故障。不過日前《自然》增刊《自然展望-大腦》上刊發的一篇名為《記憶中被遺忘的部分》文章裡提出,過去十年裡,越來越多的證據表明,記憶的喪失並不是被動的過程,而更像是一種主動的過程,我們的大腦在不停地主動遺忘。不過,目前這些觀點都還只是假說,還需要進行大量實驗來驗證。
  • 大腦如何學會遺忘(翻譯)
    我們的大腦傾向於忘記我們希望我們永遠記住的事物。但是,它不能忘記我們希望從未發生和存在的某些事物。您的大腦如何忘記?而且,您的大腦會故意忘記嗎?本質上,人腦會忘記。不合時宜的是,這種大腦過程的生物學機制了解得很少。只有很少的研究可以闡明這一方面。2012年5月,科學家試圖在其報告中解釋主動消除記憶的分子生物學。
  • 如何使用LSTM在Keras中快速實現情感分析任務
    長短期記憶上面提到的 RNN 的缺陷促使科學家發明了一種 RNN 模型的新變體,它就是長短期記憶(LSTM)。LSTM 可以解決這個問題,因為它使用了門機制來控制記憶過程。為了克服梯度消失問題,我們需要一個二階導數在到達 0 之前能夠持續很長範圍的函數。tanh 函數就是滿足這一屬性的合適函數。為什麼使用 Sigmoid?Sigmoid 可以輸出 0 或 1,因此它可用來遺忘或者記住信息。
  • 記憶是怎麼產生的?如何和遺忘作鬥爭?
    圖1理論1:記憶是大腦皮層特定部位產生的。另外,科學家還發現,切除了額葉的猴子,無法完成短時記憶方面的任務。以上研究,為記憶是在大腦中的局部定位說法提供了例證。理論2:記憶是由整個腦神經綜合產生的。美國心理學家拉希裡認為記憶活動不是在腦的某一點,而是整個大腦。他在大白鼠皮層切除實驗中發現,其學習能力不受大腦皮層特定部位損傷的影響,而與切除面積的大小相關,切除面積越大越影響大白鼠的學習能力。
  • 大腦遺忘的觸發機制
    美國科學家研究發現,試圖壓制對於往事的回憶會讓人忘記同一時期前後與之相關的經歷,這些可能有助於解釋創傷性事件後的記憶喪失。這個研究團隊在381人當中進行7個記憶提取實驗,闡明了事件可能被遺忘的方式。當前一個詞出現在電腦屏幕上時,他們被要求想起或者壓制對於第二個詞的記憶。在實驗期間,偶爾會有奇異的圖片在電腦上展示(例如一隻孔雀在一個停車場裡)。接下來,通過展示一張特定照片的背景詢問被試者,回憶和此背景相關的物體來測試記憶情況。研究者發現讓被試者壓制對於詞語的記憶也讓他們更難記起在收到壓制命令之前或者之後看到的物體的細節。
  • 大腦新生神經元:加速你遺忘的「催化劑」
    隨著模式分離相關研究的深入,科學家們也開始探究已有的神經網絡是怎麼整合新生神經元的。內嗅皮層是大腦中具有廣泛神經網絡連接的腦區,參與記憶、導航和時間感知等認知過程,研究表明,齒狀回產生的新生神經元為了連上內嗅皮層(entorhinal cortex/EC)的神經元,需要與已有的成熟神經元競爭。
  • 記憶主要發生在大腦海馬區 科學家稱人不會遺忘
    (資料圖片)  記憶是怎麼回事?  人類的大腦,是我們至今仍無法理解的區域。從結構上來看,生命進化近40億年產生的智慧大腦,其實不比其他生物先進很多。在實驗室裡,我們可以用一個大烏賊來研究神經傳導模式,因為人類神經細胞動作電位的產生機制和大烏賊並沒有什麼不同;我們還可以用線蟲來研究多巴胺的代謝和傳遞,雖然它整個身體只有302個神經元,但是卻和最智慧最複雜的人類大腦擁有相似的工作模式。  那麼到底是什麼引起了我們記憶的自動擦除呢?難道真的有一個「橡皮擦」在我們的大腦裡麼?
  • 記憶的遺忘特性告訴了我們什麼?
    人類有著記憶的能力自然也有遺忘的本領,就像人會吸氣自然也會呼氣。人不能沒有呼吸,也不能沒有記憶與遺忘人的記憶是將自己看到的、聽到的、想到的…………等等記錄在自己的大腦中,這些記憶或許是圖像,或許是文字,或許是影像,也或許是一種情感,但是不論它是什麼,在大腦中的記錄都變成了一種感覺,或是清晰到明白是那些文字的感覺
  • 人類生命的最深處——大腦遺忘機制是遵循什麼原理呢?
    日前,《自然》增刊《自然展望-大腦》上刊發的一篇名為《記憶中被遺忘的部分》文章裡提出,過去十年裡,越來越多的證據表明,記憶的喪失並不是被動的過程,而更像是一種主動的過程,我們的大腦在不停地主動遺忘。 不過,目前上面這類論文都還只能說是假說,需要進行大 量重複實驗來驗證。
  • 高效記憶:艾賓浩斯遺忘曲線
    渴望擁有哆啦A夢的「記憶麵包」?究竟真的是自己太笨了,還是沒有掌握好學習的方法呢?今天,小編就和大家分享有關記憶的事——艾賓浩斯遺忘曲線著名的艾賓浩斯遺忘曲線由德國心理學家艾賓浩斯(H.Ebbinghaus)研究發現,描述了人類大腦對新事物遺忘的規律。
  • 如何學習:揭秘大腦學習原理,探尋記憶存儲真相
    從來沒有哪本書能像它這樣,不但匯集了如此之多有關記憶的現有科研論據,更提供了如此之多方便實用的記憶方法。--丹尼爾·威靈厄姆維吉尼亞大學心理學教授這本書就像一本啟示錄。兩個多世紀以來,心理學家和腦神經科學家們一直默默地致力於解讀大腦的秘密,想要弄明白人的心理、記憶與學習之間的關係。
  • 科學學習,你了解大腦是「如何記憶」的嗎?
    大腦是非常神秘的人體器官,對大腦的研究一直是備受關注的,那麼大腦到底是怎樣工作的,我們了解這些科學,對於我們有效的學習,科學的學習,準確記憶,記憶輸出都至關重要。第一,大腦是如何存儲記憶的呢?大腦中,記憶系統的核心部位有三個:內嗅皮層、海馬體和新皮層。我們把大腦的記憶系統假想成一個具有自我思想的電腦。
  • 水凝膠製成的人造大腦,竟然真的具有了記憶和遺忘功能
    、遺忘行為。人腦有學習能力,當這些知識不再重要時,大腦會淡忘它們。然而,想要在人造材料中重現這種動態記憶過程是一個不小的挑戰。日本北海道大學的研究人員發現了一種水凝膠材料,能夠根據記憶強度編碼信息,同時這些信息會隨著時間的推移消失。《美國國家科學院院刊》於7月27日發布了他們的研究結果。
  • 2018年教師招聘考試:記憶遺忘的原因
    遺忘是指識記過的東西不能再認或者再認或回憶發生錯誤的現象。在教師招聘考試中常結合案例以選擇題的形式對關於不同學說遺忘的觀點的進行考察,能正確理解不同遺忘學說的內涵是解答該類題目的關鍵,下面就我們講重點區分不同學說的觀點。
  • 人的大腦相當於多大內存?大腦的神奇之處,不只在於簡單的記憶
    大腦記憶信息的方式與電腦有很大區別在記憶這個問題上,人腦要反覆的經歷記憶和遺忘,才能保證記憶的準確。而電腦內存的寫入,是通過改變硬碟中磁條的極性,基本可以保證一次救過。例如在記憶漢字中,我們記住了「人」這個漢字,對於電腦來說,其實是一個由無數顆粒鋪成的「人」字的四四方方的圖片,而每一個顆粒用「0」或「1」來表示就夠了。
  • 科學家研製出「忘情藥」 可使人遺忘痛苦
    電影《美麗心靈的永恆陽光》講述的就是一對經常爭吵的情侶把痛苦記憶「刪除」的故事。如今,這種電影情節可望成真。    據英國《每日郵報》報導,科學家們已發明出一種可幫助遺忘痛苦的藥片,服用者能忘記過去自己遭受創傷的經歷。不過,有專家警告說,服用它也可能導致人們忘了自己的身份。     科學家們的研究表明,在兩組人群中,服用了阻止痛苦藥片的人可以測試出較輕的關於特定恐懼的記憶。
  • 不可思議的記憶——大腦的神奇之處
    白天記住的東西大多是短期記憶。大腦在深度睡眠階段會把短期記憶轉化為長期記憶。根據西北大學的研究,當人們回想第一次遇到另一半的時候,傾向於把當前的感覺投射到過去的記憶中去。記憶會重組和編輯過去的事件,創造一個新的故事,適應當前的狀態。
  • 當你沉睡時,記憶和遺忘開始對決
    大腦收集到的信息遠超過它所能保留的。我們整天都在接收新的信息,但僅有一部分能被保留到隔夜或者更久。睡眠似乎對這一學習和遺忘之間的平衡至關重要,它通過大腦電信號的不同模式來加固一部分的記憶,同時消除另一部分的記憶,但在此過程中起作用的機制我們一直不清楚。
  • 我們的大腦與記憶機制
    你對自己的大腦了解多少?每個人都想擁有一個聰明的腦袋,擁有超強的記憶力,一旦需要哪方面的知識,就可以迅速提取並給出正確的答案。不管是學生,還是出來社會工作了,都是對記憶有要求,都需要用到大量的記憶。當需要記憶某一個東西的時候,首先是經過右腦處理形成一張圖像,接著再把圖像信息傳給左腦進行加工,轉換成文字信息加以儲存。接著,來看看大腦記憶需要哪些流程,又是怎樣分工的?1、 攝取記憶感覺,知覺,思維,表徵和表像,這些是攝取記憶的幾個方面。
  • 遺忘曲線——揭秘人類記憶存儲的奧秘
    咱們今天不是談《最強大腦》中的天才是如何對信息進行編碼,實現快速記憶的能力怎樣練就,因為這種方法不是所有人都有時間去刻意練習從而增進功力。今天我們只是把一些乾貨拿出來進行分析和討論,它比較適合大多數人,也可以適當的改變目前的學習習慣,在生活和工作當中更好的利用它,從中得益。