記錄一下RNN為什么可以記錄以前歷史信息,如何從公式中體現出?
那么首先介紹一下為什么普通的神經網絡不能記憶以前的歷史信息,然后引出RNN的相應能力,因為如果普通的神經網絡能夠記錄以前的歷史信息的話,那么也就不會有RNN思想的誕生了。
1普通神經網絡(MLP)
首先我們有一個任務,就是進行詞性標注,下面有兩個訓練數據。
他向我表白我覺得他的表白不夠真誠
正確的詞性是:
那么將這些訓練數據送給神經網絡進行訓練,比如第一個數據 “他/r”,神經網絡學習 “他->r”的一個映射,第二個數據 “向/p”,神經網絡學習一個 “向->p”的映射,這樣一直將訓練數據學習完,更新到最后的參數,從而學習到model,但是問題來了。
學習示例圖如下:
在上面的訓練數據中,有些詞語的詞性并不是唯一的,比如“表白”一詞,在“他向我表白”這句話中作為動詞v,在“我覺得他的表白不夠真誠”這句話中作為名詞n,所以對于神經網絡來說,它是會學亂的。
一下子神經網絡要學習“表白”是動詞,一下子又要學習“表白”是名詞,神經網絡也很無辜呀,它沒有能力來處理什么情況下應該將“表白”判別為名詞,什么情況下降“表白”判斷為動詞,因為神經網絡學習不到周圍的語境。喂給神經網絡的數據和之前的數據并沒有聯系。
所以我們這個時候就需要一個能夠記憶以前歷史信息的網絡出現,比如在第一句話中,碰到表達一詞的時候,我知道他前面的詞是“我”/代詞,那么代詞后面的表白作為動詞的概率就遠大于名詞的表白,當然RNN還能夠看到他前面好幾個詞語,理論上rnn可以記憶當前詞語前面的任何詞。
同理在第二句話的時候,碰到“表白”一詞的時候,我們的網絡能夠知道他前面的詞是“的”/助詞,那么助詞后面的“表白”作為名詞的概率就遠大于動詞的”表白“。
所以我們希望能夠有一個網絡在預測當前任務的時候,能夠記憶以前的知識幫助當前的任務完成,這樣RNN就閃亮登場了,可能有些小伙伴會說,它存在很多問題,比如不能長期記憶,但是這篇文章不介紹,但是無論如何,RNN提供了這種問題解決的可能。
2循環神經網絡記錄歷史信息RNN
首先來介紹一下RNN
首先看一個簡單的循環神經網絡如,它由輸入層、一個隱藏層和一個輸出層組成:
不知道初學的同學能夠理解這個圖嗎,反正我剛開始學習的時候是懵逼的,每個結點到底代表的是一個值的輸入,還是說一層的向量結點集合,如何隱藏層又可以連接到自己,等等這些疑惑~這個圖是一個比較抽象的圖。
我們現在這樣來理解,如果把上面有W的那個帶箭頭的圈去掉,它就變成了最普通的全連接神經網絡。x是一個向量,它表示輸入層的值(這里面沒有畫出來表示神經元節點的圓圈);s是一個向量,它表示隱藏層的值(這里隱藏層面畫了一個節點,你也可以想象這一層其實是多個節點,節點數與向量s的維度相同);
-
rnn
+關注
關注
0文章
89瀏覽量
6895
原文標題:【干貨】循環神經網絡(RNN)為什么能夠記憶歷史信息
文章出處:【微信號:tyutcsplab,微信公眾號:智能感知與物聯網技術研究所】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論