第二章 類神經網路介紹
2.4 倒傳遞學習法神經網路
倒傳遞學習法的神經網路簡稱倒傳遞網路(Back-Propagation Network,BPN),其 演算法有二個階段,即順向傳送與逆向傳送。
順向傳送是訊號從輸入層傳入,一直向下一層傳送,經過活化函數轉成神經元輸出 值,由此類推,直到最後一層的輸出層,如Fig. 2.8 所示[14-17]。
X1
X2
Xn
netj f netj netk f
netk
j k
1 1
W1j
W2j
Wnj
Hj Wjk
Yk
Fig. 2.8 順向傳送
i ij j
j X W
net (2.7)
jj f net
H (2.8)
j
k jk j
k H W
net (2.9)
k
k f net
Y (2.10)
逆向傳送則是誤差訊號由輸出層向其前一層回送,如Fig. 2.9 所示,其目的在計算 各層神經元的誤差以求得權值的更新量。
Fig. 2.9 逆向傳送(虛線所示)
2.5 倒傳遞學習法則
步驟4:
定義:誤差函數(Cost Function)
E:誤差函數,又稱均方誤差(Mean Square Error, MSE)。Tk:輸出層的期望值。 了使誤差函數到達最小值,可用最陡坡下降法(Gradient Steepest Descent Method)使 誤差函數最小化,也就是每輸入一個訓練輸入變數值,網路就調整權值,調整權值的大 小與誤差函數對權值的偏微分成正比:
W
為使誤差函數(Cost Function)最小化,則隱藏層到輸出層權值的修正量正比於負的 誤差函數對權值之偏微分,如下所有示式:
net :第 k 個輸出層的淨值。 k
步驟9:
k k
(2)
2.6 演算法摘要
步驟1. 設定網路神經元個數,層數與權值的初始值。
步驟2. 設定輸入變數Xi,與期望輸出值T。
步驟 3. 計算輸入到隱藏層神經單元的淨值及輸出值:
i i ij
j W X
n
Hj f(nj)
步驟4. 計算輸出層神經單元的淨值與輸出值:
j
j jk
k W H
n
Yk f(nk)
步驟5. 計算輸出層的誤差值:
k (Tk Yk)Yk(1Yk) 步驟6. 計算隱藏層的誤差值:
k
j j
jk k
j W H (1 H )
步驟7. 計算輸出層與隱藏層的新權值:
Wjk Wjk kHj Wij WijjXi
步驟8. 重複 2~7 的步驟,直到網路收斂。
第三章 H 型與 MH 型類神經網路
3.1 S 形與 MH 型倒傳遞類神經網路的缺點
S 型倒傳遞類神經網路為目前最普遍的類神經網路,但其仍有許多的缺點,例如;易 陷入局部最佳化,學習速率太慢。為使本研究更為廣泛與精確,H 型神經網路與 MH 型 神經網路同時被探討應用。
3.2 H 型類神經網路
H 型神經網路學習法則摘要如下[12-17]。
步驟1. 設定學習速率η,權值W ,ij W 的初始值,其中jo W 為輸入層到隱藏層的權值,ij
W 為隱藏層到輸出層的權值。 jo
步驟2. 將輸入值X ,期望值i d ,帶入網路中。 o 步驟 3. 計算各層神經元的淨值與輸出值。
隱藏層的淨值 n j ) ( )
(k 0W X k
n ij i
N
j i
in
隱藏層的輸出值h j
) ( ) (
) ( )
(
)
( n k n k
k n k
n
j j j
j j
e e
e k e
h
輸出層淨值 no,輸出值 yo
)
步驟3. 計算各層神經元的淨值與輸出值
Δw (ij k) = η.e (hj k).x (i k)
第四章 模擬實驗與結果
4.1 模擬資料
本研究模擬實驗使用資料為加拿大安大略省電力尖峰負載資料,如 Table 4.1 章所
示,與電力總負載資料,如Table 4.2 所示, 資料日期從 2003 年 1 月 1 日到 2008 年 1 月 22 日,分別稱為第 1 年到第 5 年資料,第 5 年的資料包括 2008 年的資料總共 1842
筆資料,每一筆資料有14 個欄位,分別存入 13 不同種資料,其中各個欄,位代表意義如
Table 4.3 所示。實驗模擬所採用之誤差定義為絕對值百分比平均誤差(Mean Absolute Percentage Error ),簡稱為 MAPE,其數學定義為
MAPE 100%
) (
) ( ) (
1
d k
k y k d
n o
o
o (4.1)
其中
do(k):第 k 筆資料期望值 yo(k):第 k 筆資料計算值
n :計算筆數
為了使電力負載資料的值能在激發函數的輸出範圍之內,我們使用資料壓縮,其公 式如下所示:
假 設 未 壓 縮 的 原 值 在 yold_max yold_min 之 範 圍 內 , 壓 縮 的 值 在
min max _
_ new
new
x
x
之範圍內,未壓縮之值為y
old,則其對應壓縮值 newx
為min
new new old
new new old
Table 4.2 總負載資料表
395523 473858 481525 449527 440839 476665 466137 419916
. . .
477143 476462 485224 456053 448509 444037 435821 410617
.
第9 欄 前7 天最高溫度
第10 欄 前1 天負載
第11 欄 前2 天負載
第12 欄 前7 天負載
第13 欄 當天負載
4.2 程式設計與模擬實驗方式
4.2.1 類神經網路模式
本研究所採用神經網路的架構為12-12-12-1,如 Fig. 4.1 所示。其中 S 型轉換函數,
H 型轉換函數與 MH 型轉換函數分別被探討模擬。
12 Neuron NN
12 Neuron NN
12 Neuron NN
1 Neuron
NN Output
Input
輸入層 隱藏層 1 隱藏層 2 輸出層 Fig. 4.1 類神經網路架構圖
4.2.2 模擬實驗方式有下列 3 種
(1) 第 1,2,3 年的資料作訓練,第 4 年的資料作測試,此為第 1 種測試方式。
(2) 第 1,2,3,4 年的資料作訓練,第 5 年的資料作測試此為第 2 種測試方式。
(3) 第 2,3,4 年的資料作訓練,第 5 年的資料作測試此為第 3 種測試方式。
4.2.3 模擬程式流程 模擬程式流程說明如下:
步驟1. 把電力負載資料檔載入,若用 S 型激發函數,則壓縮成在 0.1~0.9 之間。
步驟2. 設定神經元個數,層數與權值的初始值,輸入訓練資料,並且用類神經演
算法計算訓練時的誤差,在計算電力負載輸出值時,要解壓縮回復到原範 圍之值。
步驟3. 直到訓練某週期次數,就可作測試資料。
步驟4. 輸入測試資料並且利用類神經演算法,計算測試資料的輸出值,及其測試
誤差。
步驟5. 重複(2)~(4)步驟,直到測試的誤差到達收斂為止。
步驟6. 再顯示各種激發函數與不同學習速率電力負載預測誤差最小值與
訓練次數的誤差表以及訓練與測試對照的誤差圖 4.3 尖峰負載預測
4.3.1 尖峰負載預測用 S 型函數模擬結果
用第1,2,3 年資料作訓練,第 4 年資料作測試,其誤差值如 Table 4.4 所示。誤差
Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.34(800) 0.1 2.19(29900) 0.03 2.35(840) 0.3 2.03(15800) 0.05 2.34(730) 0.5 2.11(8500) 0.07 2.31(900) 0.7 1.97(7000) 0.09 2.32(780) 0.9 1.99(5000)
Fig. 4.3 尖峰負載預測誤差圖 1 (S 型函數第 1 種測試方式)
用第1,2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.5所示。誤差圖 如Fig. 4.4所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.5 尖峰負載預測誤差表 2 (S 型函數第 2 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.81(1190) 0.1 2.24(24500) 0.03 2.65(1490) 0.3 2.23(8200)
0.05 2.37(2600) 0.5 2.32(4000) 0.07 2.29(2910) 0.7 2.40(3910) 0.09 2.23(3670) 0.9 2.28(4000)
Fig. 4.4 尖峰負載預測誤差圖 2 (S 型函數第 2 種測試方式)
用第2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.6所示。誤差圖如Fig.
4.5所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.6 尖峰負載預測誤差表 3 (S 型函數第 3 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.68(3980) 0.1 2.22(23500) 0.03 2.38(3960) 0.3 2.25(12200)
0.07 2.30(3980) 0.7 2.32(5500) 0.09 2.39(3930) 0.9 2.32(3000)
Fig. 4.5 尖峰負載預測誤差圖 3 (S 型函數第 3 種測試方式) .3.2 尖峰負載預測用 H 型函數模擬結果
用第1,2,3年資料作訓練,第4年資料作測試,其誤差值如Table 4.7所示。誤差圖如Fig.
4.6所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.7 尖峰負載預測誤差表4 (H型函數第1種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.38(290) 0.1 2.28(380) 0.03 2.33(70) 0.3 2.37(450)
0.05 2.32(50) 0.5 2.78(60) 0.07 2.32(90) 0.7 3.13(300) 0.09 2.31(340) 0.9 3.75(140)
Fig. 4.6 尖峰負載預測誤差圖 4 (H 型函數第 1 種測試方式)
用第1,2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.8所示。誤差圖 如Fig. 4.7所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.8 尖峰負載預測誤差表 5 (H 型函數第 2 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.72(940) 0.1 2.61(540) 0.03 2.55(1160) 0.3 2.58(490)
0.07 2.58(1040) 0.7 3.78(200) 0.09 2.63(400) 0.9 4.83(190)
Fig. 4.7 尖峰負載預測誤差圖5 (H型函數第2種測試方式)
用第2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.9所示。誤差圖如Fig.
4.8所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.9 尖峰負載預測誤差表 6 (H 型函數第 3 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.71(270) 0.1 2.65(460) 0.03 2.77(190) 0.3 3.06(150) 0.05 2.71(400) 0.5 3.04(220) 0.07 2.66(400) 0.7 3.76(210)
0.09 2.60(360) 0.9 4.68(290)
Fig. 4.8 尖峰負載預測誤差圖 6 (H 型函數第 3 種測試方式)
4.3.3 尖峰負載預測用 MH 型函數模擬結果
用第1,2,3年資料作訓練,第4年資料作測試,其誤差值如Table 4.10所示。誤差圖如 Fig. 4.9所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.10 尖峰負載預測誤差表 7 (MH 型函數第 1 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.34(160) 0.1 2.28(300) 0.03 2.35(50) 0.3 2.38(70) 0.05 2.35(40) 0.5 2.47(60)
0.09 2.35(40) 0.9 2.69(140)
Fig. 4.9 尖峰負載預測誤差圖 7 (MH 型函數第 1 種測試方式)
用第1,2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.11所示。誤差圖 如Fig. 4.10所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.11 尖峰負載預測誤差表 8 (MH 型函數第 2 種測試方式) Learning Rate MAPE (epoch) Learning Rate MAPE (epoch)
0.01 2.68(1170) 0.1 2.61(100) 0.03 2.44(800) 0.3 2.82(40) 0.05 2.37(500) 0.5 2.97(100) 0.07 2.40(380) 0.7 2.91(100)
0.09 2.58(420) 0.9 2.91(140)
Fig. 4.10 尖峰負載預測誤差圖 8 (MH 型函數第 2 種測試方式)
用第2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.12所示。誤差圖如 Fig. 4.11所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.12 尖峰負載預測誤差表 9 (MH 型函數第 3 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.79(1200) 0.1 2.60(330) 0.03 2.75(290) 0.3 2.72(200) 0.05 2.56(880) 0.5 3.07(50) 0.07 2.75(240) 0.7 3.22(80)
Fig.4.11 尖峰負載測試誤差圖 9 (MH 型函數第 3 種測試方式) 4.4 總負載預測
4.4.1 總負載預測用 S 型函數模擬結果
用第1,2,3年資料作訓練,第4年資料作測試,其誤差值如Table 4.13所示。誤差圖如 Fig. 4.12所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.13 總負載預測誤差表 1 (S 型函數第 1 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 1.43(5900) 0.1 1.40(29300) 0.03 1.44(5400) 0.3 1.43(7800) 0.05 1.49(5900) 0.5 1.38(9500)
0.07 1.43(5100) 0.7 1.37(5500) 0.09 1.42(4300) 0.9 1.42(4500)
Fig. 4.12 總負載預測誤差圖 1 (S 型函數第 1 種測試方式)
用第1,2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.14所示。誤差圖 如Fig. 4.13所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.14 總負載預測誤差表 2 (S 型函數第 2 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 1.77(4050) 0.1 1.75(30000) 0.03 1.77(4350) 0.3 1.75(8200) 0.05 1.79(3650) 0.5 1.77(6000)
0.09 1.75(3950) 0.9 1.82(5000)
Fig. 4.13 總負載預測誤差圖 2 (S 型函數第 2 種測試方式)
用第2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.15所示。誤差圖如 Fig. 4.14所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.15 總負載預測誤差表 3 (S 型函數第 3 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 1.84(5000) 0.1 1.86(30000) 0.03 1.78(4800) 0.3 1.76(13900) 0.05 1.83(3900) 0.5 1.77(9000) 0.07 1.83(3400) 0.7 1.79(7000) 0.09 1.86(2950) 0.9 1.80(6500)
MAPE
Fig. 4.14 總負載預測誤差圖 3 (S 型函數第 3 種測試方式)
4.4.2 總負載預測用 H 型函數模擬結果
用第1,2,3年資料作訓練,第4年資料作測試,其誤差值如Table 4.16所示。誤差圖如 Fig. 4.15所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.16 總負載預測誤差表4 (H型函數第1種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 1.80(680) 0.1 1.50(380) 0.03 1.76(560) 0.3 1.65(100) 0.05 1.77(440) 0.5 1.89(180) 0.07 1.49(440) 0.7 2.44(110)
Fig 4.15 總負載預測誤差圖 4 (H 型函數第 1 種測試方式)
用第1,2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.17所示。誤差圖 如Fig. 4.16所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.17 總負載預測誤差表 5 (H 型函數第 2 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.18(830) 0.1 1.98(430) 0.03 1.88(920) 0.3 2.15(80) 0.05 1.85(930) 0.5 2.31(130) 0.07 1.92(310) 0.7 2.55(90) 0.09 1.91(360) 0.9 3.55(130)
Fig. 4.16 總負載預測誤差圖 5 (H 型函數第 2 種測試方式)
表1用第2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.18所示。誤差圖 如Fig. 4.17所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.18 總負載預測誤差表 6 (H 型函數第 3 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.24(600) 0.1 2.02(590) 0.03 2.11(730) 0.3 2.12(310) 0.05 2.08(640) 0.5 2.31(240) 0.07 2.00(530) 0.7 2.99(400) 0.09 2.03(350) 0.9 3.80(340)
Fig. 4.17 總負載預測誤差圖 6 (H 型函數第 3 種測試方式)
4.4.3 總負載預測用 MH 型函數模擬結果
用第1,2,3年資料作訓練,第4年資料作測試,其誤差值如Table 4.19所示。誤差圖如 Fig. 4.18所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.19 總負載預測誤差表 7 (MH 型函數第 1 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 1.77(430) 0.1 1.48(320) 0.03 1.56(2530) 0.3 1.53(80) 0.05 1.65(850) 0.5 1.72(70) 0.07 1.43(220) 0.7 1.78(240) 0.09 1.54(200) 0.9 2.07(90)
Fig. 4.18 總負載預測誤差圖 7 (MH 型函數第 1 種測試方式)
用第1,2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.20所示。誤差圖 如Fig. 4.19所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.20 總負載預測誤差表 8 (MH 型函數第 2 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.23(280) 0.1 1.90(770) 0.03 1.85(560) 0.3 2.07(60) 0.05 1.94(380) 0.5 2.19(50) 0.07 1.94(380) 0.7 2.19(50) 0.09 1.94(370) 0.9 2.34(160)
Fig. 4.19 總負載預測誤差圖 8 (MH 型函數第 2 種測試方式)
用第2,3,4年資料作訓練,第5年資料作測試,其誤差值如Table 4.21所示。誤差圖如 Fig. 4.20所示。其中虛線為訓練誤差,實線為測試、誤差,學習速率為0.1。
Table 4.21 總負載預測誤差表 9 (MH 型函數第 3 種測試方式) Learning Rate MAPE(epoch) Learning Rate MAPE(epoch)
0.01 2.25(290) 0.1 1.96(310) 0.03 1.81(570) 0.3 2.11(90) 0.05 1.83(630) 0.5 2.32(120) 0.07 1.88(230) 0.7 2.34(230) 0.09 1.88(410) 0.9 2.47(140)
Fig. 4.20 總負載預測誤差圖 9 (MH 型函數第 3 種測試方式)
第五章 結論與未來努力方向
5.1 結論
我們從實驗模擬,可以發現,類神經網路對於電力負載預測有很好的學習與預測能 力,只要找出合適的相關輸入變數值,就可以預測電力負載的輸出值。
本實驗的轉換函數,使用傳統倒傳進類神經網路常用的S 型函數(Sigmoid
Function),得到誤差值很低,若能把權值用已經學習完成的權值代替初權值,再加以學 習與測試,可以得到更低的誤差。
若採用H 型轉換函數與 MH 型轉換函數,則收斂速度較 S 型轉換函數為快,但誤
差較大,而MH 型轉換函數,誤差與 S 型轉換函數接近,但收斂速度較快。
5.2 未來努力方向
本論文未來努力的方向,第一,因為學習速率與網路收斂有明顯的關係,所以希望
本論文未來努力的方向,第一,因為學習速率與網路收斂有明顯的關係,所以希望