執行Matlab腳本,讀取input(x),output(y)數據

命令窗口執行 ntstool


選擇 第一類時序問題(NARX),點擊 Next

選取對應的訓練樣本變量,time series format 選擇為 Matrix row(因為Matlab神經網絡訓練樣本默認為行向量,而我們准備的數據為列向量,需轉置),點擊 Next

默認設置的含義是,原始數據將會被隨機分為三組
(1) 70% 的數據將被用於人工神經網絡的訓練
(2) 15% 的數據將用來驗證網絡是否正在范化,並在此之前停止訓練
(3) 15% 的數據將用作外部驗證
保持默認, 點擊 Next

如圖所示,標准的NARX為雙層前饋型神經網絡,其中,隱含層傳遞函數為S形函數(Sigmoid,如圖所示),輸出層傳遞函數為線性函數。
隱含層神經元的默認數量設置為 10,默認延遲數為 2。由於本案例解決空氣質量預測問題,個人認為2天之前的數據對未來數據影響較小,故保持默認,點擊 Next


選擇訓練算法,然后點擊 Train。對於大多數問題,推薦使用 Levenberg-Marquardt (trainlm),不過,對於一些含噪小型問題,貝葉斯正則化 (trainbr) 雖然可能需要更長的時間,但會獲得更好的解。但是,對於大型問題,推薦使用量化共軛梯度 (trainscg),因為它使用的梯度計算比其他兩種算法使用的 Jacobian 矩陣計算更節省內存。由於樣本數據特性,此處選擇貝葉斯正則化(Bayesian Regularization)。

如圖所示,神經網絡訓練完畢,可通過 Plots 下的各個選項來評價網絡的性能
(1)Performance 使用折線圖來展示算法的收斂情況,評價指標:均方誤差(MSE)
(2)Error Histogram 使用直方圖來展示訓練/測試樣本的誤差分布情況,評價指標:絕對誤差(真值-預測值)
(3)Regression 使用散點圖+擬合線的方式展示訓練/測試樣本的相關性,評價指標:相關系數(R)
(4)Time-Series Response 使用折線圖展示訓練/測試樣本在時間序列上的真實分布情況,評價指標:絕對誤差(真值-預測值)
(5)Error Autocorrelation 使用柱形圖展示預測誤差在時間上是如何關聯的,評價指標:相關性
(6)Input-Error Cross-correlation 使用柱形圖展示誤差如何與輸入序列 x(t) 相關,評價指標:相關性
注: (5)對於完美的預測模型,自相關函數應該只有一個非零值,並且應在零滯后時出現。(這是均方誤差。)這表示預測誤差彼此完全不相關(白噪聲)。如果預測誤差中存在顯著相關性,則應該可以改進預測,這可以通過增加抽頭延遲線中的延遲數量來實現。(6) 對於完美的預測模型,所有相關性都應為零。如果輸入與誤差相關,則應該可以改進預測,這可以通過增加抽頭延遲線中的延遲數量來實現。

單擊Next以評估網絡

若不滿意網絡對原始數據或新數據的性能,在這一頁面,可以執行以下任一操作:
(1)重新訓練網絡。
(2)增加神經元的數量和/或延遲的數量。
(3)獲取更大的訓練數據集。
如果你對這次設計/訓練的模型滿意,點擊 Next

該頁面可用於生成該神經網絡的Matlab函數或 Simulink圖,若要進行下一步,單擊Next

可通過單擊 Simple Script 或 Advanced Script 創建 MATLAB 腳本,該腳本可重現之前的所有步驟。若要保存結果數據,單擊 Save Result
創建腳本/保存結果后,單擊 Finsh

【參考資料】