第三章 研究方法
3.3 類神經網路之架構
本研究係使用 MATLAB 程式中工具箱所提供之 nntool,以下就該程式作簡介
[20]。
MATLAB 早期以矩陣運算為主,但隨著使用者需求日增,於是在 MATLAB 第四版推出握把式圖形(Handle Graphics),自此之後所有的 Demo 都包含 使用者圖形介面。在 MATLAB 第五版,其允許使用者建立許多不同的資料型 態(如多維陣列、結構陣列和異質陣列等),不再侷限於二維的矩陣。而隨 著 MATLAB 程式已發展第七版,有許多針對不同應用所開發的應用程式,稱 之為工具箱(Toolbox),由 Math Work 公司所提供的工具箱大概有四十多 個,尚有其他公司或研究單位所提供之工具,這些工具已累積上百個[20]。
本研究係使用工具箱中的 nntool(Neural Network Tool),nntool 使 用圖形介面,利於使用者使用。nntool 工具包括了以下幾個重要的功能
能使用網路的整個運作過程。
3.3.3 隱藏層神經元
(Over-fitting),甚至也隱合了雜訊的描述,而失去歸納推演的能力[24]。 隱藏層處理單元之數目太少,則不足以建構問題輸出入間的非線性關 20-11-1、20-21-1、20-42-1 等 3 種網路架構,並配合前開隨機數量之周邊
取鄰近之整數如 10、20、30、40、50、60 個隱藏層神經元做初步測試,即 建立 20-10-1、20-20-1、20-30-1、20-40-1、20-50-1、20-60-1 等 6 種網 路架構,並觀察哪些數量之神經元數量區間其學習及預測成果狀況,以利 尋找適合之網路架構,如以上之類神經網路架構之訓練及測試成效不佳,
再另研究尋找適宜之隱藏層神經元數量。
3.3.4 類神經網路架構成果分析
網路學習方式則以每載入一個訓練案例即更新加權值和閥值一次,當 所有訓練案例都載入一次時,則完成一次學習循環,網路即以訓練案例或 測試案例進行誤差函數計算,監測網路學習的品質。以下就常用之誤差作 說明[8]。
1.誤差均方根(Mean-Squared ErroR;MSE):
(7)
其中
p
Yj :第P個訓練(測試)範例的第j個輸出單元之推論輸出值。
p
Tj :第 P 個訓練(測試)範例的第 j 個輸出單元之目標輸出值。
M:訓練(測試)範例數目。
N:輸出層單元數目。
2.誤判率(Error Rate)[23]
此處的誤判率是指網路整體的誤判率:
誤判率=(範例總數-正判範例數)/範例總數 (8)
本研究係利用 MATLAB 之 Toolbox 之 Nerual Network Tool 來做網路學 習,而 MSE 將由該軟體計算得知,但是誤判率無法由該軟體計算,故俟 Nerual Network Tool 學習完畢並對測試案例作預測後,本研究將分析其測試結果,
將其測試正規化輸出值先依表 10 之公式轉換為 1、2、3、之輸出值,在與 與原本預期得到之輸出值作比對,以得知經完成學習後,應用於實際案例 測試之成果為何。
如測試案例由類神經網路之輸出值與 3.2.4.2 節中所分類相同,表示 無誤差,預測結果正確,如測試案例經由類神經網路之輸出值與 3.2.4.2 節中所分類不同,表示有誤差,預測結果不佳。因本研究輸出結果分 1、2、
3、4 等四類,依其誤差狀況可分類並定義如下表 12 所示,舉例如類神經輸 出值為 1 且該測試案例原輸出值為 1,則視為「無誤差」,若類神經輸出值 為 2,但該測試案例原輸出值為 3,則視為「誤差小」。相關可能狀況列如 下表 12 之「實際狀況」欄位。
考量本研究目的之一係對橋梁狀況作預測,以期能做實務上之應用,
故類神經網路之成果將以預測結果之誤差狀況作為該類神經網路架構預測 成果好壞之判斷。
表 12 誤差狀況分類定義表
誤差狀況 類神經網路學習或預測狀況 輸出值-期望值 或
期望值-輸出值 無誤差 類神經輸出值與案例原輸出值相同 1-1、2-2、3-3、4-4 誤差小 類神經輸出值與案例原輸出值差 1 1-2、2-3、3-4 誤差大 類神經輸出值與案例原輸出值差 2 1-3、2-4
錯誤 類神經輸出值與案例原輸出值差 3 1-4