遞歸神經網路
遞歸神經網路
遞歸神經網路(recursive neural network)是具有樹狀階層結構且網路節點按其連接順序對輸入信息進行遞歸的人工神經網路(Artificial Neural Network, ANN),是深度學習(deep learning)演演算法之一。
遞歸神經網路(recursive neural network)提出於1990年,被視為循環神經網路(recurrent neural network)的推廣。當遞歸神經網路的每個父節點都僅與一個子節點連接時,其結構等價於全連接的循環神經網路。遞歸神經網路可以引入門控機制(gated mechanism)以學習長距離依賴。
遞歸神經網路具有靈活的拓撲結構且權重共享,適用於包含結構關係的機器學習任務,在自然語言處理(Natural Language Processing, NLP)領域有重要應用。
遞歸神經網路是面向自然語言處理(Natural Language Processing, NLP)研究提出的連接主義(connectionist)模型,其早期工作包括循環神經網路的全連接版本Elamn網路、David Rumelhart和James McClelland提出的交互激勵模型(interactive activation model)和Alan Kawamoto在雙語詞量接觸(Bilingual lexical access)中建立的語音學階層特徵。遞歸神經網路在1990年由美國學者Jordan B. Pollack提出以解決語言建模(language modeling)中數據結構的表徵問題。遞歸神經網路的最初版本為平衡的二叉樹結構,但在發展中逐漸轉變為按信息組織結構。
遞歸神經網路的核心部分由階層分佈的節點構成,其中高階層的節點為父節點,低階層的節點被稱為子節點,最末端的子節點通常為輸出節點,節點的性質與樹中的節點相同。在文獻中,遞歸神經網路的輸出節點通常位於樹狀圖的最上方,此時其結構是自下而上繪製的,父節點位於子節點的下方。遞歸神經網路的每個節點都可以有數據輸入,對第 階層的節點,其系統狀態的計算方式如下:
式中 為該節點和其所有父節點的的系統狀態(system status),在有多個父節點時,是合併為矩陣的系統狀態,是該節點的數據輸入,若該節點沒有輸入則不進行計算。為激勵函數或封裝的前饋神經網路,後者對應門控演演算法和一些深度演演算法。權重係數,注意到權重係數與節點的階層無關,即遞歸神經網路所有節點的權重是共享的。
遞歸神經網路支持單輸出和多輸出。在單輸出模式下,其最末端子節點的系統狀態會通過輸出函數(例如分類器)得到結果。多輸出模式下遞歸神經網路的輸出取決於拓撲結構,在理論上其任意一個節點的系統狀態都可以參與輸出。
遞歸神經網路可以使用監督學習和非監督學習理論進行訓練。在監督學習時,遞歸神經網路使用反向傳播演演算法(Back-probagation, BP)更新權重參數,計算過程類似與循環神經網路的隨時間反向傳播(BP Through Time, BPTT)演演算法。非監督學習的遞歸神經網路被用於結構信息的特徵學習(feature learning),其中最常見的組織形式是遞歸自編碼器(Recursive Auto-Encoder, RAE) 。
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間遞歸神經網路(RNN),論文首次發表於1997年。由於獨特的設計結構,LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件。
LSTM的表現通常比時間遞歸神經網路及隱馬爾科夫模型(HMM)更好,比如用在不分段連續手寫識別上。2009年,用LSTM構建的人工神經網路模型贏得過ICDAR手寫識別比賽冠軍。LSTM還普遍用於自主語音識別,2013年運用TIMIT自然演講資料庫達成17.7%錯誤率的紀錄。作為非線性模型,LSTM可作為複雜的非線性單元用於構造更大型深度神經網路。
LSTM是一種含有LSTM區塊(blocks)或其他的一種類神經網路,文獻或其他資料中LSTM區塊可能被描述成智能網路單元,因為它可以記憶不定時間長度的數值,區塊中有一個gate能夠決定input是否重要到能被記住及能不能被輸出output。
右圖底下是四個S函數單元,最左邊函數依情況可能成為區塊的input,右邊三個會經過gate決定input是否能傳入區塊,左邊第二個為input gate,如果這裡產出近似於零,將把這裡的值擋住,不會進到下一層。左邊第三個是forget gate,當這產生值近似於零,將把區塊里記住的值忘掉。第四個也就是最右邊的input為output gate,他可以決定在區塊記憶中的input是否能輸出。
LSTM有很多個版本,其中一個重要的版本是GRU(Gated Recurrent Unit),根據谷歌的測試表明,LSTM中最重要的是Forget gate,其次是Input gate,最次是Output gate。
結構遞歸神經網路是一類用結構遞歸的方式構建的網路,比如說遞歸自編碼機(Recursive Autoencoder),在自然語言處理的神經網路分析方法中用於解析語句。