第四章 倒傳遞類神經網路 類神經網路
4 章節目錄 第一節 序論 第二節 多層感知器網路架構 第三節 BPN的學習演算法 第四節 BPN的實用層面與探索 第五節 應用實例 第一節 序論 第二節 多層感知器網路架構 第三節 BPN的學習演算法 第四節 BPN的實用層面與探索 第五節 應用實例 第六節 其他應用 第七節 結論 本章重點回顧 本章習題 台大生工系水資源資訊系統研究室
第一節 序論 事物間的因果關係很難以數學方程式表現出來 欲建立系統的反應機制,我們藉由輸入-輸出(input-output pairs)的觀測資料以建立輸入與輸出訊號間的映射關係 但如何根據有限的輸入與輸出樣本資料推求一正確的映射系統 F 呢? 最小平方法 類神經網路 台大生工系水資源資訊系統研究室
最小平方法 類神經網路 維度低或關係較簡單的問題 但對於複雜映射,會面臨到函數選取及係數求解等困難 對簡單的非線性函數進行組合,經過數次組合後,成為一複雜的函數型式,就可以解決複雜映射的問題 倒傳遞類神經網路 學習精度高、回想速度快、輸出值可為連續值,能處理複雜的樣本識別與高度非線性的函數合成問題 ex.樣本識別、分類問題、函數模擬、預測、系統控制、 雜訊過濾、資料壓縮 台大生工系水資源資訊系統研究室
第二節 多層感知器網路架構 倒傳遞類神經網路的架構為多層感知器(MLP) 前饋式網路 第二節 多層感知器網路架構 倒傳遞類神經網路的架構為多層感知器(MLP) 前饋式網路 一般使用的學習演算法為誤差倒傳遞演算法 (Error Back Propagation, EBP),簡稱為 BP演算法 監督式學習 (MLP + EBP)稱之為 倒傳遞類神經網路 或 BPN 台大生工系水資源資訊系統研究室
倒傳遞類神經網路的發展……… 早期Rosenblatt(1958)發展的感知器僅為單層網路 無隱藏層的存在,無法解決某些問題 1982年,Rumelhart、McClelland和他們同事成立了一個PDP(parallel distributed processing)小組 1986年提出著名的倒傳遞學習法,實現多層網路的構想 倒傳遞學習法的提出,使得多層感知器的網路架構得以實現 台大生工系水資源資訊系統研究室
倒傳遞類神經網路架構圖 台大生工系水資源資訊系統研究室
輸入層與輸出層 用來表現輸入項與輸出值,兩者神經元數目依問題型式而定; 隱藏層 神經元數目:試誤法決定 隱藏層的層數:依問題複雜度由一層增加到數層 活化函數 輸入值由輸入層直接傳入隱藏層,經加權累加後再透過 活化函數轉換可得一輸出值,同理再傳入輸出層 台大生工系水資源資訊系統研究室
常使用的活化函數型式 台大生工系水資源資訊系統研究室
第三節 BPN的學習演算法 4.3.1 誤差倒傳遞演算法(EBP) EBP的學習過程,是由正向傳播與負向傳播所組成 台大生工系水資源資訊系統研究室
權重與偏權值修改 在倒傳遞類神經網路中,第 n 層第 j 個神經元的輸入值為第 n – 1 層神經元輸出值的非線性函數: 誤差函數 E 定義 由於其學習目的在降低網路輸出值與目標輸出值間的差距 台大生工系水資源資訊系統研究室
網路的學習過程,即為使誤差函數 E 最小化的過程 利用最陡坡降法來搜尋 E 的最佳解 每當輸入一筆訓練資料,網路就稍微調整加權值的大小: 學習速率η的大小決定了最陡坡降法修正的步幅 可利用連鎖律求得…… 台大生工系水資源資訊系統研究室
台大生工系水資源資訊系統研究室
線上EBP學習演算法程序 台大生工系水資源資訊系統研究室
4.3.2 增快學習效率的BPN BPN 提升EBP搜尋效率的方法 大量的連結權重參數需要調整 訓練過程,目標函數常會落入局部最小值 慣性項(momentum term)的加入 批次學習 使用變動的學習速率(請見4.4.2之學習速率設定) 不同的轉換函數 不同的目標函數 範例重要性因子 加一隨機擾動量以跳出局部最小值 台大生工系水資源資訊系統研究室
1. 慣性項的加入(Zurada, 1992) 將慣性項加入原來的權重調整方程式 : 目前瞬時誤差的最陡坡降方向加上前一次迭代調整值的某一比例 為慣性因子的學習速率( ) 固定型:介於 0.5~0.7 之間 變動型: 台大生工系水資源資訊系統研究室
加入慣性項的BP調整二維權重向量之示意圖 對輸入資料中有極端值(outliers)或隨機的不穩定性(如雜訊),可明顯地降低該筆資料在搜尋方向的偏執與衝擊 對平滑的目標函數則可放大在原有搜尋方向的步幅,進而加速達到收斂的情況。 台大生工系水資源資訊系統研究室
2. 批次學習(batch learning) 將一批(多組或全部)範例載入後,依次求得每一組的權重改變量,將其累加起來再平均以更新權重值 第 p 個輸入範例所造成的權重值改變量 以批次學習更新權重值的優點有: 效果穩定 具有平滑作用,學習效果佳 適用於細緻複雜的最佳化搜尋方法 缺點或代價為其需要較大量的儲存空間及運算的技巧 台大生工系水資源資訊系統研究室
一層隱藏層或兩層隱藏層?(Kecman, 2001) 第四節 BPN的實用層面與探索 4.4.1 架構設定條件與限制 一層隱藏層或兩層隱藏層?(Kecman, 2001) 在許多理論研究的結果與工程領域的模擬應用上都顯示,隱藏層的層數不需要超過兩層以上 Hush和Horne(1993)指出 使用兩層隱藏層的網路,各隱藏層只需有少量神經元,可取代使用一層需要數量龐大神經元隱藏層的網路 一般可以使用特定的問題或目標函數來決定哪一種架構比較好 網路大小、訓練時間、精確度以及對硬體的需求 台大生工系水資源資訊系統研究室
隱藏層的神經元個數的多寡對網路有相當重大的影響 隱藏層神經元的個數 輸入層與輸出層都可以由問題本身決定 隱藏層的神經元個數的多寡對網路有相當重大的影響 決定網路的參數的多寡, 影響網路描述系統(問題)的能力 過少→ 無法適當描述 過多→ 過度地描述 (Over- fitting) 台大生工系水資源資訊系統研究室
確定隱藏層神經元個數的常用方法有兩種(Dawson, 2001) 隱藏層神經元的個數 確定隱藏層神經元個數的常用方法有兩種(Dawson, 2001) 網路修剪法 (pruning algorithm) 先設定大數量的隱藏層神經元個數開始訓練,再逐一減少神經元個數 網路增長法 (constructive algorithm) 先設定小數目的隱藏層神經元個數開始訓練,再逐一增加神經元個數 網路增長法初始設定神經元個數為1,逐一增加神經元個數 台大生工系水資源資訊系統研究室
4.4.2 參數設定限制 輸入項資料處理 讓資料平均值在0附近或是使其標準偏差較小, 4.4.2 參數設定限制 輸入項資料處理 讓資料平均值在0附近或是使其標準偏差較小, 搜尋過程中較不容易產生權重發散,造成無限大或負無限大的值出現 讓權重調整的速率相近似 可將資料正規化(normalize)至 [0.1, 0.9] 的範圍間 輸出值的限制 目標輸出值必須考慮到神經元所使用的活化函數特性 建議在學習階段目標輸出值最好介於 0.1 到 0.9 之間。 台大生工系水資源資訊系統研究室
根據問題的型態或需求來改變目標函數的型態 皆以誤差平方和為函數組合 目標函數的型態與訓練停止標準 根據問題的型態或需求來改變目標函數的型態 皆以誤差平方和為函數組合 台大生工系水資源資訊系統研究室
學習速率的設定需多次嘗試,並因問題與訓練範例資料有所不同 在批次學習中,建議使用變動的學習速率提高搜尋效率 學習速率設定 學習速率小 收斂過程因此趨緩,但迭代次數就相對地提高; 學習速率大 可加速搜尋效率,但容易造成搜尋過程中,目標函數產生不穩定的振盪情形 學習速率的設定需多次嘗試,並因問題與訓練範例資料有所不同 在批次學習中,建議使用變動的學習速率提高搜尋效率 台大生工系水資源資訊系統研究室
權重初始化 一般建議 連結權重在初始化 針對每一層權重的設定 應設定很小值的隨機亂數,可以避免網路訓練過程是從一個特定的權重值開始搜尋,而容易落入局部解或需要很多的迭代次數 針對每一層權重的設定 落在 [–0.5/(此層神經元個數)] 與 [0.5/(此層神經元個數)] 之間均勻分布(uniform distribution)的隨機亂數 針對一層隱藏層的 BPN 先將隱藏層的連結權重設定介於 –0.5 與 0.5 之間的隨機亂數,再進行修正 台大生工系水資源資訊系統研究室
第五節 應用實例 台大生工系水資源資訊系統研究室
在多層的類神經網路應用中,倒傳遞類神經網路是最常被用來處理非線性函數映射問題。本例題將以一層隱藏層的倒傳遞類神經網路來模擬函數 在多層的類神經網路應用中,倒傳遞類神經網路是最常被用來處理非線性函數映射問題。本例題將以一層隱藏層的倒傳遞類神經網路來模擬函數 (a)產生符合上述函數之三組資料群,分別為訓練資料400組、驗證資料200組與測試資料100組。 (b) 利用 (a) 產生的資料以倒傳遞類神經網路來訓練、驗證及測試函數值。 台大生工系水資源資訊系統研究室
隨機產生700組(x,y)資料點 ,將資料分割為訓練、驗證與測試三部分 輸入資料處理 隨機產生700組(x,y)資料點 ,將資料分割為訓練、驗證與測試三部分 台大生工系水資源資訊系統研究室
網路架構 (3) 訓練網路 台大生工系水資源資訊系統研究室
訓練結果 表4.3 (a)輸入層連結權重值 wji (b)輸出層連結權重wkj 表4.4 網路偏權值bj 台大生工系水資源資訊系統研究室
(4) 網路驗證與測試 200個驗證資料目標輸出值之三維立體圖 100個測試資料目標輸出值之三維立體圖 台大生工系水資源資訊系統研究室
明渠流場模擬,以倒傳遞類神經網路針對不同坡度與寬深比之明渠流場試驗量測結果,進行流速剖面之模擬,其中影響因子為:渠底坡度(S)、寬深比(B/H)、資料點之高程位置(y/H),以及速度剖面垂線量測之位置(Z),而模式訓練與驗證資料來源取自參考文獻(楊等,2001 & 2002)。 台大生工系水資源資訊系統研究室
訓練階段RMSE趨勢圖 訓練資料 驗證資料 台大生工系水資源資訊系統研究室
模式推估值與實測資料速度分布圖 台大生工系水資源資訊系統研究室
第六節 其他應用 倒傳遞類神經網路常用於: 1. 分類、診斷 2. 函數推估、預測 3. 訊號處理 4. 非線性控制系統 第六節 其他應用 倒傳遞類神經網路常用於: 1. 分類、診斷 2. 函數推估、預測 3. 訊號處理 4. 非線性控制系統 台大生工系水資源資訊系統研究室
第七節 結論 BPN 的發展較早,且簡單易用 使用了最佳化中的最陡坡降法,藉由迭代運算的方式求解最佳值, 並加入隱藏層處理神經元,使得最佳化問題藉由自行調參數之方 式,從而可得到更精確的解。 學習精度高、回想速度快,且輸出值可為連續值與不連續值,並 能處理複雜的高度非線性函數合成問題等,因此其適用性相當的 廣泛 使用上有學習速度慢、執行時間太長,以及陷入局部最小值等困 擾,但均有相關的補救措施,均提出不錯的改進方式與成果。 台大生工系水資源資訊系統研究室
本章重點回顧 倒傳遞類神經網路屬前饋式網路,利用監督式學習法則調整其連結 權重向量 一般常用的MLP網路架構包含輸入層、隱藏層、輸出層; 因輸入層神經元並不作任何運算,故真正有作用的只有隱藏層及輸 出層的神經元。 倒傳遞演算法權重更新公式 隱藏層與隱藏層間: 隱藏層與輸出層間: 台大生工系水資源資訊系統研究室
本章習題 4.1 使用多層感知器(MLP)架構及錯誤倒傳遞演算法(EBP)建構一BPN。使其可用來作分類器將資料分成兩類。 自行準備100筆訓練資料,其中每一筆包含兩個輸入(x, y 值)及一個輸出(0 或 1)。首先將這 100 筆訓練資料畫在二維座標軸上,用 ○ 表示 0,用 ╳ 表示 1,並簡單用鉛筆畫出兩類(○ 及 ╳)的邊界。 設計一 BP 類神經網路並以這 100 筆資料來訓練。描述你所設計的網路架構包含有幾層、每一層有幾個神經元、活化函數等。 畫出訓練時的 error 與 epoch 關係圖。即 100 筆訓練資料全部代入網路後計算出總誤差(error),接著調整權重,這樣一輪稱為 epoch;然後再將 100 筆資料送入網路計算總誤差,再調整權重,直到總誤差小於設定值。 將 100 筆訓練資料的輸入部分代入已訓練好的網路,並將網路輸出分成兩類以 ○ 及 ╳ 表示繪於圖上,並與 (a) 所畫的圖作比較。 台大生工系水資源資訊系統研究室
使用單層感知器與倒傳遞類神經網路,來進行XOR問題的分類。 以單層感知器進行訓練後,畫出分割線。 以BPN並進行訓練後,畫出分割線(提示:隱藏層神經元個數設為2)。 就BPN的學習速率與迭代次數進行討論,並畫出其關係圖。 4.2 x1 x2 d -1 1 台大生工系水資源資訊系統研究室
下圖為一BP類神經網路,若活化函數為 y = f (net) = 1/(1 + e–net),請求出各權重的修正方程式 4.3 下圖為一BP類神經網路,若活化函數為 y = f (net) = 1/(1 + e–net),請求出各權重的修正方程式 台大生工系水資源資訊系統研究室
寫一個電腦程式以一層隱藏層的倒傳遞類神經網路來模擬函數 4.4 畫圖說明使用倒傳遞類神經網路的流程。 4.5 寫一個電腦程式以一層隱藏層的倒傳遞類神經網路來模擬函數 產生三組資料群,訓練 300 組,測試 100 組,推估 100組。 以類神經網路來訓練、測試及推估函數。 增加或減少隱藏層的 node 數看是否對類神經網路造成影響。 更改初始權重觀察其影響。 台大生工系水資源資訊系統研究室