精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

LSTM入門必讀:從基礎知識到工作方式詳解

開發(fā) 開發(fā)工具
長短期記憶(LSTM)是一種非常重要的神經(jīng)網(wǎng)絡技術,其在語音識別和自然語言處理等許多領域都得到了廣泛的應用。在這篇文章中,Edwin Chen 對 LSTM 進行了系統(tǒng)的介紹。

長短期記憶(LSTM)是一種非常重要的神經(jīng)網(wǎng)絡技術,其在語音識別和自然語言處理等許多領域都得到了廣泛的應用。在這篇文章中,Edwin Chen 對 LSTM 進行了系統(tǒng)的介紹。

我第一次學習 LSTM 的時候,它就吸引了我的眼球。事實證明 LSTM 是對神經(jīng)網(wǎng)絡的一個相當簡單的擴展,而且在最近幾年里深度學習所實現(xiàn)的驚人成就背后都有它們的身影。所以我會盡可能直觀地來呈現(xiàn)它們——以便你們自己就可以弄明白。

首先,讓我們來看一幅圖:

?LSTM ?

LSTM 很漂亮吧?讓我們開始吧!

(提示:如果你已經(jīng)熟知神經(jīng)網(wǎng)絡和 LSTM,請直接跳到中間部分,本文的前半部分是入門級概述。)

一、神經(jīng)網(wǎng)絡

想象一下,我們有一部電影的圖像序列,我們想用一個活動來標記每一副圖像(例如,這是一場戰(zhàn)斗嗎?圖中的人物在交談嗎?圖中的人物在吃東西嗎......)

我們?nèi)绾巫龅竭@一點呢?

一種方法就是忽略圖像的順序本質(zhì),構(gòu)造將每幅圖像單獨考慮的圖像分類器。例如,在提供足夠多的圖像和標簽時:

  • 我們的算法首先檢測到較低水平的模式,例如形狀和邊緣。
  • 在更多的數(shù)據(jù)下,它可能學會將這些模式組合成更加復雜的模式,例如人臉(兩個圓形東西下面有一個三角形的東西,下面還有一個橢圓形的東西),或者貓。
  • 甚至在更多的數(shù)據(jù)下,它可能學會把這些高水平的模式映射到活動本身(具有嘴巴、牛排和叉子的情景可能與吃有關)。

那么,這就是一個深度神經(jīng)網(wǎng)絡(deep neural network):它使用一副圖片作為輸入返回一個活動作為輸出,就像我們可以在不了解任何關于狗的知識就可以學會在狗的行為中檢測到模式一樣(在看了足夠多的柯基犬之后,我們會發(fā)現(xiàn)一些諸如毛茸茸的屁股和鼓槌般的腿),深度神經(jīng)網(wǎng)絡可以通過隱藏層的表征來學會表示圖片。

數(shù)學描述

我假定讀者早已熟悉了基本的神經(jīng)網(wǎng)絡,下面讓我們來快速地復習一下吧。

  • 只有一個單獨的隱藏層的神經(jīng)網(wǎng)絡將一個向量 x 作為輸入,我們可以將它看做一組神經(jīng)元。
  • 每個輸入神經(jīng)元都被通過一組學習得到的權重連接到隱藏層。
  • 第 j 個隱藏神經(jīng)元的輸出如下:(其中? 是一個激活函數(shù))
  • ??

  • 隱藏層是全連接到輸出層的,第 j 個輸出神經(jīng)元的輸出 yj 如下:如果我們需要輸出概率,我們可以通過 softmax 函數(shù)對輸出做一下變換。
  • ??

 

寫成矩陣形式如下:

??

其中

  • x 是輸入向量
  • W 是連接輸入和隱藏層的權重矩陣
  • V 是連接隱藏層和輸出的權重矩陣
  • 常用的激活函數(shù)?分別是 sigmoid 函數(shù)σ(x),它可以將數(shù)字壓縮在(0,1)的范圍;雙曲正切函數(shù)(hyperbolic tangent)tanh(x),它將數(shù)字壓縮在(-1,1)的范圍;以及修正線性單元函數(shù)(rectified linear unit)函數(shù),ReLU(x)=max(0,x)。

下面用一幅圖來描述神經(jīng)網(wǎng)絡:

?神經(jīng)網(wǎng)絡?

(注意:為了使符號更加簡潔,我假設 x 和 h 各包含一個代表學習偏差權重的固定為 1 的附加偏置神經(jīng)元(bias neuron)。)

二、使用循環(huán)神經(jīng)網(wǎng)絡(RNN)記憶信息

然而忽略電影圖像的序列信息只是最簡單的機器學習。如果我們看見了一副沙灘的景象,我們應該在之后的幀里強調(diào)沙灘的活動:某人在水中的圖片應該被更多可能地標記為游泳,而不是洗澡;某人閉著眼睛躺著的圖片應該被更多地標記為日光浴。如果我們記得 Bob 剛剛到了一家超市,那么即使沒有任何特別的超市特征,Bob 拿著一塊培根的照片應該更可能地被歸類為購物而不是烹飪。

所以我們想要的就是讓我們的模型去追蹤這個世界的狀態(tài):

  1. 在看完每一張圖片之后,模型會輸出一個標簽,也會更新關于這個世界的知識。例如,模型可能學會自動地發(fā)現(xiàn)和追蹤位置(目前的場景是在室內(nèi)還是在沙灘?)、一天中的時間(如果場景中包含月亮,那么模型應該記住現(xiàn)在是晚上)以及電影中的進度(這是第一張圖還是第 100 幀?)等信息。至關重要的是,就像神經(jīng)網(wǎng)絡能夠在沒有被饋送信息的情況下自動地發(fā)現(xiàn)隱藏的邊緣、形狀以及人臉等圖像一樣,我們的模型也應該依靠它們自己來發(fā)現(xiàn)一些有用的信息。
  2. 在被給定一張新圖片的時候,模型應該結(jié)合已經(jīng)收集到的知識來做出更好的工作。

