機器學習:深入理解LSTM網路 (二)
之前我們介紹了RNN 網路結構以及其所遇到的問題,RNN 結構對於關聯度太長的時序問題可能無法處理,
簡單來說,RNN對於太久遠的資訊不能有效地儲存,為了解決這個問題,有人提出了LSTM的網路結構,LSTM 網路結構最早是由 Hochreiter & Schmidhuber 在1997 年提出的,隨著後來研究者的不斷改進,LSTM網路在很多問題上都有非常好的表現,並且得到廣泛的關注與應用。
LSTM 網路
LSTM 結構的一個優勢在於可以很好的解決 “long-term dependency” 的問題,”長期記憶”是LSTM結構與生俱來的特性,而不需要刻意地去學習。
所有的RNN結構都是有一個不斷重複的模組,在標準的RNN結構中,這個不斷重複的模組是一個單層的tanh , 如下圖所示:
表示式簡單來說就是:
LSTM 網路也是有一個不斷重複的模組,但是這個模組不是一個簡單的tanh層,而是有複雜的四個網路層,用一種特殊的方式連線在一起,如下圖所示:
LSTM 的核心思想
LSTM 網路的關鍵是 cell state,就是網路結構中最上面的那條水平線,如下圖所示:
這條水平線貫穿整個網路,與一些線性組合相結合,可以將資訊無改變的傳遞。
LSTM 網路具備的另外一種能力就是移除或者增加一些資訊,這個過程是由一些稱為傳送門的結構來控制的,傳送門可以讓資訊有選擇的通過,這種門結構由sigmoid 層 與 點乘運算子組成。如下圖所示:
其中,sigmoid 層輸出 0-1 之間的數,控制資訊傳遞的概率,1表示資訊完全通過,0表示資訊完全不能通過,一個典型的LSTM 網路有三個這樣的傳送門用來控制 cell state.
逐步深入LSTM
LSTM 網路的第一步就是決定哪些資訊將從 cell state 中剔除掉,這一步是由一個sigmoid 層來負責的,sigmoid 層會根據輸入的
接下來的一步是要決定哪些新的資訊需要儲存在cell state 中,這一步有兩部分,首先,一個稱為 “input gate layer”的sigmoid 層會決定哪些資訊要被更新,然後 一個 tanh 層會建立一個新的向量
現在,就是對網路的舊狀態
最後,我們需要給出輸出,我們同樣需要一個sigmoid層來決定
總得來說,LSTM結構,利用了幾個傳送門來控制資訊的刪除與更新,通過一些設計好的連線方式,可以擁有“長期記憶”的能力。與標準的RNN結構最大的區別就在於,LSTM是利用模組層裡的神經網路來控制資訊,而RNN是利用模組本身的連線方式來處理資訊。所以與RNN相比,LSTM處理時序資訊的能力要更強。效能也更穩定。
這裡介紹的只是最常見的一種LSTM結構,實際上還有很多LSTM的變種,更加詳細的介紹,可以參考colah 的部落格。
相關文章
- 簡單理解LSTM神經網路神經網路
- LSTM理解
- LSTM神經網路神經網路
- 深入理解hadoop網路Hadoop
- 網路安全與機器學習(二):網路安全任務如何結合機器學習?機器學習
- LSTM機器學習生成音樂機器學習
- LSTM 長短期記憶網路
- LSTM - 長短期記憶網路
- RNN與LSTM網路簡述RNN
- 深入理解 GCD(二)GC
- LSTM變種-GRU網路結構
- 計算機網路——深入理解TCP/IP計算機網路TCP
- 深入理解Hadoop叢集和網路Hadoop
- LSTM:好理解的資源
- 機器學習_統計模型之(二)貝葉斯網路機器學習模型
- 非同步(二):Generator深入理解非同步
- 網路流量預測入門(三)之LSTM預測網路流量
- 計算機網路——深入理解HTTP以及HTTPs計算機網路HTTP
- 計算機網路資料篇(二)——快速理解網路協議計算機網路協議
- [深入理解Android卷二 全文-第二章]深入理解Java Binder和MessageQueueAndroidJava
- YJango的迴圈神經網路——實現LSTMGo神經網路
- 視覺化LSTM網路:探索「記憶」的形成視覺化
- DockOne微信分享(一三三):深入理解Kubernetes網路策略
- 深入理解Java中的鎖(二)Java
- 深入理解hashmap(二)理論篇HashMap
- 深入理解Plasma(二)Plasma 細節ASM
- [深入理解Android卷二 全文-第五章]深入理解PowerManagerServiceAndroid
- 機器學習之神經網路機器學習神經網路
- [深入理解Android卷二 全文-第六章]深入理解ActivityManagerServiceAndroid
- [深入理解Android卷二 全文-第四章]深入理解PackageManagerServiceAndroidPackage
- [深入理解Android卷二 全文-第三章]深入理解SystemServerAndroidServer
- 深入理解Linux網路內幕-PART I -通用背景(轉)Linux
- YJango的迴圈神經網路——scan實現LSTMGo神經網路
- 深入理解Java虛擬機器(二)Java虛擬機
- 大飛帶你深入理解Tomcat(二)Tomcat
- 深入 K8s 網路原理(二)- Service iptables 模式分析K8S模式
- 機器閱讀理解Match-LSTM模型模型
- 機器學習整理(神經網路)機器學習神經網路