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

2020-12-11 雷鋒網

雷鋒網按:這篇文章發布已久,但非常經典,出自 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 可謂是深度學習的寵兒,我也同樣相信接下來的數年也會是這樣。

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

相關焦點

  • 複習:記憶遺忘曲線
    遺忘,是人的天性,為了與遺忘對抗,我們才需要複習。問題是,什麼時候覆習效果最好呢? 既然複習是為了對抗遺忘,就不得不說一下遺忘曲線了。 關於記憶遺忘曲線遺忘是學習的天敵,好在遺忘是有規律的。 所以,了解自己的遺忘規律,然後制定有針對性的複習計劃,這樣才能有效地與遺忘對抗,才能最大限度地保護學習的成果不被竊取。同時,也能夠將時間最高效的利用起來,既不至於過於頻繁的複習導致浪費時間,也不至於複習不及時遺忘太多。 然而,想要了解自己的遺忘規律,工作量是相當可觀的,值得慶幸的是已經有科學家研究過了。
  • 詳解LSTM:神經網絡的記憶機制是這樣煉成的
    非常簡單:我們知道神經網絡的隱含層已經對關於輸入的有用信息進行了編碼,因此,為什麼不把這些隱含層作為記憶來使用呢?首先,我們需要知道哪些長期記憶需要繼續記憶,並且需要知道哪些長期記憶需要捨棄。因此,我們使用新的輸入和工作記憶來學習0和1之間n個數字的記憶門,各個記憶門決定某長期記憶元素需要保留的程度。(1表示保存,0表示完全遺忘)。
  • 關於記憶的遺忘曲線
    下面我們對這兩種記憶方式都分析一下。 一提到用機械記憶的方式來背誦單詞,很多人都會說起「艾賓浩斯遺忘曲線」。比如剛成功背誦的內容,過20分鐘後測試,就只剩下58.2%的記憶了,1小時後還剩44.2%,8.8小時後又減少到35.8%,然後遺忘速度逐漸減緩,一天後剩33.7%,2天後剩27.8%,6天後25.4%,一個月後還能保留有21.1%的記憶。最後他總結出,記憶保留量與時間呈現自然對數曲線特徵。
  • -人類,嬰兒,記憶,大腦 ——快科技...
    但是即使是成年人,如果沒有刻意去記住一件事情,隨著時間的流逝,我們也很容易發生遺忘。一些科學家給出了一種解釋,不是我們在嬰兒時期沒有記憶,而是隨著生活,我們逐漸遺忘了那些事情。19世紀德國心理學家赫爾曼·艾賓浩斯就進行了一系列的實驗來驗證這一觀點。
  • 我們的記憶會出現偏差?科學家認為這種感覺是大腦內部的記憶體驗
    許多科學家都認為,這種感覺是我們人體大腦內部的記憶體驗感覺。 人是自然界一個較為特殊的物種,就在於我們形成了文明,具備了語言、文字等交流方式。
  • 艾賓浩斯記憶遺忘曲線
    記憶的一般規律 他在1885年發表了他的實驗報告表明:人類輸入的信息在經過人的注意過程的學習後,便成為了人的短時的記憶,但是如果不經過及時的複習,這些記住過的東西就會遺忘,而經過了及時的複習,這些短時的記憶就會成為了人的一種長時的記憶,從而在大腦中保持著很長的時間。
  • 用金庸、古龍群俠名稱訓練 LSTM,會生成多麼奇葩的名字?
    本文先介紹一下LSTM,然後用LSTM在金庸、古龍的人名上做了訓練,可以生成新的武俠名字,如果有興趣的,還可以多搜集點人名,用於給小孩兒取名呢,哈哈,justforfun,大家玩得開心…RNN回顧RNN的出現是為了解決狀態記憶的問題,解決方法很簡單,每一個時間點t的隱藏狀態h(t)不再簡單地依賴於數據,還依賴於前一個時間節點t-1的隱藏狀態h(t-1)。
  • 遺忘曲線出賣大腦記憶規律,3招斬獲良好記憶效果
    科學研究曾經指出,理論上人的大腦可以將全世界圖書館所有圖書的信息記住。但是,為什麼我們總是記不住呢?因為我們忽視了記憶最重要的因素:記憶的牢固度問題 。德國心理學家艾賓浩斯(H.Ebbinghaus)研究人類大腦遺忘的規律,並把這個些規律描繪成一條「遺忘曲線」。
  • 法科學家發現大腦長期儲存記憶的區域
    新華網巴黎7月5日電(記者楊駿)法國波爾多大學科學家布盧諾·邦滕皮及其研究小組最近通過研究終於發現了大腦儲存並調出舊時記憶的區域。據稱,這一發現為今後人們有針對性地治療記憶退化病人提供了可能。  邦滕皮等人早先的研究表明,大腦海馬區對於記憶的形成起著重要作用,但這種作用只是暫時的,這一區域並不構成記憶最終的儲存地。
  • 如何使用LSTM在Keras中快速實現情感分析任務
    長短期記憶上面提到的 RNN 的缺陷促使科學家發明了一種 RNN 模型的新變體,它就是長短期記憶(LSTM)。LSTM 可以解決這個問題,因為它使用了門機制來控制記憶過程。為了克服梯度消失問題,我們需要一個二階導數在到達 0 之前能夠持續很長範圍的函數。tanh 函數就是滿足這一屬性的合適函數。為什麼使用 Sigmoid?Sigmoid 可以輸出 0 或 1,因此它可用來遺忘或者記住信息。
  • 大腦如何「刪除」不快的記憶 科學家告訴你
    原標題:大腦如何「刪除」不快的記憶 科學家發現大腦中的一種迴路可以幫助我們遺忘恐懼和焦慮。 一項新的研究表明,一種基於兩個大腦區域之間的工作連接是驅散恐懼的必要條件。圖片來源:Thinkstock   大腦能夠極其敏銳地探測到環境中的威脅。
  • 如何學習:揭秘大腦學習原理,探尋記憶存儲真相
    從來沒有哪本書能像它這樣,不但匯集了如此之多有關記憶的現有科研論據,更提供了如此之多方便實用的記憶方法。--丹尼爾·威靈厄姆維吉尼亞大學心理學教授這本書就像一本啟示錄。兩個多世紀以來,心理學家和腦神經科學家們一直默默地致力於解讀大腦的秘密,想要弄明白人的心理、記憶與學習之間的關係。
  • 教程 | 如何使用LSTM在Keras中快速實現情感分析任務
    長短期記憶上面提到的 RNN 的缺陷促使科學家發明了一種 RNN 模型的新變體,它就是長短期記憶(LSTM)。LSTM 可以解決這個問題,因為它使用了門機制來控制記憶過程。讓我們來理解 LSTM 的結結構,並將它與 RNN 進行對比:
  • 《心理學百科》解讀,第十講:「艾賓浩斯遺忘曲線」如何高效記憶
    大家好,今天是「倚龍的讀書俱樂部」關於《心理學百科》解讀的第十講,今天我們來講一講著名的艾賓浩斯關於如何高效記憶的研究。一、《心理學百科》解讀第一模塊即將學完首先,告訴大家一個好消息,今天的這一講,是整個《心理學百科》解讀第一模塊—「心理學源起」的倒數第3講,也意味著大家快要完成第一模塊的學習了!
  • 科學家成功揭示大腦記憶形成的分子機制!
    Pathway Gates Novelty-Induced Contextual Memory Formation」的研究報告中,來自奧地利科學技術學院等機構的科學家們通過研究揭開了記憶形成的新基石,文章中研究人員研究了大腦中海馬體區域的特殊信號通路,同時還揭示了該通路如何控制機體經歷新環境時形成的新記憶。
  • 記憶的遺忘特性告訴了我們什麼?
    人類有著記憶的能力自然也有遺忘的本領,就像人會吸氣自然也會呼氣。人不能沒有呼吸,也不能沒有記憶與遺忘人的記憶是將自己看到的、聽到的、想到的…………等等記錄在自己的大腦中,這些記憶或許是圖像,或許是文字,或許是影像,也或許是一種情感,但是不論它是什麼
  • 巧用「遺忘曲線」,讓記憶更牢固
    後來我在網上看到了關於「遺忘曲線」的規律,受到了很大啟發。遺忘的情況是在記憶之後立刻出現,在開始階段遺忘速度很快,隨後逐漸變慢。,一個月依次進行複習鞏固記憶,這樣才能發揮記憶曲線的特點。而關於記憶的一些高效方式,秀秀 在此為大家分享幾點:1.圖像記憶加拿大著名心理學家赫布提出大腦在同時接受到相關聯的「聲音」和「圖像」刺激時,會促使大腦中負責聲音和圖像的功能被同時激發,記憶效果更好。
  • 華人科學家率先發現大腦記憶存在「編碼單元」
    中新網上海四月十三日電(記者許曉青)人類破解大腦記憶上海華東師範大學今天向海內外宣布,該校腦功能基因組學研究所副教授林龍年博士與美國波士頓大學的華裔科學家錢卓教授合作,在世界上首次發現了大腦記憶的「編碼單元」。
  • 美「超憶症」男子記得一生所有事 被稱「人體谷歌」
    布拉德的大腦就像是一本關於名字、照片、日期和各種事件的百科全書剪貼簿,過去生活中發生的每樣事件,都會在布拉德的大腦中「編成目錄」,他任何時候進行回憶,都能立即從「大腦百科全書」中找到需要的東西。布拉德的大腦被人比喻成是「人體谷歌」,因為他只要到大腦中進行搜索,就能立即找到某個老新聞發生的具體日期,甚至事發當天的天氣情況!
  • 加州大學發現大腦中影響學習和遺忘的關鍵腦電波
    加州大學舊金山分校研究人員的一項新研究顯示,睡眠大腦中不同的電活動模式可能會影響我們記得還是忘記前一天學到的東西。研究人員表示,科學家通過調節動物睡覺時的腦電波,可以影響大鼠學習新技能的能力,這表明在增強人類記憶力或忘記創傷經歷方面潛在的未來應用。