這就是一個循環(huán)神經(jīng)網(wǎng)絡(RNN)。除了簡單地輸入一幅圖像并返回一個活動標簽,RNN 也會維護內(nèi)部關于這個世界的知識(就是分配給不同信息片段的權重),以幫助執(zhí)行它的分類。

數(shù)學描述

所以,讓我們把內(nèi)部知識(internal knowledge)的概念加入到我們的方程中吧,我們可以將內(nèi)部記憶看做網(wǎng)絡會隨著時間進行維護的信息片段的記憶。

但是這是容易的:我們知道神經(jīng)網(wǎng)絡的隱藏層早已將輸入的有用信息做了編碼,所以我們?yōu)楹尾话堰@些隱藏層作為記憶呢?這就有了我們的 RNN 方程:

??

注意在時間 t 計算得到的隱藏狀態(tài) ht(ht 就是我們這里的內(nèi)部知識)會被反饋到下一個時間。(另外,我會使用例如隱藏狀態(tài)、知識、記憶以及信念這樣的詞語來變換地描述 ht)

??

三、通過 LSTM 來實現(xiàn)更長時間的記憶

讓我們來思考一下模型是如何更新關于這個世界的知識的。到目前為止,我們還沒有給這種更新施加任何限制,所以它的知識可能變得非?;靵y:在一幀圖像里面它會認為人物在美國,在下一幀它看到人在吃壽司,就會認為人是在日本,在其后的一幀它看到了北極熊,就會認為他們是在伊茲拉島?;蛘咭苍S它有大量的信息表明 Alice 是一名投資分析師,但是在它看到了她的廚藝之后它就會認定她是一名職業(yè)殺手。

這種混亂意味著信息在快速地轉(zhuǎn)移和消失,模型難以保持長期的記憶。所以我們想要的是讓網(wǎng)絡學會如何讓它以一種更加溫和的方式來進化自己關于這個世界的知識,從而更新自己的信念(沒有 Bob 的場景不應該改變關于 Bob 的信息包含 Alice 的場景應該聚焦于收集關于她的一些細節(jié)信息)。

下面是我們?nèi)绾巫鲞@件事的 4 種方式:

  1. 添加一個遺忘機制(forgetting mechanism):如果一個場景結(jié)束了,模型應該忘記當前場景中的位置,一天的時間并且重置任何與場景相關的信息;然而,如果場景中的一個人死掉了,那么模型應該一直記住那個死去的人已經(jīng)不再活著了。因此,我們想要模型學會一種有區(qū)分的遺忘/記憶機制:當新的輸入到來時,它需要知道記住哪些信念,以及丟棄哪些信念。
  2. 添加一個保存機制(saving mechanism):當模型看到一副新的圖片時,它需要學習關于這張圖片的信息是否值得使用和保存?;蛟S你媽媽給了你一片關于凱莉·詹娜的文章,但是誰會在乎呢?
  3. 所以當新的輸入來臨時,模型首先要忘掉任何它認為不再需要的長期記憶信息。然后學習新輸入的哪些部分是值得利用的,并將它們保存在自己的長期記憶中。
  4. 將長期記憶聚焦在工作記憶中:最后,模型需要學習長期記憶中的哪些部分是即刻有用的。例如,Bob 的年齡可能是一條需要長期保持的信息(兒童很可能正在玩耍,而成年人很可能正在工作),但是如果他不在當前的場景中,那么這條信息很可能就不是特別相關。所以,模型學習去聚焦哪一部分,而不總是使用完全的長期記憶。

這就是一個長短期記憶網(wǎng)絡(long short-term memory network)。LSTM 會以一種非常精確的方式來傳遞記憶——使用了一種特定的學習機制:哪些部分的信息需要被記住,哪些部分的信息需要被更新,哪些部分的信息需要被注意。與之相反,循環(huán)神經(jīng)網(wǎng)絡會以一種不可控制的方式在每一個時間步驟都重寫記憶。這有助于在更長的時間內(nèi)追蹤信息。

數(shù)學描述

讓我們來對 LSTM 做一下數(shù)學描述。

在時間 t,我們收到了新的輸入 xt。我們也有自己的從之前的時間步中傳遞下來的長期記憶和工作記憶,ltm(t?1)以及 wm(t?1)(兩者都是 n 維向量),這就是我們想要更新的東西。

我們將要開始我們的長期記憶。首先,我們需要知道哪些長期記憶需要保持,哪些需要丟棄,所以我們想要使用新的輸入和我們的工作記憶來學習一個由 n 個介于 0 和 1 之間的數(shù)字組成的記憶門,每一個數(shù)字都決定一個長期記憶的元素被保持多少。(1 意味著完全保持,0 意味著完全丟棄。)

自然地我們可以使用一個小型神經(jīng)網(wǎng)絡來學習這個記憶門:

??

(注意與我們之前的神經(jīng)網(wǎng)絡方程的相似性;這只是一個淺層的神經(jīng)網(wǎng)絡。并且,我們使用了 sigmoid 激活函數(shù),因為我們需要的數(shù)字是介于 0 和 1 之間的。)

接下來,我們需要計算我們能夠從 xt 中學習到的信息,也就是我們長期記憶中的候選者:

