深度學習之:淺說序列學習

機器學習 深度學習 Linux 莎士比亞 中國雲計算 2017-05-04

系列的第一篇概覽了一下深度學習中的基本概念。第二篇介紹了深度學習的歷史背景,以及如何高效地訓練神經網絡。而這一篇當中,我們將一起認識自然語言處理領域的核心:序列學習。

深度學習之:淺說序列學習

圖1:長短期記憶(LSTM)單元。

LSTM有四個輸入權重和四個循環權重。Peepholes是記憶細胞和門之間的額外連接,但他們對性能提升幫助不到,所以常被忽略。

序列學習

生活中的所有事物都是與時間相關的,也就形成了一個序列。為了對序列數據(文本、演講、視頻等)我們可以使用神經網絡並導入整個序列,但是這樣我們的數據輸入尺寸是固定的,侷限性就很明顯。如果重要的時序特徵事件恰好落在輸入窗以外,就會產生更大的問題。所以我們需要的是:

能對任意長度序列做逐個元素讀取的神經網絡(比如視頻就是一系列的圖片;我們每次給神經網絡一張圖);

有記憶的神經網絡,能夠記得若干個時間步以前的事件、這些問題和需求已經催生出多中不同的循環神經網絡。

循環神經網絡

若我們想讓一個常規的神經網絡解決兩個數相加的問題,那我們只需要輸入兩個數字,再訓練兩數之和的預測即可。如果現在有3個數要相加,那麼我們可以:

拓展網絡架構,添加輸入和權重,再重新訓練;

把第一次的輸出(即兩數之和)和第三個數作為輸入,再返回給網絡。

方案(2)顯然更好,因為我們希望避免重新訓練整個網絡(網絡已經“知道”如何將兩個數相加)。如果我們的任務變成:先對兩數做加法,再減去兩個不同的數,那這個方案又不好使了。即使我們使用額外的權重,也不能保證正確的輸出。相反,我們可以嘗試“修改程序”,把網絡由“加法”變成“減法”。通過隱藏層的加權可以實現這一步(見圖2),如此便讓網絡的內核隨著每個新的輸入而變化。網絡將學習著在相加兩個數之後,把程序從“加法”變成“減法”,然後就解決了問題。

深度學習之:淺說序列學習

圖2:常規神經網絡與循環神經網絡的架構比較。

循環神經網絡每次讀取一個輸入,而常規神經網絡一次性全部讀入。

我們甚至可以泛化這一方法,傳遞給網絡兩個數字,再傳入一個“特殊”的數字——代表著數學運算“加法”,“減法”或“乘法”。實踐當中這樣或許不盡完美,但也能得到大體正確的結果了。不過這裡的主要問題倒不在於得到正確結果,而是我們可以訓練循環神經網絡,使之能夠學習任意輸入序列所產生的特殊輸出,這就威力大了。

例如,我們可以教網絡學會詞語的序列。Soumith Chintala和Wojciech Zaremba寫了一篇優秀的博客講述用RNN做自然語言處理。RNN也可以用於生成序列。Andrej Karpathy寫了這篇[有趣而生動的博客],展示了字詞級別的RNN,可以模仿各種文風,從莎士比亞,到Linux源碼,再到給小孩兒起名。

長短期記憶(Long Short Term Memory, LSTM)

長短期記憶單元使用自連接的線性單元,權重為常數1.0。這使得流入自循環的值(前向傳播)或梯度(反向傳播)可以保持不變(乘以1.0的輸入或誤差還是原來的值;前一時間步的輸出或誤差也和下一時間步的輸出相同),因而所有的值和梯度都可以在需要的時候準確回調。這個自循環的單元,記憶細胞,提供了一種可以儲存信息的記憶功能,對之前的若干個時間步當中有效。這對很多任務都極其有效,比如文本數據,LSTM可以存儲前一段的信息,並對當前段落的序列應用這些信息。

另外,深度網絡中一個很普遍的問題叫作“梯度消失”問題,也即,梯度隨著層數增多而越來越小。有了LSTM中的記憶細胞,就有了連續的梯度流(誤差保持原值),從而消除了梯度消失問題,能夠學習幾百個時間步那麼長的序列。

然而有時我們會想要拋掉舊有信息,替換以更新、更相關的信息。同時我們又不想釋放無效信息干擾其餘部分的網絡。為了解決這個問題,LSTM單元擁有一個遺忘門,在不對網絡釋放信息的情況下刪除自循環單元內的信息(見圖1)。遺忘門將記憶細胞裡的值乘以0~1之間的數字,其中0表示遺忘,1表示保持原樣。具體的數值宥當前輸入和上一時間步的LSTM單元輸出決定。

在其他時間,記憶細胞還需要保持多個時間步內不變,為此LSTM增加了另一道門,輸入門(或寫入門)。當輸入門關閉時,新信息就不會流入,原有信息得到保護。

另一個門將記憶細胞的輸出值乘以0(抹除輸出)~1之間的數,當多個記憶相互競爭時這很有用:一個記憶細胞可能說:“我的記憶非常重要!所以我現在就要釋放”,但是網絡卻可能說:“你的記憶是很重要,不過現在又其他更重要的記憶細胞,所以我給你的輸出門賦予一個微小的數值,給其他門大數值,這樣他們會勝出”。

LSTM單元的連接方式初看可能有些複雜,你需要一些時間去理解。但是當你分別考察各個部件的時候,會發現其結構其實跟普通的循環神經網絡沒啥兩樣——輸入和循環權重流向所有的門,連接到自循環記憶細胞。

相關推薦

推薦中...