什麼是rnn?
rnn的思想是利⽤序列化的資訊。在傳統的神經⽹絡中,我們假設所有輸⼊和輸出彼此獨⽴。 但對於 許多任務⽽⾔,這個假設有問題。例如你想**句⼦中的下⼀個單詞,就需要知道它前⾯有哪些單詞。 rnn被稱為迴圈,因為它對序列的每個元素執⾏相同的任務,並且基於先前的計算進⾏輸出。rnn的另 ⼀個優點是它具有「記憶」,它可以收集到⽬前為⽌已經計算的資訊。 理論上,rnn可以在任意⻓的序列 中使⽤資訊,但實際使⽤中僅僅往回記錄⼏步。這是典型的rnn的樣⼦:
這個圖是迴圈是迴圈神經⽹絡正向計算時按時間順序展開。這⾥展開意味著把完整的序列的⽹絡展示出 來。例如,如果我們關⼼的序列是5個單詞的句⼦,則⽹絡將展開為5層神經⽹絡,每個單詞⼀層。途中 的表示式解釋如下:
這⾥有⼏點需要注意:
rnn可以做什麼?
rnn在許多nlp任務中取得了巨⼤成功。 在這個領域最常⽤的rnn型別是lstm,它在捕獲⻓期依賴⽅ ⾯要⽐普通的rnn好得多。但不要擔⼼,lstm和rnn基本相同,它們只是採⽤不同的⽅式來計算隱藏 狀態。以下是rnp在nlp中的⼀些示例應⽤。
語⾔模型和⽣成⽂本
給定⼀個單詞的序列,我們想要根據給出的前⼀個詞**出下⼀個詞的概率。根據語⾔模型我們可以計 算句⼦的可能性,這是機器翻譯的重要輸⼊(因為概率⾼的句⼦通常是正確的)。能夠**下⼀個單詞 的副作⽤是我們得到⼀個⽣成模型,⽣成模型是的我們可以通過從輸出概率中抽樣來⽣成新⽂本。根據 我們的訓練資料,我們可以⽣成各種各樣的東⻄。在語⾔模型中,我們的輸⼊通常是⼀系列單詞(編碼 成one-hot),我們的輸出是**單詞的序列。在訓練⽹絡時,我們設定 ,因為我們希望 時 刻的輸出是下⼀個時刻的輸⼊。
機器翻譯
機器翻譯類似於語⾔模型,因為我們的輸⼊是源語⾔中的⼀系列單詞(例如德語)。我們希望輸出⽬標 語⾔的⼀系列單詞(例如英語)。關鍵的區別是只有輸⼊完整之後才會進⾏輸出,因為我們翻譯的句⼦ 的第⼀個單詞可能需要從完整的輸⼊序列中獲取資訊。
機器翻譯的rnn
語⾳識別 給定來⾃聲波的聲學訊號作為輸⼊序列,我們可以**⼀系列語⾳⽚段及其概率。 ⽣成影象描述 rnn作為模型的⼀部分與卷積神經⽹絡⼀起⽣成未標記影象的描述。
這個組合模型⾮常令⼈驚訝的,結 果很不錯。 組合模型甚⾄可以把⽣成的單詞與影象中找到的特徵對應起來。
lstm⽹絡現在⾮常流⾏,我們這⾥簡單的討論⼀下。 lstm與rnn基本架構師相同的,只不過它們使 ⽤不同的函式來計算隱藏狀態。lstm中的記憶單元稱為 ,可以把它們視為⿊框,將前⼀個狀態 和當前輸⼊ 作為輸⼊。這些單元在內部決定要保留什麼。 然後它們組合了先前的狀態,當前的 記憶和輸⼊。事實證明,這些單元在捕獲⻓期依賴⽅⾯⾮常有效。
RNN迴圈神經網路
評測乙個句子出現的可能性 文字自動生成 rnn迴圈處理相同的任務,就是 句子接下來的單詞是什麼。rnn迴圈記錄前面所有文字的資訊 也叫做記憶 作為 當前詞的乙個輸入 1.語言模型和文字生成 語言模型中,輸入是經過編碼的詞向量序列,輸出是一系列 的詞 2.機器翻譯 機器翻譯必須等待所有輸入結束後才能輸...
迴圈神經網路 RNN
from torchnlp.word to vector import glove vectors glove vectors hello torch.nn.utils.clip grad norm p,10 10就是最大梯度的模閾值,即保留原來梯度的方向,但梯度大小縮放至10對與梯度瀰散現象,考慮...
RNN迴圈神經網路
神經網路基礎 神經網路可以當做是擬合任意函式的黑盒子,給定特定的輸入x,就能夠的得到希望的輸出y。神經網路結構如下圖 將神經網路模型訓練好之後,輸入層輸入乙個x,通過網路之後就能夠在輸出層輸出特定的y.有了這麼強大的模型,為什麼會出現rnn 迴圈神經網 它們單獨的乙個個的輸入,前乙個輸入和後乙個輸入...