??

其中?是一個激活函數(shù),通常選擇雙曲正切函數(shù)。

然而,在我們將這個候選者加進我們的記憶之前,我們想要學到哪些部分是實際上值得使用和保存的:

??

(思考一下當你在網(wǎng)頁上讀到某些內(nèi)容的時候會發(fā)生什么。當一條新聞文章可能包含希拉里的信息時,如果消息來源是 Breitbart,那你就應該忽略它。)

現(xiàn)在讓我們把所有這些步驟結(jié)合起來。在忘掉我們認為將來不會再次用到的信息以及保存有用的新來的信息之后,我們就有了更新的長期記憶:

??

接下來,來更新我們的工作記憶:我們想要學習如何將我們的長期記憶專注于那些將會即刻有用的信息上。(換句話說,我們想要學習將哪些信息從外部硬盤移動到正在工作的筆記本內(nèi)存上。)所以我們會學習一個聚焦/注意向量(focus/attention vector):

??

然后我們的工作記憶就成為了:

??

換言之,我們將全部注意集中在 focus 為 1 的元素上,并且忽略那些 focus 是 0 的元素。

然后我們對長期記憶的工作就完成了!也希望這能夠稱為你的長期記憶。

總結(jié):一個普通的 RNN 用一個方程來更新隱藏狀態(tài)/記憶:

??

而 LSTM 使用數(shù)個方程:

??

其中每一個記憶/注意子機制只是 LSTM 的一個迷你形式:

??

