前沿高階技術之遞迴神經網路(RNN)
遞迴神經網路(RNN)
RNN是最強大的模型之一,它使我們能夠開發如分類、序列資料標註、生成文字序列(例如預測下一輸入詞的SwiftKey keyboard應用程式),以及將一個序列轉換為另一個序列(比如從法語翻譯成英語的語言翻譯)等應用程式。大多數模型架構(如前饋神經網路)都沒有利用資料的序列特性。例如,我們需要資料呈現出向量中每個樣例的特徵,如表示句子、段落或文件的所有token。前饋網路的設計只是為了一次性地檢視所有特徵並將它們對映到輸出。讓我們看一個文字示例,它顯示了為什麼順序或序列特性對文字很重要。I had cleaned my car和I had my car cleaned兩個英文句子,用同樣的單詞,但只有考慮單詞的順序時,它們才意味著不同的含義。
人類透過從左到右閱讀詞序列來理解文字,並構建了可以理解文字資料中所有不同內容的強大模型。RNN的工作方式有些許類似,每次只檢視文字中的一個詞。RNN也是一種包含某特殊層的神經網路,它並不是一次處理所有資料而是透過迴圈來處理資料。由於RNN可以按順序處理資料,因此可以使用不同長度的向量並生成不同長度的輸出。圖6.3提供了一些不同的表示形式。
圖6.3來自關於RNN一個著名部落格(),其中作者Andrej Karpathy寫明瞭如何使用Python從頭開始構建RNN並將其用作序列生成器。
6.4.1 透過示例瞭解RNN如何使用
假設我們已經構建了一個RNN模型,並且嘗試瞭解它提供的功能。當了解了RNN的作用後,就可以來探討一下RNN內部發生了什麼。
讓我們用Thor的評論作為RNN模型的輸入。我們正在看的示例文字是the action scenes were top notch in this movie... .首先將第一個單詞the傳遞給模型;該模型生成了狀態向量和輸出向量兩種不同的向量。狀態向量在處理評論中的下一個單詞時傳遞給模型,並生成新的狀態向量。我們只考慮在最後一個序列中生成的模型的輸出。圖6.4概括了這個過程。
圖6.4演示了以下內容:
· RNN如何透過展開和影像來工作;
· 狀態如何以遞迴方式傳遞給同一模型。
到現在為止,我們只是瞭解了RNN的功能,但並不知道它是如何工作的。在瞭解其工作原理之前來看一些程式碼片段,它會更詳細地展示我們學到的東西。仍然將RNN視為黑盒:
在上述程式碼中,hidden變數表示狀態向量,有時也稱為隱藏狀態。到現在為止,我們應該知道了如何使用RNN。現在來看一下實現RNN的程式碼,並瞭解RNN內部發生的情況。以下程式碼包含RNN類:
除了上述程式碼中的單詞RNN之外,其他一切聽起來與在前面章節中使用的非常類似,因為PyTorch隱藏了很多反向傳播的複雜度。讓我們透過init函式和forward函式來了解發生了什麼。
__init__函式初始化了兩個線性層,一個用於計算輸出,另一個用於計算狀態或隱藏向量。
forward函式將input向量和hidden向量組合在一起,並將其傳入兩個線性層,從而生成輸出向量和隱藏狀態。對於output層,我們應用log_softmax函式。
initHidden函式有助於建立隱藏向量,而無需在第一次時宣告呼叫RNN。讓我們透過圖6.5瞭解RNN類的作用。
圖6.5說明了RNN的工作原理。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020013/viewspace-2906685/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【神經網路篇】--RNN遞迴神經網路初始與詳解神經網路RNN遞迴
- 迴圈神經網路(RNN)神經網路RNN
- 迴圈神經網路 RNN神經網路RNN
- 深度學習之RNN(迴圈神經網路)深度學習RNN神經網路
- 迴圈神經網路(Recurrent Neural Network,RNN)神經網路RNN
- (一)線性迴圈神經網路(RNN)神經網路RNN
- (二)非線性迴圈神經網路(RNN)神經網路RNN
- 4.5 RNN迴圈神經網路(recurrent neural network)RNN神經網路
- 從網路架構方面簡析迴圈神經網路RNN架構神經網路RNN
- 迴圈神經網路LSTM RNN迴歸:sin曲線預測神經網路RNN
- [譯] RNN 迴圈神經網路系列 2:文字分類RNN神經網路文字分類
- 遞迴神經網路教程請簽收!遞迴神經網路
- RNN神經網路模型綜述RNN神經網路模型
- RNN-迴圈神經網路和LSTM_01基礎RNN神經網路
- [譯] RNN 迴圈神經網路系列 3:編碼、解碼器RNN神經網路
- 用於自然語言處理的迴圈神經網路RNN自然語言處理神經網路RNN
- 關於 RNN 迴圈神經網路的反向傳播求導RNN神經網路反向傳播求導
- 從前饋到反饋:解析迴圈神經網路(RNN)及其tricks神經網路RNN
- 迴圈神經網路神經網路
- TensorFlow系列專題(七):一文綜述RNN迴圈神經網路RNN神經網路
- 吳恩達《序列模型》課程筆記(1)– 迴圈神經網路(RNN)吳恩達模型筆記神經網路RNN
- 迴圈神經網路介紹神經網路
- pytorch--迴圈神經網路PyTorch神經網路
- 教你用神經網路求解高階數學方程!神經網路
- 第五週:迴圈神經網路神經網路
- torch神經網路--線性迴歸神經網路
- 深度學習技術實踐與圖神經網路新技術深度學習神經網路
- 深度學習小課堂:如何利用遞迴神經網路生成文字?深度學習遞迴神經網路
- TensorFlow系列專題(八):七步帶你實現RNN迴圈神經網路小示例RNN神經網路
- 精講深度學習RNN三大核心點,三分鐘掌握迴圈神經網路深度學習RNN神經網路
- 14 卷積神經網路(進階)卷積神經網路
- 動畫圖解迴圈神經網路動畫圖解神經網路
- 常見迴圈神經網路結構神經網路
- [譯]使用遞迴神經網路(LSTMs)對時序資料進行預測遞迴神經網路
- 再用RNN神經網路架構設計生成式語言模型RNN神經網路架構模型
- (二)神經網路入門之Logistic迴歸(分類問題)神經網路
- 迴圈神經網路之embedding,padding,模型構建與訓練神經網路padding模型
- YJango的迴圈神經網路——實現LSTMGo神經網路