簡體   English   中英

神經網絡在線培訓

[英]Neural network online training

我想實現一個簡單的前饋神經網絡,以近似函數y = f(x)= ax ^ 2 ,其中a是一些常數, x是輸入值。

NN具有一個輸入節點一個具有1-n個節點的隱藏層一個輸出節點 例如,我輸入值2.0-> NN產生4.0,然后再次輸入3.0-> NN產生9.0或接近9.0,依此類推。

如果我理解“在線訓練”,則將訓練數據一一饋入-表示我輸入了值2.0->用適當的梯度進行了100次迭代,然后又通過了值3.0,又進行了100次迭代。

但是,當我嘗試使用實驗性/學習型NN進行操作時-輸入值2.0->誤差變得很小->輸出非常接近4.0。

現在,如果我要預測輸入3.0-> NN會生成4.36左右的值而不是9.0。 因此,NN只學習最后的訓練值。

如何使用在線培訓來獲得一個在[-d,d]范圍內近似所需功能的神經網絡? 我想念什么?

我喜歡在線培訓的原因是,最終我想輸入一個時間序列-並將該序列映射到所需的功能。 這不是重點,但萬一有人想知道。

任何建議將不勝感激。

更多信息-我正在使用Sigmoid函數激活隱藏層,並使用線性函數激活輸出層。

我喜歡在線培訓的原因是,最終我想輸入一個時間序列-並將該序列映射到所需的功能。

遞歸神經網絡 (RNN)是對時間序列建模的最新技術。 這是因為它們可以接受任意長度的輸入,並且還可以使用內部狀態來建模序列隨時間變化的行為。

為時間序列訓練前饋神經網絡是一種舊方法,通常效果不佳。 它們需要固定大小的輸入,因此您必須選擇固定大小的滑動時間窗口,並且它們也不保留狀態,因此很難學習時變函數。

除了一些非常模糊的參考文獻之外,我幾乎沒有發現關於具有隨機梯度下降來模擬非平穩行為的前饋神經網絡的“在線訓練”。 除了讓您一次獲得一個數據流時進行實時訓練之外,我認為這沒有任何好處。 我認為它實際上不會幫助您建立時間相關行為的模型。

我可以在文獻中找到的有關神經網絡在線學習的大多數較舊的方法都使用神經網絡的混合方法以及其他一些有助於捕獲時間依賴性的方法。 同樣,這些都應該不如RNN,更不用說在實踐中更難實施了。

此外,我認為您沒有正確實施在線培訓。 它應該是最小批量大小為1的隨機梯度下降。因此,在每個訓練紀元的每個訓練示例上,您只能運行一次梯度下降的迭代。 由於在繼續進行下一個訓練示例之前要運行100次迭代,因此相對於單個示例而言,誤差梯度太低了,導致嚴重地過度擬合單個數據點。 這就是為什么您在下一個輸入中獲得較差結果的原因。 我認為這不是合理的培訓方法,也不認為它適用於時間序列。

您沒有提到激活是什么或丟失函數是什么,因此我無法評論激活是否適合該任務。

另外,我認為學習y=ax^2對於時間序列預測不是一個很好的類比。 這是一個靜態函數,始終為給定輸入提供相同的輸出,而不管輸入的索引或先前輸入的值如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM