第三章 隱藏層神經元個數之決定
3.5 小波濾除冗餘權重
3.5.2 小波濾除冗餘權重方法
1.參考圖 3.4,首先取出現地量測水文資料,包括地下水水位與水文量,並且將 之正規化以供類神經網路訓練之用;正規化之時,必須將輸入與輸出向量視為 同一向量一起正規化,而非個別正規化,如此方能獲致較佳之訓練結果。
2.給定一最大之隱藏神經元個數,以 MATLAB 所提供之類神經網路套件模式進 行模擬,採用最普通最平常的倒傳遞網路,其架構與設定如下所示:
(1)輸入層一層,隱藏層一層,輸出層一層;
(2)設定網路訓練方法;
(3)設定學習速率與動量係數;
(4)設定訓練次數與訓練停止條件(MSE 達要求精度); (5)設定初始權重與初始偏權值。
3.取出事先準備好的資料使用上述的類神經網路開始訓練,紀錄訓練停止後的誤 差值,還有輸入層與輸出層的權重值。
4.將權重值放入小波模式裡過濾,觀察是否有隱藏神經元被濾除;若有,則減少 神經元個數,回到步驟 3.重新訓練模式;若無,則以此神經元個數為最佳之隱 藏神經元個數。
5.改變訓練資料筆數,重覆步驟 3.與步驟 4.,以觀察不同訓練資料筆數與最佳隱 藏神經元個數之關係。
以上即為本論文方法論之概述與流程;在下一個章節裡,除了會更加詳細地 解說實驗流程之外,亦會交代模式中各個參數的設定值與為何選擇這個參數值,
同時也會解說何謂「以小波濾除冗餘權重」之作法;最後再針對本論的實驗結果 做一綜合性的比較與探討。
圖 3.4 小波濾除冗餘權重流程圖 是
否 類神經網路訓練
是否有權重 盡數被濾除之
隱藏神經元 現地量測水文資料
權重放入小波模式裡過濾
減少神經元個數
結果比較與討論 最佳隱藏神經元個數 決定隱藏神經元數(Max)
第四章 實驗與結果討論
4.1 前言
在前一章節之中已經詳細交代本論文之方法論,本章將更進一步詳述實驗流 程與步驟,以及各參數的詳細設定,最後將實驗所得的結果進行討論與比較。
4.2 實驗流程與詳細步驟
本實驗主要流程在於先讀入現地量測之水文資料以供類神經網路訓練,接著 分別使用 AIC 指標與小波分析,決定最佳的隱藏神經元個數,最後針對兩種方 法之結果予以比較與討論;然現地資料量測不易且有所缺漏,再者本研究之方法 論尚在雛形階段,故水文資料暫以 MODFLOW 產生者代替,共產生 360 筆資料,
每筆資料包含 8 個輸入向量與 4 個輸出輸出向量,如下圖 4.1 所示:
圖 4.1 輸入類神經網路訓練之資料架構
唯因為當初論文之重點著重於訓練類神經網路產生權重以供分析,故輸入 MODFLOW 裡的詳細參數值一時疏忽未加以保留,皆已佚失;目前唯一可知者,
觀測水位資料單位為「公尺/旬」,淨補注量單位為「千噸/旬」;因此本研究以目 前所做之數值實驗資料也無法再深入探討不同 Time Step 對本論文方法之影響,
此部份或許可留待後人研究,本論文將不再補上。
4.2.1
均方差與 AIC 計算步驟1.首先以 MODFLOW 產生 360 筆資料,並且將之正規化,以供類神經網路訓練 之用,每筆資料包含 8 個輸入向量與 4 個輸出輸出向量。
2.以 MATLAB 程式設計類神經網路,使用最普通最平常的倒傳遞網路,各參數 的設定如下所示:
(1)隱藏層一層,活化函數使用 tansig,為雙彎曲正切函數;
(2)輸出層活化函數使用 purelin,為線性函數;
(3)訓練法使用 trainrp,稱為 Resilient Backpropagation 學習法;
(4)學習速率設為 0.001,動量係數為 0.9;
(5)訓練次數為 50000 次,訓練目標精度 MSE=0.00001(如果 MSE 未達 0.00001,
而訓練次數先滿 50000,訓練仍然會停止)
(6)初始權重與初始偏權值皆為 random。
3.取出事先準備好的資料的前 60 筆,使用上述的類神經網路開始訓練,訓練過 程由隱藏神經元個數為 1 個(極少)開始訓練,相關過程描述如下:
(1)因為倒傳遞類神經網路之結果為多值解,隨機的初始權重亦可能影響最後 停止誤差之大小,為了能夠得到各個不同隱藏層神經元個數下的最佳停止 誤差值與最佳權重值,所以每個神經元個數之訓練皆循環 5 次,取 MSE 最小的該次進行分析。
(2)參考表 4.1,此為訓練資料筆數 60 筆的情形下,隱藏神經元個數 1~7 的五 次的停止誤差值;表左方為未排序,表右方為排序後的結果,由表可知在
1 個隱藏神經元的情形下,停止誤差值取第五次,2 個隱藏神經元的情形 下,停止誤差值取第一次,餘類推。
4.逐一增加隱藏神經元個數,依前節所述之 AIC 公式,設定 C 值為 2,計算出對 應之 AIC 值,其過程與結果如表 4.2 所示;接著以停止誤差值(MSE)為 Y 軸,隱藏神經元個數為 X 軸作圖,得到 60 筆訓練資料下的隱藏神經元個數與 停止誤差值之關係圖,如圖 4.2 所示;再以 AIC 為 Y 軸,隱藏神經元個數為 X 軸作另張圖,得到 60 筆訓練資料下的隱藏神經元個數與 AIC 之關係圖,如圖 4.3 所示。相關細節說明如下:
(1)在本研究之範例中,C 值大小對於 AIC 之影響只在整體 AIC 值之大小或曲 線「翹起」之幅度,對於最重要的最小值之落點其實並無實際影響,針對 此點於 4.2 節會有所討論。
(2)在本研究之範例中,
d q
(請參考前章之(3.1)式)之值僅取類神經網路之 連結權重個數加總,並未將偏權值之個數併入計算;原因在於本論文分析 之重點為各個連結權重,而且比起網路的連結權重個數,本研究之範例中 的偏權值個數相對較少,經過實際計算證明並不會對 AIC 指標之應用結果 產生影響。5.重覆步驟 3.與步驟 4.,逐一增加隱藏神經元個數,一般來說直到 AIC 值不再減 小反而增加時即可停止,但因為本研究範例中類神經最後之停止誤差值在隱藏 神經元到達 4 個之後,雖然繼續增加隱藏神經元個數,均方差之精度皆收斂在 相同精度之下不再有大變動,唯受到初始權重隨機之影響,訓練停止後之均方 差值有略為大小起伏之現象,故本研究最後決定將隱藏神經元個數一直增加到 20 個,然後取 AIC 最小值對應之神經元個數為最佳隱藏神經元個數。
6.依次增加訓練資料筆數為 120、180、240、300、360 筆,重覆步驟 3.~5.,便 可得到在各個訓練資料筆數下的隱藏神經元個數與 AIC 值列表(如表 4.3~表 4.7 所示),隱藏神經元個數與停止誤差值之關係圖,以及隱藏神經元個數與 AIC 之關係圖,分別如圖 4.4~圖 4.13 所示。
表 4.1 停止誤差值排序範例
神經元數 次數 TRV_60 神經元數 次數 TRV_60
1 0.011628114 5 0.011627805 2 0.011627895 2 0.011627895 3 0.011628354 1 0.011628114 4 0.011628376 3 0.011628354 1
5 0.011627805
1
4 0.011628376 1 0.001195068 1 0.001195068 2 0.001199638 4 0.001197881 3 0.001199578 3 0.001199578 4 0.001197881 2 0.001199638 2
5 0.001200234
2
5 0.001200234 1 0.000252425 1 0.000252425 2 0.000257273 4 0.000253349 3 0.000258979 5 0.000254288 4 0.000253349 2 0.000257273 3
5 0.000254288
3
3 0.000258979 1 4.36859E-06 1 4.36859E-06 2 5.34071E-06 2 5.34071E-06 3 1.01645E-05 5 6.73183E-06 4 1.96415E-05 3 1.01645E-05 4
5 6.73183E-06
4
4 1.96415E-05 1 8.7342E-06 4 3.46678E-06
2 9.6863E-06 1 8.7342E-06
3 1.12897E-05 2 9.6863E-06 4 3.46678E-06 3 1.12897E-05 5
5 1.89002E-05
5
5 1.89002E-05 1 1.06276E-05 4 6.09223E-06 2 7.19445E-06 2 7.19445E-06 3 7.47181E-06 5 7.30268E-06 4 6.09223E-06 3 7.47181E-06 6
5 7.30268E-06
6
1 1.06276E-05 1 6.34611E-06 4 4.1197E-06 2 5.98317E-06 2 5.98317E-06 3 6.90095E-06 1 6.34611E-06 4 4.1197E-06 3 6.90095E-06 7
5 9.51192E-06
7
5 9.51192E-06
表 4.2 60 筆訓練資料下之 AIC 值與計算過程
TRV_60 V lnV d C*d/N AIC
1 0.011627805 -4.45435604 12 0.4 -4.05435604
2 0.001195068 -6.729552141 24 0.8 -5.929552141
3 0.000252425 -8.284395512 36 1.2 -7.084395512
4 4.36859E-06 -12.34107026 48 1.6 -10.74107026
5 3.46678E-06 -12.57228435 60 2 -10.57228435
6 6.09223E-06 -12.00849637 72 2.4 -9.608496369
7 4.1197E-06 -12.39973021 84 2.8 -9.599730213
8 2.2271E-06 -13.01481027 96 3.2 -9.814810267
9 2.36683E-06 -12.95395905 108 3.6 -9.353959051
10 2.08907E-06 -13.07879157 120 4 -9.078791567
11 1.56121E-06 -13.3700494 132 4.4 -8.970049396
12 2.96589E-06 -12.7283334 144 4.8 -7.928333402
13 2.19161E-06 -13.03087412 156 5.2 -7.830874124
14 2.27997E-06 -12.99134827 168 5.6 -7.391348273
15 2.02324E-06 -13.11081037 180 6 -7.110810371
16 2.29001E-06 -12.98695437 192 6.4 -6.586954374
17 2.6806E-06 -12.82946991 204 6.8 -6.029469908
18 2.4191E-06 -12.93211499 216 7.2 -5.732114988
19 2.55458E-06 -12.87762273 228 7.6 -5.277622731
20 2.83614E-06 -12.77306659 240 8 -4.773066585
表 4.3 120 筆訓練資料下之 AIC 值與計算過程
TRV_120 V lnV d C*d/N AIC
1 0.100242508 -2.300162953 12 0.2 -2.100162953
2 0.006798928 -4.990990319 24 0.4 -4.590990319
3 0.001021974 -6.886019404 36 0.6 -6.286019404
4 5.66998E-06 -12.08032497 48 0.8 -11.28032497
5 6.46369E-06 -11.9493102 60 1 -10.9493102
6 7.86531E-06 -11.75304861 72 1.2 -10.55304861
7 5.07347E-06 -12.19148556 84 1.4 -10.79148556
8 7.09906E-06 -11.85554818 96 1.6 -10.25554818
9 7.03298E-06 -11.86490004 108 1.8 -10.06490004
10 6.42782E-06 -11.95487511 120 2 -9.954875113
11 4.60423E-06 -12.28853511 132 2.2 -10.08853511
12 6.17586E-06 -11.99486241 144 2.4 -9.594862414
13 0.000005725 -12.07066801 156 2.6 -9.470668009
14 3.90131E-06 -12.45419816 168 2.8 -9.654198164
15 3.95314E-06 -12.44100036 180 3 -9.441000358
16 3.59152E-06 -12.53693505 192 3.2 -9.336935047
17 3.96462E-06 -12.43810055 204 3.4 -9.038100546
18 4.06404E-06 -12.41333301 216 3.6 -8.813333005
19 4.02737E-06 -12.422397 228 3.8 -8.622397001
20 4.20478E-06 -12.37928858 240 4 -8.379288585
表 4.4 180 筆訓練資料下之 AIC 值與計算過程
TRV_180 V lnV d C*d/N AIC
1 0.092338206 -2.382297291 12 0.133333 -2.248963958
2 0.04879884 -3.020048743 24 0.266667 -2.753382076
3 0.000455638 -7.693812582 36 0.4 -7.293812582
4 1.69465E-05 -10.98544865 48 0.533333 -10.45211531 5 1.07396E-05 -11.44157085 60 0.666667 -10.77490418
6 9.31557E-06 -11.58382336 72 0.8 -10.78382336
7 6.0255E-06 -12.01951009 84 0.933333 -11.08617676
8 6.4458E-06 -11.9520818 96 1.066667 -10.88541514
9 8.31589E-06 -11.69734242 108 1.2 -10.49734242
10 4.71892E-06 -12.2639306 120 1.333333 -10.93059726 11 0.000005154 -12.17573745 132 1.466667 -10.70907078
12 7.11494E-06 -11.85331376 144 1.6 -10.25331376
13 6.66548E-06 -11.91856859 156 1.733333 -10.18523526 14 4.60375E-06 -12.28863937 168 1.866667 -10.4219727
15 5.29486E-06 -12.14877402 180 2 -10.14877402
16 7.05672E-06 -11.8615302 192 2.133333 -9.72819687 17 5.37798E-06 -12.13319772 204 2.266667 -9.866531052
18 5.73286E-06 -12.06929602 216 2.4 -9.669296024
19 4.49037E-06 -12.31357545 228 2.533333 -9.780242121 20 5.68785E-06 -12.07717824 240 2.666667 -9.41051157
表 4.5 240 筆訓練資料下之 AIC 值與計算過程
TRV_240 V lnV d C*d/N AIC
1 0.099851398 -2.304072219 12 0.1 -2.204072219
2 0.066715032 -2.707324987 24 0.2 -2.507324987
3 0.000393564 -7.840267801 36 0.3 -7.540267801
4 1.93873E-05 -10.85089441 48 0.4 -10.45089441
5 1.03042E-05 -11.48295898 60 0.5 -10.98295898
6 9.95213E-06 -11.51772396 72 0.6 -10.91772396
7 8.50624E-06 -11.67471055 84 0.7 -10.97471055
8 6.47332E-06 -11.94782144 96 0.8 -11.14782144
9 6.28535E-06 -11.97728903 108 0.9 -11.07728903
10 8.52652E-06 -11.67232925 120 1 -10.67232925
11 5.13061E-06 -12.180286 132 1.1 -11.080286
12 7.05747E-06 -11.86142393 144 1.2 -10.66142393
13 7.21847E-06 -11.83886754 156 1.3 -10.53886754
14 4.92604E-06 -12.22097514 168 1.4 -10.82097514
15 6.01028E-06 -12.02203922 180 1.5 -10.52203922
16 4.89072E-06 -12.22817103 192 1.6 -10.62817103
17 5.52381E-06 -12.10644272 204 1.7 -10.40644272
18 3.85318E-06 -12.46661178 216 1.8 -10.66661178
19 4.53606E-06 -12.30345176 228 1.9 -10.40345176
20 4.30051E-06 -12.35677694 240 2 -10.35677694
表 4.6 300 筆訓練資料下之 AIC 值與計算過程
TRV_300 V lnV d C*d/N AIC
1 0.12771641 -2.057943017 12 0.08 -1.977943017
2 0.077824557 -2.553298256 24 0.16 -2.393298256
3 0.000413393 -7.791110707 36 0.24 -7.551110707
4 1.29785E-05 -11.25222027 48 0.32 -10.93222027
5 1.17051E-05 -11.35548421 60 0.4 -10.95548421
6 1.18831E-05 -11.34039081 72 0.48 -10.86039081
7 7.20712E-06 -11.84044113 84 0.56 -11.28044113
8 7.82288E-06 -11.75845778 96 0.64 -11.11845778
9 8.2438E-06 -11.70604916 108 0.72 -10.98604916
10 3.43739E-06 -12.5807981 120 0.8 -11.7807981
11 6.44453E-06 -11.95227885 132 0.88 -11.07227885
12 5.06294E-06 -12.19356322 144 0.96 -11.23356322
13 7.19227E-06 -11.84250372 156 1.04 -10.80250372
14 5.26042E-06 -12.15529969 168 1.12 -11.03529969
15 4.41021E-06 -12.33158825 180 1.2 -11.13158825
16 4.92482E-06 -12.22122283 192 1.28 -10.94122283
17 5.17839E-06 -12.17101636 204 1.36 -10.81101636
18 4.12355E-06 -12.39879612 216 1.44 -10.95879612
19 4.84276E-06 -12.23802575 228 1.52 -10.71802575
20 3.57843E-06 -12.5405864 240 1.6 -10.9405864
表 4.7 360 筆訓練資料下之 AIC 值與計算過程
TRV_360 V lnV d C*d/N AIC
1 0.180719095 -1.710811414 12 0.066667 -1.644144747 2 0.127823796 -2.057102556 24 0.133333 -1.923769222
3 0.006005369 -5.11510145 36 0.2 -4.91510145
4 1.83271E-05 -10.90713026 48 0.266667 -10.6404636
5 2.04411E-05 -10.79796347 60 0.333333 -10.46463013
6 1.76293E-05 -10.94594827 72 0.4 -10.54594827
7 1.3199E-05 -11.23536797 84 0.466667 -10.76870131
8 1.05709E-05 -11.45740562 96 0.533333 -10.92407228
9 1.03564E-05 -11.47790684 108 0.6 -10.87790684
10 8.30812E-06 -11.69827721 120 0.666667 -11.03161054 11 7.85882E-06 -11.75387409 132 0.733333 -11.02054076
12 8.22462E-06 -11.70837846 144 0.8 -10.90837846
13 7.74326E-06 -11.76868777 156 0.866667 -10.9020211 14 7.2049E-06 -11.84074921 168 0.933333 -10.90741587
15 9.71813E-06 -11.54151734 180 1 -10.54151734
16 8.64276E-06 -11.65878858 192 1.066667 -10.59212192 17 9.15174E-06 -11.60156653 204 1.133333 -10.4682332
18 8.07175E-06 -11.72714025 216 1.2 -10.52714025
19 7.86292E-06 -11.75335252 228 1.266667 -10.48668585 20 6.71631E-06 -11.91097166 240 1.333333 -10.57763833
0
AIC AIC_TRV60
圖 4.3 60 筆訓練資料下隱藏神經元個數與 AIC 之關係圖
-12 -10 -8 -6 -4 -2 0
0 5 10 15 20 25
隱藏神經元個數
AIC AIC_TRV120
圖 4.5 120 筆訓練資料下隱藏神經元個數與 AIC 之關係圖
0 0.02 0.04 0.06 0.08 0.1
0 5 10 15 20 25
隱藏神經元個數 均
方 差
V_TRV180
圖 4.6 180 筆訓練資料下隱藏神經元個數與停止誤差值之關係圖
-12 -10 -8 -6 -4 -2 0
0 5 10 15 20 25
隱藏神經元個數
AIC AIC_TRV180
圖 4.7 180 筆訓練資料下隱藏神經元個數與 AIC 之關係圖
0
AIC AIC_TRV240
圖 4.9 240 筆訓練資料下隱藏神經元個數與 AIC 之關係圖
-8 -6 -4 -2 0 2 4 6
0 5 10 15 20 25
隱藏神經元個數
AIC AIC_TRV300
圖 4.11 300 筆訓練資料下隱藏神經元個數與 AIC 之關係圖
0 0.05 0.1 0.15 0.2
0 5 10 15 20 25
隱藏神經元個數 均
方 差
V_TRV360
圖 4.12 360 筆訓練資料下隱藏神經元個數與停止誤差值之關係圖
-6 -4 -2 0 2 4 6
0 5 10 15 20 25
隱藏神經元個數
AIC AIC_TRV360
圖 4.13 360 筆訓練資料下隱藏神經元個數與 AIC 之關係圖
4.2.2
小波濾除冗餘權重步驟1.首先以 MODFLOW 產生 360 筆資料,並且將之正規化,以供類神經網路訓練 之用,每筆資料包含 8 個輸入向量與 4 個輸出輸出向量。
2.以 MATLAB 程式設計類神經網路,使用最普通最平常的倒傳遞網路,各參數 的設定如下所示:
(1)隱藏層一層,活化函數使用 tansig,為雙彎曲正切函數;
(2)輸出層活化函數使用 purelin,為線性函數;
(3)訓練法使用 trainrp,稱為 Resilient Backpropagation 學習法;
(4)學習速率設為 0.001,動量係數為 0.9;
(5)訓練次數為 50000 次,訓練目標精度 MSE=0.00001;
(6)初始權重與初始偏權值皆為 random。
3.取出事先準備好的資料的前 120 筆,使用上述的類神經網路開始訓練,隱藏神 經元個數設為 20 個(極大)開始訓練;因為倒傳遞類神經網路之結果為多值 解,隨機的初始權重亦可能影響最後停止誤差之大小,為了能夠得到各個不同 隱藏層神經元個數下的最佳停止誤差值與最佳權重值,所以每個神經元個數之 訓練皆循環 5 次,取停止誤差值最小的該次權重為最佳權重進行小波分析。
4.使用 MATLAB 程式套裝小波程式進行分析,使用 dp1(離散小波轉換),小波 函數使用 db3(如圖 4.14 所示),相關細節說明如後:
(1)欲將權重輸入小波裡過濾必須先將之排序,本論文採取輸入層權重在前,
輸出層權重在後的排法,先將所有的輸入層權重排完,再排輸出層權重,
共計有四種排法(參考圖 4.15~圖 4.18);因為以小波過濾權重以決定隱藏 神經元個數之作法本研究實屬先例,故本論文僅先取第二種(如圖 4.16 所 示)嘗試研究。
(2)在眾多的小波裡選用 db3 之原因在於其圖形有個非常明顯的突起,因此當其 在待分析之序列上平移之時,經過摺積之計算將會使得離零值越多之值越
大,凸顯訊號中之特徵值,抑制過小之雜訊;亦即不論正負,取絕對值大 者保留,利用此一性質刪去類神經網路裡權重值過小之連結。唯要注意的 是雖然圖形非常相像,但 db3 是不對稱的,而墨西哥草帽函數是對稱的,
兩者並不相同,本論文選用的是 MATLAB 套裝程式的 db3。
(3)本研究在訓練類神經網路時,初始權重皆為-1~1 之間的 Random 值,故推
(3)本研究在訓練類神經網路時,初始權重皆為-1~1 之間的 Random 值,故推