rnn
rnn便於處理具有時序關係的任務
引入「記憶」概念
基本結構
輸出不僅依賴於輸入,還依賴於記憶
將同乙個結構迴圈利用
兩種輸入,兩種輸出,一種函式
三塊引數:
u:從輸入到隱藏狀態
v:從隱藏狀態到輸出
xt:時間t處的輸入
ht:時間t處的記憶,ht=f(ht-1,xt),f可以是tanh等
ht=tanh(wht-1+uxt)
yt:時間t時刻的輸出,yt=sotfmax(vht)
f被不斷重複利用
模型所需要學習的引數是固定的
無論輸入的長度是多少,只需要乙個函式f
深度rnn
雙向rnn
bptt演算法
lstm(長短期記憶模型)
遺忘門,輸入門,輸出門
遺忘門:決定丟棄資訊
sigmoid描述每個部分有多少量可以通過
輸入門:確定需要更新的資訊
首先經過sigmoid層決定什麼資訊需要更新,然後通過tanh層輸出備選的需要更新的內容,然後加入新的狀態中
輸出門:輸出資訊
首先通過sigmoid來決定細胞狀態的哪個部分將輸出出去。然後將細胞狀態通過tanh進行處理並將它和sigmoid門的輸出相乘,最終僅僅會輸出我們確定輸出的那部分
rnn與lstm不同
處理方式不同
rnn的記憶在每個時間點都會被新的輸入覆蓋,但lstm中記憶是與新的輸入相加
lstm:如果前邊的輸入對ct產生了影響,那這個影響會一直存在,除非遺忘門的權重為0
lstm中learning rate可以被盡量設定小
lstm與gru(門控迴圈單元)
差異:gru只有兩個門,分別為重置門和更新門
混合了細胞狀態和隱藏狀態
重置門:控制忽略前一時刻的狀態資訊的程度,重置門越**明忽略的越多
更新門:控制前一時刻的狀態資訊被帶入到當前狀態中的程度,更新門越大表示歉意時刻的狀態資訊代入得越多
相似:從t-1到t時刻的記憶的更新都引入加法
可以防止梯度消失
迴圈神經網路
原文 迴圈神經網路也可以畫成下面這個樣子 對於語言模型來說,很多時候光看前面的詞是不夠的,比如下面這句話 我的手機壞了,我打算 一部新手機。可以想象,如果我們只看橫線前面的詞,手機壞了,那麼我是打算修一修?換一部新的?還是大哭一場?這些都是無法確定的。但如果我們也看到了橫線後面的詞是 一部新手機 那...
迴圈神經網路
原文 迴圈神經網路也可以畫成下面這個樣子 對於語言模型來說,很多時候光看前面的詞是不夠的,比如下面這句話 我的手機壞了,我打算 一部新手機。可以想象,如果我們只看橫線前面的詞,手機壞了,那麼我是打算修一修?換一部新的?還是大哭一場?這些都是無法確定的。但如果我們也看到了橫線後面的詞是 一部新手機 那...
迴圈神經網路
特點 上一階段 時間步 的輸出作為輸入進入當前時間步。迴圈神經網路由迴圈神經原組成,迴圈神經元一般有兩個輸入,乙個是前階段的資訊,乙個是當前階段的資訊。同時產生乙個輸出,可以作為下一階段的輸入。迴圈神經網路採用多種模型。左上 每個時間步有乙個輸入,同時產生乙個輸出 右上 一串輸入,最後產生乙個輸出。...