(注意:我在這里使用的術語和變量的名字和通常文獻中是有所不同的。以下是一些標準名稱,以后我將會交換使用:

  • 長期記憶 ltm(t), 通常被稱為**cell state**, 簡寫 c(t).
  • 工作記憶 wm(t) 通常被稱為**hidden state**, 簡寫 h(t)。這個和普通 RNN 中的隱藏狀態(tài)是類似的。
  • 記憶向量 remember(t),通常被稱為**forget gate** (盡管遺忘門中,1 仍舊意味著完全保持記憶 0 意味著完全忘記),簡稱 f(t)。
  • 保存向量 save(t),通常被稱為 input gate,(因為它決定輸入中有多少被允許進入 cell state),簡稱 i(t)。
  • 注意向量 focus(t),通常被稱為 output gate,簡稱 o(t)。

??

四、卡比獸

寫這篇博文的時間我本可以抓一百只 Pidgeys,請看下面的漫畫。

神經(jīng)網(wǎng)絡

?神經(jīng)網(wǎng)絡?

神經(jīng)網(wǎng)絡會以 0.6 的概率判定輸入圖片中的卡比獸正在淋浴,以 0.3 的概率判定卡比獸正在喝水,以 0.1 的概率判定卡比獸正在遭遇襲擊。

循環(huán)神經(jīng)網(wǎng)絡

?循環(huán)神經(jīng)網(wǎng)絡?

當循環(huán)神經(jīng)網(wǎng)絡被用來做這件事的時候,它具有對前一幅圖的記憶。最終結(jié)果是卡比獸正在遭遇襲擊的概率為 0.6,卡比獸正在淋浴的概率是 0.3,卡比獸正在喝水的概率是 0.1。結(jié)果要明顯好于上一幅圖中的神經(jīng)網(wǎng)絡。

LSTM

??

具備長期記憶的 LSTM,在記憶了多種相關信息的前提下,將對卡通圖畫中的場景描述準確的概率提高到了 0.9。

五、學會編程

讓我們來看一下一個 LSTM 可以做到的一些例子吧。遵循著 Andrej Karpathy 的精湛的博文

(http://karpathy.github.io/2015/05/21/rnn-effectiveness/),我將使用字符級別的 LSTM 模型,這些模型接受字符序列的輸入,被訓練來預測序列中的下一個字符。

雖然這看起來有點玩笑,但是字符級別的模型確實是非常有用的,甚至比單詞級別的模型更加有用。例如:

  • 試想一個自動編程器足夠智能,能夠允許你在你的手機上編程。從理論上講,一個 LSTM 模型能夠追蹤你當前所在函數(shù)的返回類型,可以更好地建議你返回那個變量;它也能夠在不經(jīng)過編譯的情況下通過返回的錯誤類型就知道你是不是已經(jīng)造成了一個 bug。
  • 像機器翻譯這樣的自然語言處理應用在處理罕見詞條的時候經(jīng)常會出現(xiàn)問題。你如何翻譯一個從未見過的單詞呢,或者你如何將一個形容詞轉(zhuǎn)換成動詞呢?即使你知道一條推文的意思,你如何生成一個新的標簽來描述它呢?字符級別的模型可以空想出新的項,所以這是另外一個具有有趣應用的領域。

所以就開始了,我啟動了一個 EC2 p2.xlarge spot 實例,并在 Apache Commons Lang 代碼庫(鏈接:https://github.com/apache/commons-lang)上訓練了一個 3 層的 LSTM 模型。以下是幾個小時后生成的程序:

??

盡管這段代碼確實不是完美的,但是它比很多我認識的數(shù)據(jù)科學家要做的好一些。我們可以發(fā)現(xiàn) LSTM 已經(jīng)學會了很多有趣的(也是正確的!)編程行為。

  • 它懂得如何構(gòu)造類: 最頂部有 license 相關的信息,緊跟著是 package 和 import,再然后是注釋和類的定義,再到后面是變量和函數(shù)。類似地,它知道如何創(chuàng)建函數(shù):注釋遵循正確的順序(描述,然后是 @param,然后是 @return,等等),decorator 被正確放置,非空函數(shù)能夠以合適的返回語句結(jié)束。關鍵是,這種行為跨越了大篇幅的代碼——你看圖中的代碼塊有多大!
  • 它還能夠追蹤子程序和嵌套級別:縮進總是正確的,if 語句和 for 循環(huán)總能夠被處理好。
  • 它甚至還懂得如何構(gòu)造測試。

那么模型是如何做到這一點的呢?讓我們來看一下幾個隱藏狀態(tài)。

下面是一個貌似在追蹤代碼外層縮進的神經(jīng)元(當讀取字符作為輸入的時候,也就是說,在嘗試生成下一個字符的時候,每一個字符都被著上了神經(jīng)元狀態(tài)的顏色;紅色的單元是負的,藍色的單元是正的):

?貌似在追蹤代碼外層縮進的神經(jīng)元?

下面是一個統(tǒng)計空格數(shù)量的神經(jīng)元:

?統(tǒng)計空格數(shù)量的神經(jīng)元?

娛樂一下,下面是在 TensorFlow 代碼庫上訓練得到的另一個不同的 3 層 LSTM 模型的輸出:

??

網(wǎng)絡上還有很多有趣的例子,如果你想了解更多,請查看:http://karpathy.github.io/2015/05/21/rnn-effectiveness/

六、研究 LSTM 的內(nèi)部

讓我們再稍往深處挖掘一下。我們看一下上一部分隱藏狀態(tài)的例子,但是我也想玩轉(zhuǎn) LSTM cell 狀態(tài)以及其他的記憶機制。我們期待著,它們會迸發(fā)出火花呢,還是會有令人驚喜的畫面?

計數(shù)

為了研究,讓我們從教一個 LSTM 計數(shù)開始。(你應該還記得 Java 和 Python 的 LSTM 模型是如何生成合適的縮進的!)所以我生成了如下形式的序列:

aaaaaXbbbbb

(N 個字母「a」,后面跟著一個字母分隔符 X,后面是 N 個字母「b」,其中 1 <= N <= 10),然后訓練一個具有 10 個隱藏神經(jīng)元的單層 LSTM。

不出所料,LSTM 模型在訓練期間完美地學習--甚至能夠?qū)⑸赏茝V到幾步之外。(即使在開始的時候當我們嘗試讓它記到 19 的時候它失敗了。)

aaaaaaaaaaaaaaaXbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaXbbbbbbbbbbbbbbbbbb # Here it begins to

我們期望找到一個隱藏狀態(tài)神經(jīng)元,它能夠在我們觀察模型內(nèi)部的時候計出每一個 a 的數(shù)目。正如我們做的:

??

我開發(fā)了一個可以讓你玩轉(zhuǎn) LSTM 的小型的 web app,神經(jīng)元 #2 貌似既能夠記錄已經(jīng)看到的 a 的數(shù)目,也能記錄已經(jīng)看到的字符 b 的數(shù)目。(請記得,單元的顏色是根據(jù)激活程度著色的,從深紅色的 [-1] 到深藍色的 [+1]。)

那么 cell 的狀態(tài)是怎么樣的呢?它的行為類似于這樣:

??

有趣的是,工作記憶就像是長期記憶的「銳化版」。但是這個在一般情況是否成立呢?

這確實是成立的。(我正是我們所期望的,因為長期記憶被雙曲正切激活函數(shù)進行了壓縮,而且輸出門限制了通過它的內(nèi)容。)例如,下圖是所有的 10 個 cell 在某一時刻的狀態(tài)。我們看到了大量的顏色很清淡的 cell,這代表它們的值接近 0。

相比之下,10 個工作記憶的神經(jīng)元看起來更加聚焦。第 1、3、5、7 個神經(jīng)元甚至在序列的前半部分全是 0。

??

讓我們再回頭看一下神經(jīng)元 #2。這里有一些候選的記憶和輸入門。它們在每個序列的前半部分或者后半部分都是相對不變的——就像神經(jīng)元在每一步都在進行 a+=1 或者 a-=1 的計算。

??

最后,這里是神經(jīng)元 2 的整體概覽。

如果你想自己研究一下不同計數(shù)神經(jīng)元,你可以在這個可視化 web app 中自己玩一下。

??

(注意:這遠遠不是一個 LSTM 模型可以學會計數(shù)的唯一方式,我在這里只描述了一個而已。但是我認為觀察網(wǎng)絡行為是有趣的,并且這有助于構(gòu)建更好的模型;畢竟,神經(jīng)網(wǎng)絡中的很多思想都是來自于人腦。如果我們看到了意料之外的行為,我們也許會有能力設計出更加有效地學習機制。)

來自計數(shù)的計數(shù)

讓我們來看一下一個稍微有點復雜的計數(shù)器。這次,我生成了如下的序列形式:

aaXaXaaYbbbbb

(N 個 a 中間隨機地插入 X,后邊跟一個分隔符 Y,再后邊是 N 個 b。)LSTM 仍然必須數(shù)清楚 a 的數(shù)目,但是這一次需要忽略 X 的數(shù)目。

在這個鏈接中查看整個 LSTM

(http://blog.echen.me/lstm-explorer/#/network?file=selective_counter)我們希望看到一個正在計數(shù)的神經(jīng)元——一個正在計數(shù)的、每看到一個 X 輸入門就變成 0 的神經(jīng)元。在我們做到了!

??

上圖是 neuron 20 的 cell 狀態(tài)。它的值一直保持增大,直到遇到分割字符 Y,然后就一直減小,直到序列的末尾——就像在計算一個隨著 a 增大,隨著 b 減小的變量 num_bs_left_to_print 一樣。

如果我們觀察它的輸入門,會看到它確實是將 X 的數(shù)量忽略了:

??

然而,有趣的是,候選的記憶會在有關聯(lián)的 X 上被完全激活--這證明了為什么需要哪些輸入門。(但是,如果輸入門不是模型架構(gòu)的一部分,至少在這個簡單的例子中,網(wǎng)絡也會以其他的方式忽略 X 的數(shù)量。)

??

我們再來看一下神經(jīng)元 10。

??

這個神經(jīng)元是有趣的,因為它僅僅在讀取到 Y 的時候才會被激活—然而它還是能夠?qū)π蛄兄杏龅降?a 字符進行編碼。(在圖中可能很難區(qū)分出來,但是序列中 a 的數(shù)目一樣的時候,Y 的顏色是相同的,即便不相同,差距也在 0.1% 以內(nèi)。你可以看到,a 比較少的序列中 Y 的顏色要淺一些。)或許其他的神經(jīng)元會看到神經(jīng)元 10 比較松弛。

??

記憶狀態(tài)

下面我想研究一下 LSTM 是如何記憶狀態(tài)的。同樣的,我生成了以下形式的序列:

AxxxxxxYa
BxxxxxxYb

(也就是說,一個「A」或者「B」,后面跟著 1-10 個 x,然后是一個分割字符「Y」,最終以一個起始字符的小寫形式結(jié)尾。)這種情況下,網(wǎng)絡需要記住到底是一個「狀態(tài) A」還是一個「B」狀態(tài)。

我們希望找到一個神經(jīng)元能夠在記得序列是以「A」開頭的,希望找到另一個神經(jīng)元記得序列是以「B」開頭的。我們做到了。

例如這里是一個「A」神經(jīng)元,當讀取到「A」的時候它會激活,持續(xù)記憶,直到需要生成最后一個字母的時候。要注意,輸入門忽略了序列中所有的 x。

??

下面是對應的「B」神經(jīng)元:

??

有趣的一點是,即使在讀取到分隔符「Y」之前,關于 A 和 B 的知識是不需要的,但是隱藏狀態(tài)在所有的中間輸入中都是存在的。這看上去有一點「低效」,因為神經(jīng)元在計數(shù) x 的過程中做了一些雙重任務。

??

復制任務

最后,讓我們來看一下 LSTM 是如何學會復制信息的。(回想一下我們的 Java 版的 LSTM 曾經(jīng)學會了記憶并且復制一個 Apache license。)

(注意:如果你思考 LSTM 是如何工作的,記住大量的單獨的、細節(jié)的信息其實并不是它們所擅長的事情。例如,你可能已經(jīng)注意到了 LSTM 生成的代碼的一個主要缺陷就是它經(jīng)常使用未定義的變量—LSTM 無法記住哪些變量已經(jīng)在環(huán)境中了。這并不是令人驚奇的事情,因為很難使用單個 cell 就能有效地對想字符一樣的多值信息進行編碼,并且 LSTM 并沒有一種自然的機制來連接相鄰的記憶以形成單詞。記憶網(wǎng)絡(memory networks)和神經(jīng)圖靈機(neutral turing machine)就是兩種能夠有助于修正這個缺點的神經(jīng)網(wǎng)絡的擴展形式,通過增加外部記憶組件。所以盡管復制并不是 LSTM 可以很有效地完成的,但是無論如何,去看一下它是如何完成這個工作是有趣的。)

針對這個復制任務,我訓練了一個很小的兩層 LSTM 來生成如下形式的序列:

baaXbaa
abcXabc

(也就是說,一個由 a、b、c3 種字符組成的子序列,后面跟著一個分隔符「X」,后面再跟著一個同樣的子序列)。

我不確定「復制神經(jīng)元」到底應該是長什么樣子的,所以為了找到能夠記住部分初始子序列的神經(jīng)元,我觀察了一下它們在讀取分隔符 X 時的隱藏狀態(tài)。由于神經(jīng)網(wǎng)絡需要編碼初始子序列,它的狀態(tài)應該依據(jù)它們學到的東西而看起來有所不同。

例如,下面的這一幅圖畫出了神經(jīng)元 5 在讀入分隔符「X」時候的隱藏狀態(tài)。這個神經(jīng)元明顯將那些以「c」開頭的序列從那些不是以「c」開頭的序列中區(qū)分出來。

??

另一個例子,這是神經(jīng)元 20 在讀入分隔符「X」時的隱藏狀態(tài)??雌饋硭x擇了那些以「b」開頭的子序列。

??

有趣的是,如果我們觀察神經(jīng)元 20 的 cell 狀態(tài),它貌似能夠捕捉這三種子序列。

??

這里是神經(jīng)元 20 關于整個序列的 cell 狀態(tài)個隱藏狀態(tài)。請注意在整個初始序列中它的隱藏狀態(tài)是關閉的(也許這是期望之中的,因為它的記憶僅僅需要在某一點被動保持)。

??

然而,如果我們看得更加仔細一些,就會發(fā)現(xiàn),只要下一個字符是「b」, 它就是正的。所以,與其說是以 b 字母開頭的序列,還不如說是下一個字符是 b 的序列。

就我所知,這個模式在整個網(wǎng)絡中都存在——所有的神經(jīng)元貌似都在預測下一個字符,而不是在記住處在當前位置的字符。例如,神經(jīng)元 5 貌似就是一個「下一個字符」預測器。

??

我不確定這是不是 LSTM 在學習復制信息時候的默認類型,或者復制機制還有哪些類型呢?

??

擴展

讓我們來回顧一下你如何自己來探索 LSTM。

首先,我們想要解決的大多數(shù)問題都是階段性的,所以我們應該把一些過去的學習結(jié)合到我們的模型中。但是我們早已知道神經(jīng)網(wǎng)絡的隱藏層在編碼自己的信息,所以為何不使用這些隱藏層,將它們作為我們向下一步傳遞的記憶呢?這樣一來,我們就有了循環(huán)神經(jīng)網(wǎng)絡(RNN)。

但是從我們的行為就能知道,我們是不愿意去追蹤知識的;當我們閱讀一篇新的政論文章時,我們并不會立即相信它所談論的內(nèi)容并將其與我們自己對這個世界的信念所結(jié)合。我們選擇性地保存哪些信息,丟棄哪些信息,以及哪些信息可以用來決定如何處理下一次讀到的新聞。因此,我們想要學習收集、更新以及應用信息——為何不通過它們自己的小型神經(jīng)網(wǎng)絡來學習這些東西呢?如此,我們就有了 LSTM。

現(xiàn)在我們已經(jīng)走通了這個過程,我們也可以想出我們的修正:

  • 例如,或許你認為 LSTM 區(qū)分長期記憶和工作記憶是愚蠢的行為—為何不使用一種記憶呢?或者,或許你能夠發(fā)現(xiàn)區(qū)分記憶門和保存門是多余的--任何我們忘記地東西都應該被新的信息代替,反之亦然。所以我們現(xiàn)在想出了一種流行的 LSTM 變種,門控循環(huán)神經(jīng)網(wǎng)絡(GRU):https://arxiv.org/abs/1412.3555
  • 或者你可能認為,當決定哪些信息需要被記住、保存、注意的時候,我們不應該僅僅依靠我們的工作記憶—為什么不同時使用長期記憶呢?如此,你發(fā)現(xiàn)了 Peephole LSTM。

讓我們看一下最后的例子,使用一個兩層多的 LSTM 來訓練 Trump 的推特,盡管這是很大規(guī)模的數(shù)據(jù)集,但是這個 LSTM 已經(jīng)足以學到很多模式。

例如,這是一個在標簽、URL 以及 @mention 中跟蹤位置的神經(jīng)元:

??

這是一個合適的名詞檢測器(注意它并不是簡單的注重大寫單詞):

??

這是一個助動詞+「to be」的檢測器(例如 will be, I've always been,has never been)

??

這是一個引文屬性:

??

這是一個 MAGA 和大小寫神經(jīng)元:

??

這里是一些用 LSTM 生成的公告(ok,其中有一個是一條真正的推特,你猜一下哪個是):

不幸的是,LSTM 僅僅學會了像瘋子一樣瘋狂書寫。

 

原文:http://blog.echen.me/2017/05/30/exploring-lstms/

【本文是51CTO專欄機構(gòu)“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】

??戳這里,看該作者更多好文??

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2015-07-17 16:49:13

OpenStack開源云平臺云計算

2015-06-01 13:35:43

數(shù)據(jù)中心DCIM

2009-04-17 14:22:40

XPathXML基礎

2009-06-22 16:42:26

JSF的工作方式

2009-07-14 12:47:07

WebWork工作方式

2009-09-28 13:39:01

Hibernate工作

2009-09-14 14:49:12

LINQ查詢基礎知識

2009-07-10 13:55:48

Swing控件

2024-07-12 16:01:37

2010-01-11 09:47:57

程控交換機

2011-05-27 16:17:45

SEO

2020-09-29 10:44:51

漏洞

2009-10-20 17:39:57

服務器基礎知識

2015-11-09 11:48:20

內(nèi)存泄漏基礎知識

2009-10-20 09:26:53

綜合布線系統(tǒng)

2010-07-30 16:38:10

路由器網(wǎng)絡

2010-11-15 10:02:31

UPS電源技術

2010-08-06 08:49:00

2016-01-07 10:16:12

2009-08-13 18:36:29

C#數(shù)組工作方式
點贊
收藏

51CTO技術棧公眾號

欧美最近摘花xxxx摘花| 精品日本一线二线三线不卡| 在线不卡视频一区二区| 国产熟女一区二区三区五月婷| 黄色成人av网站| 亚洲精品中文字幕有码专区| 成人不卡免费视频| free性护士videos欧美| 国产午夜精品一区二区三区嫩草 | 91丝袜国产在线播放| 国产精品电影观看| 国产真人真事毛片| 青青草原综合久久大伊人精品| 精品国产精品一区二区夜夜嗨| 免费看a级黄色片| 国产丝袜精品丝袜| 国产精品久久久久久久久搜平片| 国产精品日韩一区二区三区 | 亚洲精品色婷婷福利天堂| 欧美日韩中文不卡| 热色播在线视频| 亚洲免费av高清| 伊人久久大香线蕉成人综合网| 午夜小视频在线播放| 国产精品亚洲综合一区在线观看| 国产精品jizz在线观看麻豆| 日本一二三区不卡| 亚洲啊v在线观看| 国产一区二区三区18| 欧美日韩人妻精品一区在线| 国产精品日韩精品在线播放 | 欧美一区二区少妇| 国产91精品露脸国语对白| 国产主播欧美精品| 日本成人一级片| 亚洲一区二区成人| 亚州国产精品久久久| 国产av无码专区亚洲av毛网站| 日韩欧美二区| 在线观看日韩欧美| 在线观看日本中文字幕| 久久av导航| 亚洲男人7777| 久久只有这里有精品| 日韩超碰人人爽人人做人人添| 欧美xfplay| 男男受被啪到高潮自述| 久久天堂久久| 日韩女优电影在线观看| 波多野吉衣在线视频| 亚洲国产视频二区| 精品va天堂亚洲国产| 无码国产精品一区二区免费式直播 | 国产精品视频久久久| 无码人妻丰满熟妇奶水区码| 蜜桃av一区| 日韩美女在线观看| 无码人妻一区二区三区线 | 91高清国产视频| 欧美成人福利| 欧美一卡二卡在线观看| 佐山爱在线视频| 7777精品| 日韩精品在线电影| 欧美 日韩 国产 成人 在线观看| 加勒比久久综合| 最近中文字幕日韩精品 | 免费a级人成a大片在线观看| 中文字幕亚洲不卡| 99久久久精品视频| 草草视频在线| 在线视频综合导航| 高潮一区二区三区| 中文字幕视频精品一区二区三区| 亚洲第一福利网| 欧美一区二区三区成人精品| 精品成av人一区二区三区| 中文字幕亚洲第一| 亚洲av无码一区二区三区在线| 欧美三级网页| 欧美做爰性生交视频| 真实的国产乱xxxx在线91| 麻豆精品在线观看| y111111国产精品久久婷婷| 天堂在线资源网| 亚洲国产精品国自产拍av| 中文字幕中文字幕99| 丝袜国产在线| 欧美特黄级在线| 日韩av在线中文| 成人18夜夜网深夜福利网| 亚洲人成绝费网站色www| 精品视频第一页| 影音先锋一区| 国产女同一区二区| 天堂网在线播放| 1000部国产精品成人观看| 日韩a∨精品日韩在线观看| av有声小说一区二区三区| 日韩一二三区视频| 少妇无套高潮一二三区| 欧美日韩一卡| 国产精品小说在线| 污污网站免费在线观看| 中文字幕一区二区三区色视频| 男人日女人下面视频| 亚洲成a人片777777久久| 日韩精品在线看| 欧美激情图片小说| 首页亚洲欧美制服丝腿| 国产精品麻豆免费版| 天堂中文8资源在线8| 天天色综合成人网| 美女被艹视频网站| 不卡中文字幕| 欧洲中文字幕国产精品| 亚洲国产www| 18欧美亚洲精品| 欧美日韩大尺度| 日韩av三区| 久久久久国产精品免费网站| 亚洲视频一区二区三区四区| 久久一区二区三区四区| 国产日韩亚洲欧美在线| 亚洲影视资源| 最好看的2019年中文视频| 在线观看亚洲欧美| 丰满少妇久久久久久久| 一级黄色录像免费看| 精品国产欧美日韩一区二区三区| 日韩激情在线视频| 久久精品这里有| 国产不卡视频一区二区三区| 欧美xxxx吸乳| 成人影院网站ww555久久精品| 伊人久久久久久久久久| 影音先锋在线国产| 91天堂素人约啪| 欧美二区在线视频| 美女视频亚洲色图| 国内成人精品视频| 狠狠躁夜夜躁av无码中文幕| 有码一区二区三区| 91欧美一区二区三区| 久久免费大视频| 国产欧美久久久久久| 在线视频自拍| 91.com在线观看| 免费国产羞羞网站美图| 韩日精品视频一区| 99re6这里有精品热视频| 国产精品麻豆| 欧美极品在线视频| 可以免费看毛片的网站| 午夜久久久久久久久久一区二区| 国产伦精品一区二区三区精品 | 别急慢慢来1978如如2| 精品国产99| 国产九九精品视频| 成人短视频在线观看| 欧美成va人片在线观看| 国产精品2020| www国产成人免费观看视频 深夜成人网| 777777av| 狠狠色狠狠色综合婷婷tag| 国产欧美一区二区三区视频| 国产cdts系列另类在线观看| 日韩亚洲欧美成人一区| 精品久久免费视频| 97精品久久久午夜一区二区三区| 日韩精品一区二区三区久久| 精品久久久久久久| 91精品中国老女人| 国产嫩草在线视频| 亚洲人a成www在线影院| 国产精品嫩草影院精东| 一区二区日韩电影| aa一级黄色片| 久久精品国产精品亚洲精品| 日本天堂免费a| 天天久久夜夜| 国产免费一区二区三区在线观看| 日本高清成人vr专区| 国产午夜精品麻豆| 国产喷水吹潮视频www| 亚洲h动漫在线| 夜夜春很很躁夜夜躁| 国产精品99久久久久久似苏梦涵| 国产91xxx| 色天天久久综合婷婷女18| 999在线免费观看视频| 3d性欧美动漫精品xxxx软件| 欧美大片在线免费观看| 国产精品ⅴa有声小说| 日韩视频中午一区| 樱花视频在线免费观看| 一级做a爱片久久| 久久亚洲AV无码专区成人国产| 国产精品77777| 日韩一级免费在线观看| 欧美特黄视频| 亚洲精品一区二| 精品成人自拍视频| 91在线网站视频| 日韩中文影院| 久久久久中文字幕| 欧美精品电影| 亚洲视频第一页| 欧美天堂在线视频| 欧美丰满一区二区免费视频| 探花视频在线观看| 亚洲在线成人精品| 一本在线免费视频| 2020国产精品久久精品美国| 国产精品果冻传媒| 国产一区二区视频在线播放| 北条麻妃视频在线| 中文久久精品| 给我免费播放片在线观看| 国产韩日影视精品| 婷婷精品国产一区二区三区日韩| 日韩高清影视在线观看| 国产激情美女久久久久久吹潮| 91精品国产自产观看在线| 国产精品电影一区| 日韩欧美精品一区二区三区| 欧美高清无遮挡| 最新黄网在线观看| 久久中文字幕一区| 免费在线观看黄色| 中文亚洲视频在线| 国产在线超碰| 亚洲人成电影在线| 黄网在线免费| 亚洲天堂免费在线| 国内精品一区视频| 亚洲欧美在线播放| 免费在线视频你懂得| 亚洲精品网站在线播放gif| 熟妇高潮一区二区高潮| 亚洲护士老师的毛茸茸最新章节| 黄色av网址在线| 亚洲成人av在线| 午夜小视频免费| 亚洲欧美日韩中文视频| 美国成人毛片| 一本色道久久88综合日韩精品| 国产主播福利在线| 中文字幕av一区中文字幕天堂| 成人在线观看黄色| 伊人www22综合色| 欧美成人福利视频| 刘亦菲久久免费一区二区| 日韩欧美一级在线播放| 亚洲精选一区二区三区| 精品播放一区二区| 日韩av高清在线| 亚洲最新中文字幕| 欧美jizz18hd性欧美| 萌白酱国产一区二区| 国产一线二线在线观看| 91精品国产99久久久久久| 伊人色综合一区二区三区影院视频| 欧美在线影院在线视频| 成人免费网站www网站高清| 国产精品嫩草视频| 成人黄色91| 国产精品一区二区三区免费| 天海翼亚洲一区二区三区| 午夜精品一区二区三区在线观看 | 国产91av视频在线观看| 亚洲成人精选| 国产自产在线视频| 久久一本综合频道| 中文字幕久久av| 成人教育av在线| 国精品无码人妻一区二区三区| 国产精品网友自拍| 1024手机在线视频| 日韩欧美国产中文字幕| 91精品中文字幕| 亚洲福利视频免费观看| 福利片在线观看| 欧美精品在线免费| 欧美理论影院| 91九色在线免费视频| 亚洲激情77| 日韩最新中文字幕| 亚洲专区欧美专区| 狠狠操狠狠干视频| 91免费在线视频观看| 色哟哟一一国产精品| 亚洲成人一区二区在线观看| 精品国产www| 亚洲国产欧美自拍| 乱人伦中文视频在线| 91精品国产高清自在线| 综合久草视频| 欧美日韩最好看的视频| 欧美在线网站| 婷婷六月天在线| aaa欧美色吧激情视频| 一区二区三区在线播放视频| 天天av天天翘天天综合网色鬼国产 | 免费在线播放第一区高清av| 日韩欧美在线播放视频| 国产一区二区三区黄视频| 亚洲一区二区三区蜜桃| 四虎永久免费影院| 亚洲一区日韩在线| 亚洲国产欧美91| 欧美国产综合色视频| 日本亚洲欧美在线| 91精品蜜臀在线一区尤物| 黄色电影免费在线看| 欧美—级a级欧美特级ar全黄 | 国产精品久久国产精品99gif| 超碰成人福利| 水蜜桃在线免费观看| 美女一区二区久久| 魔女鞋交玉足榨精调教| 亚洲va韩国va欧美va精品| 99久久久国产精品无码免费| 在线亚洲欧美视频| 日韩电影大全网站| 久久国产精品精品国产色婷婷| 欧美1区2区视频| 亚洲天堂网2018| 中文字幕乱码日本亚洲一区二区| 欧美h在线观看| 日韩av一区在线观看| 3p视频在线观看| 国产精品你懂得| 清纯唯美亚洲综合一区| 国产又大又黄又粗的视频| 久久久久国产精品厨房| 亚洲 欧美 成人| 亚洲视频第一页| 国产综合av| 亚洲欧美日产图| 久久精品99国产精品| 四虎影视一区二区| 91精品国产综合久久久蜜臀图片| 老司机午夜在线视频| 91香蕉电影院| 欧美日韩天堂| 日本一级片在线播放| 精品女厕一区二区三区| 亚洲日本国产精品| 欧美在线视频免费观看| 久草精品在线| 国产wwwxx| 国产精品久久久久久久久图文区 | 日韩av中文字幕在线| www在线观看黄色| 久久久久久欧美精品色一二三四| 亚洲一区二区成人| 中文字幕伦理片| 在线播放91灌醉迷j高跟美女| av免费在线观| 国模一区二区三区私拍视频| 男女av一区三区二区色多| 妺妺窝人体色WWW精品| 欧美日韩视频在线一区二区 | 精品不卡一区| 亚洲精品免费一区亚洲精品免费精品一区 | 久久精品国产一区二区三区免费看| 毛片视频免费播放| 欧美一级黄色录像| 国产精品xx| 四虎一区二区| 国产精品1024| 久久一区二区三区视频| 少妇精69xxtheporn| 亚洲精品在线播放| 欧美一级片中文字幕| 日韩一区欧美一区| 外国精品视频在线观看 | 丰满少妇一区二区三区专区 | 久久久久久久久网站| 日韩最新在线| 欧美激情第3页| 亚洲国产精品自拍| 电影在线一区| 国产精品一区二区三区在线| 免费在线观看成人av| 视频国产一区二区| 亚洲精品美女网站| 黄页免费欧美| 久久视频这里有精品| 国产精品国产自产拍高清av王其| 黄色av一区二区三区| 国产精品日韩一区| 亚洲美女黄色| 四虎地址8848| 亚洲欧美日韩中文在线制服| 日韩高清在线观看一区二区| 91精品91久久久中77777老牛| 自拍偷拍亚洲激情| 国产黄色免费在线观看|