迴圈網路區別於之前提到的前饋網路在於,它能夠將每一層的輸出帶到後面的神經層,使用state向量來儲存和傳遞處理過的資訊,用遞迴函式表示如下。
\[s_i = f(s_,x_i),這裡的s_i表示新的狀態,s_表示前乙個狀態,x_i則是輸入
\]用圖來表示,
舉個例子,
\[s_i = tanh(w_ss_ + w_xx_i + b),這裡的兩個w矩陣是不一樣的,表示state和input不共享引數
訓練的大題步驟與其他神經網路類似,這裡不展開了。
rnn雖然可以捕獲長文字資訊,但是實際上較早出現的資訊會發生逐漸淡化的問題,也就是vanishing grandients,在backpropagation過程中梯度可能會丟失!怎麼辦?有人就提出了lstm模型,全名long short term memory,使用「記憶單元」來儲存梯度,再通過「門」(向量,每個元素都是概率)來決定哪些需要被記住哪些需要被忘記。我們通過一張圖來對比一下rnn和lstm的結構,
這裡我們用公式表達一下lstm的結構,
這裡的f表示遺忘門,i表示輸入,o表示輸出,c表示記憶單元,h表示結果輸出,可以發現他其實是在做三件事,乙個是忘記一部分輸入資訊,乙個是抽取新輸入的資訊然後更新記憶單元,最後乙個是結果記憶單元和輸入資訊做輸出。
這個記憶單元也有許多變形,如peephole connections,gated recurrent unit (gru)。同時對lstm本身也有許多變形,如multilayer-lstm,bidirectional lstm
關於lstm詳解,參考
rnn模型在許多nlp任務都有很好的應用,如生成文字,文字分類,序列標註……
優點:‣ has the ability to capture long range contexts
‣ excellent generalisation
‣ just like feedforward networks: flexible, so it can be used for all sorts of tasks
‣ common component in a number of nlp tasks
缺點:‣ slower than feedforward networks due to sequential processing
‣ in practice still doesn』t capture long range dependency very well (evident when generating long text)
深度學習 迴圈神經網路(RNN)
迴圈神經網路 rnn 目錄 情感分類 正面,負面 前向傳播和反向傳播 1 前向傳播 2 反向傳播 gru lstm 一 gru gated recurrent unit 二 lstm long short term memory 零基礎入門深度學習 6 長短時記憶網路 lstm word2vec數學...
深度學習與神經網路(八) 迴圈神經網路RNN
首先看乙個簡單案例,在某寶的好評 差評檢測中,系統要能夠分析使用者的評價是好評還是差評,那怎樣處理這樣的評價資料呢,例如有一條評價 i hate this boring movie 機器怎樣解決這樣的問題呢 首先我們在之前的時間序列表示中已經知道了怎樣對乙個單詞進行表示。如果使用glove的話,整句...
RNN概述 深度學習 神經網路
一 rnn概述 前面我們敘述了bp演算法,cnn演算法,那麼為什麼還會有rnn呢?什麼是rnn,它到底有什麼不同之處?rnn的主要應用領域有哪些呢?這些都是要討論的問題.1 bp演算法,cnn之後,為什麼還有rnn?2 什麼是rnn?rnn是一種特殊的神經網路結構,它是根據 人的認知是基於過往的經驗...