1 RNN神經網路模型原理

2022-07-04 05:57:11 字數 1316 閱讀 2511

1. rnn神經網路模型原理

2. rnn神經網路模型的不同結構

3. rnn神經網路-lstm模型結構

迴圈神經網路(recurrent neural network)源自於2023年由saratha sathasivam 提出的霍普菲爾德網路。

傳統的機器學習演算法非常依賴於人工提取的特徵,使得基於傳統機器學習的影象識別、

語音識別以及自然語言處理等問題存在特徵提取的瓶頸。而基於全連線神經網路的方法也

存在引數太多、無法利用資料中時間序列資訊等問題。隨著更加有效的迴圈神經網路結構被不斷提出,迴圈神經網路挖掘資料中的時序資訊以及語義資訊的深度表達能力被充分利

用,並在語音識別、語言模型、機器翻譯以及時序分析等方面實現了突破。

迴圈神經網路的主要用途是處理和**序列資料。在之前介紹的全連線神經網路或卷積神經網路模型中,網路結構都是從輸入層到隱含層再到輸出層,層與層之間是全連線或部分連線的,但每層之間的節點是無連線的。考慮這樣乙個問題,如果要**句子的下乙個單詞是什麼,一般需要用到當前單詞以及前面的單詞,因為句子中前後單詞並不是獨立的。比如,當前單詞是「很」,前乙個單詞是「天空」,那麼下乙個單詞很大概率是「藍」。迴圈神經網路的**就是為了刻畫乙個序列當前的輸出與之前資訊的關係。從網路結構上,迴圈神經網路會記憶之前的資訊,並利用之前的資訊影響後面結點的輸出。也就是說,迴圈神經網路的隱藏層之間的結點是有連線的,隱藏層的輸入不僅包括輸入層的輸出,還包括上時刻隱藏層的輸出。

rnn結構如下圖:

上圖中左邊是rnn模型沒有按時間展開的圖,如果按時間序列展開,則是上圖中的右邊部分。我們重點觀察右邊部分的圖。

這幅圖描述了在序列索引號t附近rnn的模型。其中:

\(x_t\)代表在序列索引號t時訓練樣本的輸入。同樣的,\(x_\)和\(x_\)代表在序列索引號\(t-1\)和\(t+1\)時訓練樣本的輸入。

\(h_t\)代表在序列索引號t時模型的隱藏狀態。\(h_t\)由\(x_t\)和\(h_\)共同決定。

\(o_t\)代表在序列索引號t時模型的輸出。\(o_t\)只由模型當前的隱藏狀態\(h_t\)決定。

a代表rnn模型。

最後,給出經典rnn結構的嚴格數學定義。

輸入為\(x_1,x_2,...,x_t\)對應的隱狀態為\(h_1,h_2,...,h_t\)

輸出為\(y_1,y_2,...,y_t\),如,則經典rnn的運算過程可以表示為

\[h_t=f(ux_t+wh_+b)

\]\[y_t=softmax(vh_t+c)

\]其中,\(u,w,v,b,c\)均為引數,而\(f()\)表示啟用函式,一般為tanh函式。

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

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

神經網路基礎 迴圈神經網路RNN

在處理序列問題 如語言識別等 上,使用迴圈神經網路 recurrent neural networks,rnn 是很自然的方式 所謂迴圈神經網路,其實就是把上一時刻的資訊作為當前時刻輸入的一部分,從而實現資訊的傳遞 本文將先介紹基礎版rnn,並說明基礎版的問題,然後介紹改進版的迴圈神經網路lstm ...

遞迴神經網路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 ...