[英]Sequential Neural Network
我正在嘗試構建一個神經網絡作為生成模型,以預測一系列向量之后的下一個向量(每個向量是長度為n
的實數的分布)。
我的想法是采用k
先前的序列並將它們連接起來以具有k
× n
輸入向量。 為了訓練模型,我將序列中的下一個向量作為輸出。 當我在尋找非確定性輸出時,我將使用具有低梯度的sigmoid激活函數。
這個程序看起來合理嗎?
希望它確實如此,我嘗試使用nnet
和neuralnet
庫在R中實現它,但是我遇到的文檔和示例似乎輸入和輸出向量必須具有相同的長度。 在這兩個模塊中訓練不同長度的輸入/輸出向量的語法是什么?
我的輸入向量的示例是:
[,1]
[1,] 0
[2,] 0
[3,] 0.6
[4,] 0.4
[5,] 0
[6,] 0
[7,] 0.06666667
[8,] 0.6666667
[9,] 0
[10,] 0.2666667
[11,] 0
[12,] 0.4
[13,] 0
[14,] 0
[15,] 0.6
和輸出矢量:
[,1]
[1,] 0
[2,] 0
[3,] 0.8571429
[4,] 0
[5,] 0.1428571
NB上面的樣本有n=5
, k=3
,雖然我的實際數據集有n~200
。 在這兩種情況下,將各個向量標准化為1。
任何幫助深表感謝!
一般來說,這是非常簡單和天真的方法,相反不會產生良好的結果。 您正在嘗試執行從時間序列集到時間序列的回歸,將所有內容視為簡單屬性和簡單模型。 關於時間序列預測已有數千篇論文/研究,代表時間依賴性等。你在這里面臨着一種難以預測的問題,找到好的解決方案需要大量的工作,而且提出的模型很少有機會運作良好。
從你的文本我推斷,你實際上有一系列的時間序列,而對於“時間窗口” [tk,t-k+1,..,t-1]
你想要預測的值(時間序列) t
。 如果這是真的,則這是實際時間序列預測問題,其中每個屬性本身是時間序列,並且可以在此使用所有時間序列相關技術,例如遞歸神經網絡(如果您真的喜歡NN)或條件RBM(如果你真的想要一個非確定性的生成模型 - 因為它們近年來已成功應用於時間序列預測)。
現在很少有其他疑問:
當我在尋找非確定性輸出時,我將使用sigmoid激活函數
Sigmoid激活功能不是非確定性的 。 如果您正在尋找非確定性模型,您應該考慮一些像RBM這樣的架構,但正如@Ben Allison在評論中提到的那樣,傳統的神經網絡也可以通過一些簡單的修改以概率方式使用。
低梯度。
低梯度是什么意思? 你的激活函數有一個小斜率? 在簡單的訓練程序(如BP算法)的情況下,這將導致有問題的學習
[數據]
您的數據看起來像是對每個時間序列進行了標准化,因此它總和為1
,這是神經網絡中數據范數化的一種非常流行的方法(您更傾向於按列標准化數據,因此每個維度都是標准化的,而不是每個樣本)。
標題
您的問題和模型不是“順序”,並且不包括“變化的矢量長度”,尋找有關此類現象的論文不會引導您回答您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.