日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

YJango的循环神经网络——实现LSTM YJango的循环神经网络——实现LSTM YJango YJango 7 个月前 介绍 描述最常用的RNN实现方式:Long-Short Term Me

發布時間:2025/3/21 循环神经网络 84 豆豆

YJango的循環神經網絡——實現LSTM

YJango 7 個月前

介紹

描述最常用的RNN實現方式:Long-Short Term Memory(LSTM)

梯度消失和梯度爆炸

網絡回憶:在《循環神經網絡——介紹》中提到循環神經網絡用相同的方式處理每個時刻的數據。

  • 動態圖:


  • 數學公式


設計目的:我們希望循環神經網絡可以將過去時刻發生的狀態信息傳遞給當前時刻的計算中。

實際問題:但普通的RNN結構卻難以傳遞相隔較遠的信息。

  • 考慮:若只看上圖藍色箭頭線的、隱藏狀態的傳遞過程,不考慮非線性部分,那么就會得到一個簡化的式子(1):
    • (1)?
    • 如果將起始時刻的隱藏狀態信息向第時刻傳遞,會得到式子(2)
    • (2)?
    • 會被乘以多次,若允許矩陣進行特征分解
    • (3)?
    • 式子(2)會變成(4)
    • (4)?

當特征值小于1時,不斷相乘的結果是特征值的次方向??衰減; 當特征值大于1時,不斷相乘的結果是特征值的t次方向?擴增。 這時想要傳遞的中的信息會被掩蓋掉,無法傳遞到。


  • 類比:設想y,如果等于0.1,在被不斷乘以0.1一百次后會變成多小?如果等于5,在被不斷乘以5一百次后會變得多大?若想要所包含的信息既不消失,又不爆炸,就需要盡可能的將的值保持在1。
  • 注:更多內容請參閱Deep Learning by Ian Goodfellow中第十章

Long Short Term Memory (LSTM)

上面的現象可能并不意味著無法學習,但是即便可以,也會非常非常的慢。為了有效的利用梯度下降法學習,我們希望使不斷相乘的梯度的積(the product of derivatives)保持在接近1的數值。

一種實現方式是建立線性自連接單元(linear self-connections)和在自連接部分數值接近1的權重,叫做leaky units。但Leaky units的線性自連接權重是手動設置或設為參數,而目前最有效的方式gated RNNs是通過gates的調控,允許線性自連接的權重在每一步都可以自我變化調節。LSTM就是gated RNNs中的一個實現。

LSTM的初步理解

LSTM(或者其他gated RNNs)是在標準RNN ()的基礎上裝備了若干個控制數級(magnitude)的gates。可以理解成神經網絡(RNN整體)中加入其他神經網絡(gates),而這些gates只是控制數級,控制信息的流動量。

數學公式:這里貼出基本LSTM的數學公式,看一眼就好,僅僅是為了讓大家先留一個印象,不需要記住,不需要理解。


盡管式子不算復雜,卻包含很多知識,接下來就是逐步分析這些式子以及背后的道理。 比如的意義和使用原因,sigmoid的使用原因。

門(gate)的理解

理解Gated RNNs的第一步就是明白gate到底起到什么作用。

  • 物理意義:gate本身可看成是十分有物理意義的一個神經網絡。
    • 輸入:gate的輸入是控制依據;
    • 輸出:gate的輸出是值域為的數值,表示該如何調節其他數據的數級的控制方式。
  • 使用方式:gate所產生的輸出會用于控制其他數據的數級,相當于過濾器的作用。
    • 類比圖:可以把信息想象成水流,而gate就是控制多少水流可以流過。
  • 例如:當用gate來控制向量時,
  • 若gate的輸出為時,原來的向量就會被對應元素相乘(element-wise)后變成:

=

  • 若gate的輸出為時,原來的向量就會被對應元素相乘(element-wise)后變成:


  • 控制依據:明白了gate的輸出后,剩下要確定以什么信息為控制依據,也就是什么是gate的輸入。
  • 例如:即便是LSTM也有很多個變種。一個變種方式是調控門的輸入。例如下面兩種gate:
  • 這種gate的輸入有當前的輸入和上一時刻的隱藏狀態, 表示gate是將這兩個信息流作為控制依據而產生輸出的。
  • 這種gate的輸入有當前的輸入和上一時刻的隱藏狀態,以及上一時刻的cell狀態, 表示gate是將這三個信息流作為控制依據而產生輸出的。這種方式的LSTM叫做peephole connections。


LSTM的再次理解

明白了gate之后再回過頭來看LSTM的數學公式

