1. 程式人生 > >用遞歸神經網絡簡要介紹序列預測模型

用遞歸神經網絡簡要介紹序列預測模型

數組 lstm 感知器 例如 創建 有效 變量 單個 單詞

作者: 傑森·布朗利於 2017 年 7月17日 在 長期短期記憶網絡中
序列預測是涉及使用歷史序列信息來預測序列中的下一個或多個值的問題。

序列可以是諸如句子中的字母之類的符號,也可以是諸如價格的時間序列中的實際值之類的符號。在時間序列預測的背景下,序列預測可能是最容易理解的,因為問題已經被普遍理解。

在這篇文章中,您將發現可用於構建自己的序列預測問題的標準序列預測模型。

閱讀這篇文章後,你會知道:

序列預測問題如何用遞歸神經網絡建模。
循環神經網絡使用的4種標準序列預測模型。
應用序列預測模型時,初學者所犯的兩個最常見的誤解。
讓我們開始吧。

教程概述
本教程分為4個部分; 他們是:

遞歸神經網絡序列預測
序列預測模型
來自Timesteps的基數不是特征
從業者的兩個常見誤解
遞歸神經網絡序列預測
回歸神經網絡,如長短期記憶(LSTM)網絡,是為序列預測問題而設計的。

事實上,在撰寫本文時,LSTM在具有挑戰性的序列預測問題(如神經機器翻譯(將英語翻譯成法語))中實現了最先進的結果。

LSTM通過學習將輸入序列值(X)映射到輸出序列值(y)的函數(f(...))來工作。

y(t) = f(X(t))
1
y(t) = f(X(t))
學習的映射函數是靜態的,可以被認為是一個獲取輸入變量並使用內部變量的程序。內部變量由網絡維護的內部狀態表示,並在輸入序列中的每個值上建立或累積。

... RNN將輸入向量與其狀態向量與固定(但已學習)函數組合以產生新的狀態向量。在編程術語中,這可以解釋為運行具有某些輸入和一些內部變量的固定程序。

  • Andrej Karpathy,回歸神經網絡的不合理有效性,2015年

可以使用不同數量的輸入或輸出來定義靜態映射函數,我們將在下一節中進行討論。

需要幫助LSTMs進行序列預測?
參加我的免費7天電子郵件課程,發現6種不同的LSTM架構(帶代碼)。

點擊註冊並獲得免費的PDF電子書版課程。

立即開始免費迷你課程!
序列預測模型
在本節中,將回顧序列預測的4個主要模型。

我們將使用以下術語:

X:輸入序列值可以由時間步長界定,例如X(1)。
u:隱藏狀態值可以由時間步長界定,例如u(1)。
y:輸出序列值可以由時間步長界定,例如y(1)。
一對一模式
一對一模型為每個輸入值生成一個輸出值。

一對一序列預測模型
一對一序列預測模型

第一步的內部狀態為零; 從那時起,內部狀態在前一時間步驟中累積。

隨時間變化的一對一序列預測模型
隨時間變化的一對一序列預測模型

在序列預測的情況下,該模型將針對作為輸入接收的每個觀察時間步長產生一個時間步長預測。

這對RNN來說用途很差,因為模型沒有機會學習輸入或輸出時間步長(例如BPTT)。如果您發現為序列預測實現此模型,您可能打算使用多對一模型。

一對多模型
一對多模型為一個輸入值生成多個輸出值。

一對多序列預測模型
一對多序列預測模型

當產生輸出序列中的每個值時,累積內部狀態。

該模型可用於圖像字幕,其中一個圖像被提供作為輸入並且一系列單詞被生成為輸出。

多對一模型
多對一模型在接收到多個輸入值後生成一個輸出值。

多對一序列預測模型
多對一序列預測模型

在產生最終輸出值之前,內部狀態與每個輸入值累加。

在時間序列的情況下,該模型將使用一系列最近的觀察來預測下一個時間步驟。該架構將代表經典的自回歸時間序列模型。

多對多模型
多對多模型在接收到多個輸入值後會產生多個輸出。

多對多序列預測模型
多對多序列預測模型

與多對一情況一樣,累積狀態直到創建第一個輸出,但在這種情況下輸出多個時間步長。

重要的是,輸入時間步數不必與輸出時間步數相匹配。考慮以不同速率運行的輸入和輸出時間步長。

在時間序列預測的情況下,該模型將使用一系列最近的觀測來進行多步預測。

從某種意義上說,它結合了多對一和一對多模型的功能。

來自Timesteps的基數(不是特色!)
常見的混淆點是將上述序列映射模型的示例與多個輸入和輸出特征混淆。

序列可以由單個值組成,每個時間步長一個。

或者,序列可以很容易地表示在時間步驟的多個觀察的向量。時間步長的向量中的每個項可以被認為是其自己的單獨時間序列。它不會影響上述模型的描述。

例如,將溫度和壓力的一個時間步長作為輸入並且預測溫度和壓力的一個時間步長的模型是一對一模型,而不是多對多模型。

多特征序列預測模型
多特征序列預測模型

該模型確實將兩個值作為輸入並預測兩個值,但是只有一個序列時間步驟表示輸入並預測為輸出。

上面定義的序列預測模型的基數是指時間步驟,而不是特征(例如,單變量或多變量序列)。

從業者的兩個常見誤解
在從業者實施遞歸神經網絡時,功能與時間步驟的混淆會導致兩個主要的誤解:

1.作為輸入特征的時間步
先前時間步的觀察結果被構造為模型的輸入特征。

這是輸入多層感知器使用的序列預測問題的經典的基於固定窗口的方法。相反,序列應該一次一步地進給。

這種混淆可能會讓您認為您實現了多對一或多對多序列預測模型,而實際上您只有一個時間步的單個向量輸入。

2.作為輸出特征的時間步長
多個未來時間步驟的預測被構造為模型的輸出特征。

這是多層感知器和其他機器學習算法使用的多步預測的經典固定窗口方法。相反,序列預測應該一次一步地生成。

這種混淆可能會導致您認為您已經實現了一對多或多對多序列預測模型,而實際上您只有一個時間步的單個向量輸出(例如seq2vec而不是seq2seq)。

註意:將時間步長作為序列預測問題中的特征構建是一種有效的策略,即使使用遞歸神經網絡也可以提高性能(嘗試一下!)。這裏的重點是理解常見的陷阱,而不是在構建自己的預測問題時欺騙自己。

進一步閱讀
如果您要深入了解,本節將提供有關該主題的更多資源。

回歸神經網絡的不合理有效性
序列預測簡介
概要
在本教程中,您發現了使用遞歸神經網絡進行序列預測的標準模型。

具體來說,你學到了:

序列預測問題如何用遞歸神經網絡建模。
循環神經網絡使用的4種標準序列預測模型。
應用序列預測模型時,初學者所犯的兩個最常見的誤解。

用遞歸神經網絡簡要介紹序列預測模型