深入淺出LSTM神經網絡
【編者按】 使用前饋卷積神經網絡(convnets)來解決計算機視覺問題,是深度學習最廣為人知的成果,但少數公眾的注意力已經投入到使用遞歸神經網絡來對時間關系進行建模。而根據深度學習三大牛的闡述, LSTM網絡已被證明比傳統的RNNs更加有效 。本文由加州大學圣迭戈分校(UCSD)研究機器學習理論和應用的博士生Zachary Chase Lipton撰寫,用淺顯的語言解釋了卷積網絡的基本知識,并介紹長短期記憶(LSTM)模型。
鑒于深度學習在現實任務中的廣泛適用性,它已經吸引了眾多技術專家、投資者和非專業人員的關注。盡管深度學習最著名的成果是使用前饋卷積神經網絡( convnets)來解決計算機視覺問題,少數公眾的注意力已經投入到使用遞歸神經網絡來對時間關系進行建模。
(注:為了幫助你開始體驗 LSTM遞歸網絡, 我附上了一個簡單的微實例,預裝了numpy、theano和一個Jonathan Raiman的LSTM樣例Git克隆 )
在最近的文章《 學習閱讀遞歸神經網絡 》中,我解釋了為什么盡管前饋網絡有難以置信的成功,它們受制于無法明確模擬時間關系,以及所有數據點都是由固定長度的向量組成的假設。在那篇文章的結論部分,我承諾寫一篇的文章,解釋卷積網絡的基本知識,并介紹長短期記憶( LSTM)模型。
首先,介紹一下神經網絡的基本知識。一個神經網絡可以表示為一個人工神經元的圖,或者說節點和有向邊,用來對突觸建模。每個神經元是一個處理單元,它將連接到它的節點的輸出作為輸入。在發出輸出之前,每個神經元會先應用一個非線性激活函數。正是由于這個激活函數,神經網絡具有對非線性關系進行建模的能力。
現在,考慮這個最近的著名論文 Playing Atari with Deep Reinforcement Learning,結合convnets和強化學習來訓練電腦玩視頻游戲。該系統在某些游戲上有超越人類的表現,比如 Breakout!,這種游戲在任意時候的合適的策略,都可以通過查看屏幕推斷出來。但是,當優化策略是需要在長時間跨度規劃時,系統就和人的表現相差甚遠,例如太空侵略者(Space Invaders)。
因此, 我們引入遞歸神經網絡(RNN),一個賦予神經網絡對時間進行顯式建模的能力,通過添加跨越時間點的自連接隱藏層。換句話說,隱藏層的反饋,不僅僅進入輸出端,而且還進入了下一時間步驟隱藏層。 在本文中,我將使用遞歸網絡的一些示意圖,從我即將審查的這一主題的文獻中摘錄。
現在,我們可以通過通過兩個時間步來展開這個網絡,將連接以無環的形式可視化。注意權重(從輸入到隱藏和隱藏到輸出)在每個時間步是相同的。遞歸網絡有時被描述為深度網絡,其深度不僅僅發生在輸入和輸出之間,而且還發生在跨時間步,每個時間步可以被認為是一個層。
一旦被展開,這些網絡可以使用反向傳播,進行端到端的訓練。這種跨時間步的反向傳播擴展,被稱為沿時間反向傳播(Backpropagation Through Time)。
然而有一個問題,在 Yoshua Bengio經常被引用的論文( Learning Long-Term Dependencies with Gradient Descent is Difficult )中提到,那就是消失的梯度。換句話說,后面時間步的錯誤信號,往往并不能回到足夠遠的過去,像更早的時間步一樣,去影響網絡。這使它很難以學習遠距離的影響,比如放過的那只小卒會在 12步后回來將你。
補救這一問題的措施是 1997年首先被Sepp Hochreiter和Jurgen Schmidhuber提出的長短期記憶(LSTM)模型。在這個模型中,常規的神經元,即一個將S型激活應用于其輸入線性組合的單位,被存儲單元所代替。每個存儲單元是與一個輸入門,一個輸出門和一個跨越時間步驟無干擾送入自身的內部狀態相關聯。
在該模型中,對于每個存儲單元,三套權重從輸入訓練而得,包括先前時間步中完整的隱藏狀態。一個饋送到輸入節點,在上圖的底部。一個饋送到輸入門,在最右側的單元格底部顯示。另一個饋送到輸出門,在頂部最右側的顯示。每個藍色節點與一個激活函數相關聯,典型情況是S型函數,以及表示乘法的Pi節點。單元中最中央的節點稱為內部狀態,并且以1的權重跨越時間步,反饋回本身。內部狀態的自連接邊,被稱為恒定誤差傳送帶或CEC。
就前傳遞而言,輸入門學習來決定何時讓激活傳入存儲單元,而輸出門學習何時讓激活傳出存儲單元。相應的,關于后傳遞,輸出門是在學習何時讓錯誤流入存儲單元,而輸入門學習何時讓它流出存儲單元,并傳到網絡的其余部分。這些模型已被證明在多種多樣的手寫識別和圖像加字幕任務上非常成功。也許得到多一些關愛,它們能在太空侵略者上獲勝。
作者介紹:Zachary Chase Lipton is a PhD student in the Computer Science department at UCSD. He researches machine learning theory and applications, and is a contributing editor to KDnuggets.
原文鏈接 : Demystifying LSTM Neural Networks (翻譯/王瑋 責編/周建丁)