神經網路篇 RNN遞迴神經網路初始與詳解

2021-08-21 00:21:15 字數 1817 閱讀 3768

一、前述

傳統的神經網路每個輸入節點之間沒有聯絡,

rnn (對中間資訊保留):

由圖可知,比如第二個節點的輸入不僅依賴於本身的輸入u1,而且依賴上乙個節點的輸入w0,u0,同樣第三個節點依賴於前兩個節點的輸入,

假設每乙個節點分別代表著「我出生在中國,我說——」的乙個**,則「說」後面則是依賴於前面的說的每個單詞的所有組合。

xt表示第t,t=1,2,3...步(step)的輸入

st為隱藏層的第t步的狀態,它是網路的記憶單元

st=f(uxt+wst−1),其中f一般是非線性的啟用函式。

ot是第t步的輸出,如下個單詞的向量表示softmax(vst)(多分類)。

二、具體

1、遞迴神經網路的反向傳播

不僅更新當前節點的輸入梯度,還更新當前節點的所有記憶單元,一直傳播下去。

2、rnn侷限性問題

遞迴神經網路引數太多,資訊量冗餘(因為最後的**可能只 依賴它最近的詞,但我們輸入的時候是所有的詞,所以資訊量冗餘)、梯度消失。

3、lstm(長短記憶網路)

為了解決rnn的一些缺點,rnn與lstm對比

c:控制引數

決定什麼樣的資訊會被保留什麼樣的會被遺忘

具體操作:

門是一種讓資訊選擇式通過的方法sigmoid 神經網路層和一乘法操作。

sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表「不許任何量通過」,1 就指「允許任意量通過」!

sigmoid函式

具體過程:先把當前節點的輸入和之前記憶的輸入傳遞進來,然後通過sigmod函式組合起來後得到的函式值(0,1)之間,然後再跟ct-1組合,決定丟棄什麼資訊。ct是永遠更新維護的值。

保留的資訊:

最後總的資訊:

分兩部分,遺忘的資訊cti-1和保留ct的資訊。先走遺忘的資訊,再走保留的資訊。ct從開始到最後一直更新。

輸出:lstm整體架構:

與rnn對比會有一部分資訊保留,一部分資訊丟棄。lstm比rnn更實用。

RNN 迴圈神經網路or遞迴神經網路?

我 內心os 有嗎,我感覺我看到的都是迴圈神經網路啊?我 這個應該就是翻譯的問題吧 回去以後我查了一下,發現我錯了,迴圈神經網路和遞迴神經網路還是有點區別的。很明顯,它倆名字就是不一樣的,迴圈神經網路是recurrent neural network,遞迴神經網路是recursive neural ...

遞迴神經網路RNN

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 載入資料 mnist input data.read data sets mnist data one hot true 輸入是28 ...

遞迴神經網路RNN

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data in 2 載入資料集 mnist input data.read data sets mnist data one hot true ...