數學公式


  • gates:先將前半部分的三個式子統一理解。在LSTM中,網絡首先構建了3個gates來控制信息的流通量。
  • 注: 雖然gates的式子構成方式一樣,但是注意3個gates式子和的下角標并不相同。它們有各自的物理意義,在網絡學習過程中會產生不同的權重。
  • 有了這3個gates后,接下來要考慮的就是如何用它們裝備在普通的RNN上來控制信息流,而根據它們所用于控制信息流通的地點不同,它們又被分為:
    • 輸入門:控制有多少信息可以流入memory cell(第四個式子)。
    • 遺忘門:控制有多少上一時刻的memory cell中的信息可以累積到當前時刻的memory cell中。
    • 輸出門:控制有多少當前時刻的memory cell中的信息可以流入當前隱藏狀態中。
    • 注:gates并不提供額外信息,gates只是起到限制信息的量的作用。因為gates起到的是過濾器作用,所以所用的激活函數是sigmoid而不是tanh。


  • 信息流:信息流的來源只有三處,當前的輸入,上一時刻的隱藏狀態,上一時刻的cell狀態,其中是額外制造出來、可線性自連接的單元(請回想起leaky units)。真正的信息流來源可以說只有當前的輸入,上一時刻的隱藏狀態兩處。三個gates的控制依據,以及數據的更新都是來源于這兩處。
  • 分析了gates和信息流后,再分析剩下的兩個等式,來看LSTM是如何累積歷史信息和計算隱藏狀態的。
  • 歷史信息累積:
    • 式子:
    • 其中是本次要累積的信息來源。
    • 改寫:

所以歷史信息的累積是并不是靠隱藏狀態自身,而是依靠memory cell這個自連接來累積。 在累積時,靠遺忘門來限制上一時刻的memory cell的信息,并靠輸入門來限制新信息。并且真的達到了leaky units的思想,memory cell的自連接是線性的累積。


  • 當前隱藏狀態的計算:如此大費周章的最終任然是同普通RNN一樣要計算當前隱藏狀態。
    • 式子:
    • 當前隱藏狀態是從計算得來的,因為是以線性的方式自我更新的,所以先將其加入帶有非線性功能的。 隨后再靠輸出門的過濾來得到當前隱藏狀態。

普通RNN與LSTM的比較

下面為了加深理解循環神經網絡的核心,再來和YJango一起比較一下普通RNN和LSTM的區別。

  • 比較公式:最大的區別是多了三個神經網絡(gates)來控制數據的流通。
    • 普通RNN:
    • LSTM:
    • 比較:二者的信息來源都是,?不同的是LSTM靠3個gates將信息的積累建立在線性自連接的memory cell之上,并靠其作為中間物來計算當前。
  • 示圖比較:圖片來自Understanding LSTM,強烈建議一并閱讀。
    • 普通RNN:


    • LSTM:加號圓圈表示線性相加,乘號圓圈表示用gate來過濾信息。


    • 比較:新信息從黃色的tanh處,線性累積到memory cell之中后,又從紅色的tanh處加入非線性并返回到了隱藏狀態的計算中。


LSTM靠3個gates將信息的積累建立在線性自連接的權重接近1的memory cell之上,并靠其作為中間物來計算當前。

LSTM的類比

對于用LSTM來實現RNN的記憶,可以類比我們所用的手機(僅僅是為了方便記憶,并非一一對應)。


普通RNN好比是手機屏幕,而LSTM-RNN好比是手機膜。

大量非線性累積歷史信息會造成梯度消失(梯度爆炸)好比是不斷使用后容易使屏幕刮花。

而LSTM將信息的積累建立在線性自連接的memory cell之上,并靠其作為中間物來計算當前好比是用手機屏幕膜作為中間物來觀察手機屏幕。

輸入門、遺忘門、輸出門的過濾作用好比是手機屏幕膜的反射率、吸收率、透射率三種性質。

Gated RNNs的變種

需要再次明確的是,神經網絡之所以被稱之為網絡是因為它可以非常自由的創建合理的連接。而上面所介紹的LSTM也只是最基本的LSTM。只要遵守幾個關鍵點,讀者可以根據需求設計自己的Gated RNNs,而至于在不同任務上的效果需要通過實驗去驗證。下面就簡單介紹YJango所理解的幾個Gated RNNs的變種的設計方向。

  • 信息流:標準的RNN的信息流有兩處:input輸入和hidden state隱藏狀態。

但往往信息流并非只有兩處,即便是有兩處,也可以拆分成多處,并通過明確多處信息流之間的結構關系來加入先驗知識,減少訓練所需數據量,從而提高網絡效果。

例如:Tree-LSTM在具有此種結構的自然語言處理任務中的應用。


  • gates的控制方式:與LSTM一樣有名的是Gated Recurrent Unit (GRU),而GRU使用gate的方式就與LSTM的不同,GRU只用了兩個gates,將LSTM中的輸入門和遺忘門合并成了更新門。并且并不把線性自更新建立在額外的memory cell上,而是直接線性累積建立在隱藏狀態上,并靠gates來調控。


  • gates的控制依據:上文所介紹的LSTM中的三個gates所使用的控制依據都是,但是可以通過與memory cell的連接來增加控制依據或者刪除某個gate的或來縮減控制依據。比如去掉上圖中中的從而變成

介紹完《循環神經網絡——實現LSTM》后, 接下來的第三篇《循環神經網絡——代碼》就是用tensorflow從頭來實現網絡內容。

總結

以上是生活随笔為你收集整理的YJango的循环神经网络——实现LSTM YJango的循环神经网络——实现LSTM YJango YJango 7 个月前 介绍 描述最常用的RNN实现方式:Long-Short Term Me的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。