官术网_书友最值得收藏!

3.2.3 循環神經網絡數據特征提取

循環神經網絡(RNN)體現于下層輸入需加上當前層輸出,即隱含層之間是有相互作用的。一個多層感知機僅表征輸入與輸出向量的映射關系,而RNN是將歷史輸入映射至每一個輸出,因為它的隱含節點個數足夠多,因此可以以任意精度逼近任意可度量的序列到序列的映射。這與MLP中的全局逼近理論相對應。環形連接最突出的特點是能在網絡的中間狀態保留之前的“記憶”,而這種狀態會影響網絡最終的輸出。單個隱含層的MLP和RNN的前向傳播基本一致,兩者的區別在于RNN是通過隱藏層上一次激活值和當前的輸入綜合計算得到當前點的激活值。與標準的反向傳播算法一樣,鏈式法則在RNN中的隨時間反向傳播(BackPropagation Through Time, BPTT)算法中被不斷使用。RNN的網絡結構如圖3-8所示。

圖3-8 RNN的網絡結構

如圖3-8所示,RNN層級結構相對其他神經網絡而言比較簡單,它由輸入層、隱含層和輸出層組成。在隱含層中有一個箭頭表示數據循環更新,這就是實現時間記憶功能的方法。將隱含層展開,可得到如圖3-9所示的展開圖。

圖3-9 RNN隱含層展開圖

圖3-9中,每個圓形可以看作是一個神經元,每個神經元執行的操作具有一致性,因此折疊收縮呈左半圖。簡單概括RNN,就是重復使用一個神經元結構。RNN是一個序列到序列的模型,假設Xt-1XtXt+1是一個輸入:“我在食堂吃飯”,那么Ot-1Ot就應該對應“我在”“食堂”,預測Xt+1是“吃飯”的概率比較大。因此,可以定義:Xt表示t時刻的輸入;Ot表示t時刻的輸出,St表示t時刻的記憶。

傳統的RNN具有梯度消失和梯度爆炸的問題,這使得訓練模型極其困難。為了解決這些問題,長短期記憶(LSTM)神經網絡應運而生,它是一種門控遞歸神經網絡(GRNN)。LSTM引入了更為復雜但有效的隱含層節點激活方式——在人工神經元中引入“門”的概念,可以有效地解決因梯度消失與梯度爆炸而使深度神經網絡深度不足的問題。其算法結構圖如圖3-10所示。

圖3-10 LSTM算法結構

了解LSTM網絡的關鍵是要先理解圖3-11所示的矩形框,即記憶模塊(Memory Block),主要包含了三個門:輸入門(Input Gate)、輸出門(Output Gate)和遺忘門(Forget Gate),與一個記憶單元(Cell)。圖3-11矩形框內上方的水平線稱為單元狀態(Cell State),它就像一條流水線,可以控制信息傳遞給下一個時刻。

圖3-11 記憶模塊結構圖

在圖3-11中,itotft分別為輸入門、輸出門、遺忘門,用sigmoid層表示。圖中的兩個tanh層分別對應記憶單元的輸入與輸出。

LSTM算法的第一步是篩選,篩選何種信息可以通過單元狀態。篩選由遺忘門層通過sigmoid控制,它會綜合當前輸入xt與上一時刻的輸出ht-1來產生一個0~1的ft值,然后判定是否讓上一時刻學到的特征Ct-1全部通過或者是通過一部分,用公式表示為

式中,Wf為權重矩陣;bf為偏置項。

LSTM算法的第二步是生成需要更新的新信息。這一步由兩部分組成:第一部分是輸入門層通過sigmoid來確定哪些值用來更新,第二部分是一個tanh層用來生成新的候選值C?tC作為當前層產生的候選值可能會添加到單元狀態中。然后結合這兩部分的值進行更新操作,即

將LSTM的第一步和第二步結合起來即為過濾不需要的信息、添加新信息的過程,即

最后一步是確定模型的輸出,首先通過sigmoid層得到初始輸出,然后使用tanh層將Ct值縮放至-1~1之間,再與sigmoid得到的輸出逐一相乘,從而獲得模型的輸出,即

式中,Wo為權重矩陣;bo為偏置項。

主站蜘蛛池模板: 六枝特区| 漯河市| 荣昌县| 灵丘县| 阳谷县| 肥西县| 兴宁市| 青川县| 祥云县| 裕民县| 正宁县| 天祝| 尖扎县| 剑阁县| 滕州市| 广丰县| 晋江市| 当阳市| 桑植县| 万安县| 渭源县| 公主岭市| 甘德县| 保康县| 尖扎县| 图们市| 油尖旺区| 台江县| 通榆县| 兴化市| 石渠县| 乌拉特前旗| 西乌珠穆沁旗| 乐都县| 西乌珠穆沁旗| 和硕县| 明水县| 遵义市| 甘孜| 浦城县| 临高县|