[問題]nntool執行BPN解預測運算

看板MATLAB作者 (new life)時間12年前 (2012/05/15 00:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我要用Matbla裡的nntool建構一個BPN network求解預測問題 遇到一些問題,請各位先進指導 >求解問題說明 一個製程品質的預測問題,希望由輸入項8個變數預測輸出項3項變數,求解預測值。 >事前自學的參考資料 1.ANN&BPN 手上有好幾本跟找了一些網路上的論文資料看,主要是看葉怡誠(儒林)跟張斐章(滄海)這兩本。 2.Matblab主要是參考羅強華(高立圖書)這本 >不懂要發問的問題 Q1:在念ANN跟BPN的時後,原先沒有使用動量的情形下有學習速率這個參數。但是nntool裡我找不到有設定學習速率的地方。 Q2:網路訓練完以後,要再做測試。用測試後誤差最小的網路來做預測網路。誤差會用MSE跟MPE分別計算。但是調整不同網路參數後的測試結果並不會呈現出來。看起來是要自行依Test的誤差值去計算?該怎去得到MSE跟MPE? Q2:執行ANN的目地,主要是要做預測。我有兩組指定的參數組合,要用測試後最佳的網路去做預測,如何得到預測值? 想到的方法是在Q2的步驟裡做完測試後,再做一次Testing,但是輸入資料改成指定的參數組合,但不輸入Testing Target(因為未知),但是感覺邏輯有誤的是,這樣執行還是可以得到誤差值,但Targets既然未知,也就沒法加上誤差值得到model的預測值。 以下是我執行BPN的相關設定,感謝各位前輩協助! >MATLAB版本 2011b >資料 Training 48筆資料 (輸入資料格式8*48,輸出資料格式3*48) Testing 24筆資料 (輸入資料格式8*48,輸出資料格式3*24) >做法 1.先在Excel裡把資料做正規化,然後用轉置的方式存在excel後,貼到 MATLAB裡定義四個變數 Training_Input:訓練網路時的輸入資料 Training_Target:訓練網路時的輸出資料目標(實驗的實際值做為訓練目標) Testing_Input:網路測試時的輸入資料 Testing_Target:網路測試時的輸出資料 2.執行nntool 用import把上個步驟裡的四個變數分別定義到input/target資料 3.Create Network,設定如下 Name:network1 Network Type:free-forward backprop Input data:由自定義變數Training_Input輸入 Target data:由自定義變數Training_Target輸入 Training function:TRAINLM (內定) Adaption learning function:LEARNGDM(內定) Performance function:MSE(內定) Number of layer:2 (一層隱藏層+一層輸出層) Properties for :Layer1(隱藏層設定) Number of neuron:6 (欲解的預測問題是8個輸入變數,3個輸出變數,所以用(8+3)/2=5.5取6) Transfer Function:LOGSIG Properties for :Layer2(輸出層設定) Transfer Function:LOGSIG 4.接著點選network1用open打開設定BPN設定細項 Train'Training Data Inputs:點選自定義變數Training_Input Targets:點選自定義變數Training_Target Train'Training Parameters維持原設定, mu=0.001 (內定) Mu_dec=0.1(內定) Mu_inc=10(內定) 執行訓練,得到結果 Epoch=15 iterations Performance =0.224 Gradient = 0.0293 Mu=0.001 Validation Checs= 6 Simulate'Simulation Data Inputs:點選自定義變數Testing_Input Supply Targets勾選後,Targets點選自定義變數Testing_TARGETS 右邊Outputs變更輸出檔名為TE,按右下Simulate Network執行網路測試 -- 年輕人的感受特別強,他們就像一棵小樹 身上若被刻一刀,刀痕會隨著樹的成長而更加深刻. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.240.248
文章代碼(AID): #1FiI_zEF (MATLAB)