NeuroSolutions 類神經網路模擬介紹

Preview:

DESCRIPTION

NeuroSolutions 類神經網路模擬介紹. 決策分析研究室. 何謂類神經網路. 類神經網路的靈感源自於腦神經學,其基本概念是希望透過模擬人腦結構的方式來建立新一代的電腦處理模式。 ( 中山大學 機電系 嚴成文教授 ) 運用電腦(軟、硬體)來模擬生物大腦神經的人工智慧系統,並將此應用於辨識、決策、控制、預測, ‧ ‧ ‧ 等等。 ( 真理大學工管系 邱寬旭教授 ) - PowerPoint PPT Presentation

Citation preview

NeuroSolutions類神經網路模擬介紹

決策分析研究室

何謂類神經網路類神經網路的靈感源自於腦神經學,其基本概念是希望透過模擬人腦結構的方式來建立新一代的電腦處理模式。 ( 中山大學 機電系 嚴成文教授 )

運用電腦(軟、硬體)來模擬生物大腦神經的人工智慧系統,並將此應用於辨識、決策、控制、預測,‧ ‧ ‧ 等等。(真理大學工管系 邱寬旭教授 )

類神經網路( Neural Network , NN)類似人類神經結構,是「一種基於腦與神經系統研究,所啟發的資訊處理技術」。具有人腦功能基本特性:學習、記憶和歸納。 (輔仁大學統計資訊學系 謝邦昌教授 )

何謂類神經網路類神經網路並不需要瞭解系統的數學模型,直接以神經網路取代系統的模型,一樣可以得到輸入與輸出之間的關係。類神經網路和迴歸分析不同,沒有任何假設的機率分佈,是模式識別和誤差最小化的過程,在每一次經驗中提取和學習資訊。類神經網路可以處理連續型和類別型的資料,對資料進行預測。

Input 類神經網路模型

Output

Neural Network Model

Brain Neuron ( 生物神經元 )

Artificial neuron ( 人工神經元 )

人工神經網路為一系列的處理單元,處理單元透過神經樹之連結藉以調整連結強度 (權重 )來輸出。

f(ne t)

Inputs

w1

w2

wn

input output

人工類神經介紹神經元狀態分成興奮及抑制二種,以1代表興奮,以0代表抑制

神經元與其他神經元間以神經節連結,可用加權值代表神經節之連結強度

神經元之狀態會透過神經節輸出至其他神經元,而成為其他神經元之狀態輸入

f(ne t)

Inputs

w1

w2

wn

Artificial neuron

( 人工神經元 )

類神經網路的架構類神經網路主要結構是由神經元( neuron )、層( layer )和網路( network )三個部份所組成。 整個類神經網路包含一系列基本的神經元,通過權重( weight )相互連接。 這些單元以層的方式組織,每一層的每個神經元和前一層、後一層的神經元連接。

輸入層 I 隱藏層 H 輸出層 O

O

O

I

I

I

I

H

H

H

※圓圈的部分代表神經元

類神經網路的架構類神經網路的分為輸入層、輸出層和隱藏層,三層連結形成一個神經網路。

輸入層只從外部環境接收資訊,該層的每個神經元相當於自變數,不完成任何計算,只為下一層傳遞資訊。

輸出層生成最終結果,為網路送給外部系統的結果值。

類神經網路的架構隱藏層介於輸入層和輸出層之間,這些層完全用於分析,其函數聯繫輸入層變數和輸出層變數,使其更配適 (fit) 資料。

目前尚沒有統一的標準方法可以計算神經網路的最佳層數。

一層加權神經元的網路稱單層感知器,多層加權神經元的網路稱多層感知器( multi-layer perceptrons)。

MP(MultiLayer Perceptron)模型公式:

Yj = f(net j) Yj 處理單元函數net j = ΣWij Xi – θj

Wij = 連結強度Xi = 神經元 i 所傳來之訊號θj = 神經元 j 之閥值 f = 轉換函數,通常為階梯函數(Step function)

f(x) =

△Wij = ηXi Xjη :學習速率,控制權重修正幅度

{T} 目標輸出量{Y} 推論輸出量δ 差距量 ,用來修正權重差距量 = 目標輸出量 – 推論輸出量 => δj = Tj – Yj權重改變量

=> △Wij = η‧δj‧Xi

輸出單元閥值改變量 => △θj = - η‧δj

總錯誤率 = 誤分類案例總數 / 範例種數

BPN 原理簡單介紹提供範例資料給神經網路神經網路運算後產生輸出資料神經網路運算後產生輸出資料並比較滿意值修正網路中之權重以降低誤差

範例資料輸入 網路權重 w

修正權重參數

訓練演算法 誤差

差異

目標值

輸出值與目標值比較

產生輸出資料

Neural Networks 的要求神經網路學習是透過範例來讓網路收斂,因此輸入資料必須為:-擁有足夠範例資料來讓神經網路作適當之歸納。-適度的訓練-資料中的關係變數無絕對之影響變數-針對監督式學習需要有期望輸出值(目標值)訓練,輸入值為其關鍵

信賴度Neural networks are very powerful對於神經網路之是基於訓練之資料上。若資料不足則沒辦法修正權重作業。透過充分資料之訓練的神經網路,是可信賴的。

類神經網路的應用 -工業應用 控制器設計與系統鑑別

產品品質分析(例:汽水瓶裝蓋與填充監測、珍珠分級)

機電設備診斷(例:數值電路診斷、類比IC診斷、汽車引擎診斷)

化工程序診斷 (例:化工廠製程故障診斷)

實驗資料模型建立 (例:複合材料行為模型建立)

工程分析與設計(例:鋼樑結構、道路鋪面狀況評級)

類神經網路的應用 - 商業應用 股票投資(例:大盤基本分析、大盤技術分析、個股技術分析)

債券投資(例:債券分級、美國國庫券利率預測)

期貨、選擇權、外匯投資(例:期貨投資、選擇權投資、外匯投資)

商業信用評估(例:貸款信用審核、信用卡信用審核)

其他商業應用(例:直銷顧客篩選、不動產鑑價)

類神經網路的應用 -管理應用策略管理(例:市場需求量預測方法之選擇、雇工人數規畫)

時程管理(例:排程策略選擇、工作排程)

品質管理(例:管制圖判讀、半導體製造過程所需蝕刻時間估計)

類神經網路的應用 -資訊應用影像辨識系統(例:指紋識別、衛星遙測影像分析、醫學影像識別)

訊號分類

其他資訊應用(例:雷達訊號分類、聲納訊號分類)

類神經網路的應用 - 科學應用醫學(例:皮膚病診斷、頭痛疾病診斷、心臟病診斷、基因分類)

化學(例:化合物化學結構識別、蛋白質結構分析)

其他科學應用(例:體操選手運動傷害分析、時間數列分析方法選擇)

類神經網路的優點類神經網路可以建構非線性的模型,模型的準確度高。類神經網路有良好的推廣性,對於未知的輸入亦可得到正確的輸出。類神經網路可以接受不同種類的變數作為輸入,適應性強。類神經網路可應用的領域相當廣泛,模型建構能力強。類神經網路具模糊推論能力,允許輸出入變數具模糊性,歸納學習較難具備此能力。

類神經網路的缺點類神經網路的隱藏層可為以 1-2層,數目可設為任意數目,且有學習速率等參數需設定,工作相當費時。類神經網路以迭代方式更新閥值,計算量大,相當耗費電腦資源。類神經網路的解有無限多組,無法得知哪一組的解為最佳解。訓練過程中無法得知需要的神經元個數,太多或太少的神經元均會影響系統的準確性,常以試誤方式得到適當神經元個數。類神經網路是以建立數值結構(含加權值的網路)來學習,其知識結構是隱性的,缺乏解釋能力。

NeuroSolution案例介紹台灣加權指數預測

前言想要運用類神經來作為解決問題之工具,必須要先了解類神經的流程步驟,其流程如下:訂定目標資料收集與資料處理 (包含資料篩選、資料清理、屬性資料分析與歸類 )建立模型訓練模型模型測試與分析結果評比實際應用

類神經網路製作流程

確認目標

資料整理

建立類神經網路模型

神經網路訓練

神經網路測試與分析

網路結果評估

網路應用實驗與資料收集

訂定目標台灣加權指數預測

目標:台灣加權指數預測在此我們舉一般常見而且可以輕易取得資料的案子為說明範例,而其中以國內的加權指數資料取得容易,也因此成為典型的分析範例。首先從網站上去下載股市 10年資料對於想運用類神經網路來作為分析工具來說,資料取得非常重要,在這邊以金融業之台灣加權指數的預測範例,是提供一個參考方式。若您是其他領域的專家,想運用類神經來協助你進行分析工作,那麼您的第一步也是資料蒐集。

資料收集

從網路上下載有關台股指數之資料載此選擇台灣加權指數為測試目標

資料收集注意事項:儘可能收集您要作為分析的資料若是您的資料是從實驗中求得,那麼你所作的實驗的樣本數也要儘可能地多,因為越多的資料,對類神經而言,可以讓它作適度之歸納。若您的資料量本身不是很多,您可以複製多筆資料來作為訓練之用,但是有可能造成類神經網路的信賴度會不夠。根據您的目的 Target 來收集資料,因此您必須了解資料的結構、屬性以及特性,這些就是所謂 Domain 。唯有了解這一個領域的人,才知道他要做的是什麼、所需要的是什麼資料,這些資料未來會有何用處。

資料整理台灣加權指數預測之目的:

預測收盤價

資料整理

影響類神經網路之精確度的主要變數有兩個,一個是資料、另一個就是訓練的長度。資料收集與整理時,唯有了解該領域 (Domain) 的人,才知道他要整理哪些數性的資料會影響到目標值的變化。由於良好可信賴之類神經網路,都是藉由訓練而來,而訓練的資料品質是好的、所提供的資料屬性是對目標值是有貢獻的話,則網路訓練出來就會比較好。訓練良好的類神經網路,其適用性才會廣,才會較為準確。資料整理變成為類神經之製作的前一步重要課題。

訓練資料及測試資料分類

在資料收集之後,經過整理,會將資料分成訓練之用與測試之用等資料檔案2種。訓練資料是用來網路訓練之用,藉由訓練來收斂網路權重。測試資料則是用於網路測試之用,用來測試網路是否準確,是否有經過充分訓練,是否可以應付未來所要發生之問題。

台灣加權指數之資料處理經由下載之後,我們開啟檔案,發現在檔案裡頭中,總共有幾個欄位,分別為 Date(日期 )、 Open(開盤價 )、 Close(收盤價 )、Value(成交量 )。日期對我們在類神經中可能用處不大,因此我們可以省略。而我們主要目的是要預測收盤價,因此可以用的參數只有開盤價 (Open)、成交量 (Value),只有兩個變數對類神經網路來說,可能會太少,因此使用者可以再將再財務金融所學到的一些 Index運用進來。因此,我們再自己新增一個五日均線值,以作為預測之指標值之一。

資料前處理

製作五日平均收盤價

資料前處理將前五筆資料予以省略

將資料複製貼到記事本中,並建立檔名為Input。

資料前處理建立訓練對照目標值,並將檔案存成 Desired。將資料蒐集完畢,並存成檔案後,就可以開始進行建立類神經模型。

檔案分類 ( 訓練用 or 測試用 )在檔案分割時,可以將全部檔案的 4/5用為訓練之用,另外的1/5的資料作為測試之用。並將檔案分別存檔如下圖:

建立類神經網路模型

建立模型首先點選 NeuralBuilder 圖形工具,啟動 NeuralBuilder 對話視窗選擇 Multilayer Percepton( 多層感知機 ) 模型

設定訓練檔案 (1)進入了訓練資料設定畫面之後,點選 Browse… 鍵之後會出現檔案選擇對話框,選擇所要作為訓練之輸入資料。

設定訓練檔案 (2)當訓練之輸入資料設定完畢,則會將訓練 Domain資料欄,列舉對話框之中若是資料欄位,有些資料不是作為輸入之資料,可以在資料欄位中用滑鼠點選,並選擇 Skip鍵

Example

在 Training Data 中,選擇檔案時,會出現 Prediction 之選項,此時可以設定是否此網路要作為預測之用。一般要作為預測之用的話,建議預測之目標值也要與變數放置在同一檔案之中。假設設定了 Prediction 之選項,則會出現 Delta 的設定, Delta 主要是要用前幾筆資料,來預測下一筆資料。假設現在是 1/15,那麼要預測1/16的資料,那麼他會用 1/15,1/14,1/13,…,1/7,1/6的資料來作為預測之參考資料。

Training Data 之對話框說明

Training Data 之對話框說明當載入檔案之後,勾選的 Prediction檔案之後,並設定 Delta值點選要作為預測之目標值的欄位,將之點選設定為 Predict 。

Training Data 之對話框說明GA選項在 Training Data 的對話框中,輸入資料的項目前面,可以看到 GA 的選項一般狀態是不會設定是否要執行 GA( 基因演算法 )若勾選 GA選項之後,則後續會加入基因演算法來進行最佳化搜尋。

Training Data 之對話框說明

• Input :設定該欄位為訓練資料之輸入

• Desire/Predict :設定該欄位為訓練目標對應值

• Symbol :設定該欄位為符號型態

• Skip:跳過,不處理

設定 Desired Response 檔案(1)

在這邊要設定對照目標檔案,亦即期望輸出對照值點選 Browser…鍵,啟動開啟檔案對話視窗。點選開啟 Disired 檔案。

設定 Desired Response 檔案(2)

在開啟之後,則所設定作為 Desired之資料會列於表中。若訓練之 Input 資料也同列於其中 (亦即 input-Desired同列於其中 )可以將 input 資料項 SKIP(省略 ) 。另外亦可以進行資料刪除及資料型態進行編制符號、文字皆須運用 Symbol來標註資料型態當設定完成之後,進行下一步設定。

交叉驗證及測試資料之設定

何謂交叉驗證資料 Cross Validation Data Set :

一般類神經網路中,很少會提到交叉驗證資料,但是會提到過度訓練 Overfit或是 Over TrainingNeuroSolutions提供 CV的方式作為檢測網路是否有過度訓練之現象。

交叉驗證及測試資料之設定

交叉驗證資料主要目的在於當網路訓練完成一個週期時,會計算出 MSE值,之後先暫停訓練,將 CV資料丟入,看MSE值是多少,以作為參考,如此可以檢測網路是否有過度訓練現象。

測試資料:測試資料主要是用來測試網路經過訓練之後,是否可以應付未發生過之事件,運用測試資料,來測試網路是否精確或是可否拿來作為實際應用之參考。

交叉驗證及測試資料之設定

在 Cross Val. & Test Data 的對話框中之設定,分為兩個部分:上面設定 (1) :主要是已經是先將檔案進行分類Input CV…:選擇要作為 CV的輸入資料檔案Desired CV…:選擇要作為CV的目標資料檔案Input Test :選擇要作為測試之資料檔案Desired Test :測試資料之目標值對應檔案

交叉驗證及測試資料之設定下方設定 (2) :並無將檔案令作分類歸檔,而是直接要將檔案切割,以作為 CV & Test 資料。設定要切割幾 %的資料作為 CV所用之資料。另外要切割幾 %的資料作為測試資料設定完成後,點選 >> 往下一步動作。

Multilayer 隱藏層數量設定Multiplayer 主要是要設定隱藏層數量。隱藏層主要目的在於數值交互作用隱藏層多不一定代表比較好,因此適當很重要。一般隱藏層數量 1 層或 2層,即可以達到不錯的效果。設定完成後,點選 >> 進入下一個設定。

隱藏層 #1 & #2 之設定說明在隱藏層設定中, Processing Elements(Neuron)主要是設定神經元之數量。一般系統會根據輸入之資料比數進行換算最佳之建議數量。Transfer設定轉換函數之使用種類:可以設定如雙曲函數元件Sigmoid 或是雙曲正切函數 TanbAxon,或是其他元件。系統初始設定會以 TanbAxon為主

隱藏層 #1 & #2 之設定說明學習法則之設定Learning Rule :可以設定為 Momentum、 Step…共六種。如果設定是 Momentum學習法則,則可以自行修改Step Size及 Momentum Rate設定。系統初始設定為 MomentumStep Size及 Momentum Rate為系統初始設定值。

Supervised Learning 設定Supervised Learning 為監督式學習網路,監督式學習網路通常會也輸入值及目標值,且需要設定學習長度 (Epochs) 。Maximums Epochs最大學習長度,一般稱為迭代或是訓練次數。最大迭代範圍設定,主要是指定要重複運算多少次,這個沒有一個界定之標準。誤差主要是用來作為權重參數之變更,因此 MSE也作為訓練之終結的條件。

Supervised Learning 設定說明

Termination 所指的是終止條件之設定。MSE:均方差Threshold:門檻值終止條件一般是以均方差為參考,因此設定均方差之門檻值,如 10-4次方,若經運

算之後,均方差的小數點達到門檻值,小於 10的 -4次方時,則訓練就會終止。訓練終止條件之成立只要 Epochs 達到,或是達到 Threshold門檻值界定標準就會終止訓練。

Supervised Learning 設定說明

Load Best on Test 在經過訓練完成之後,假設有設定網路測試,此時會以最佳之權重值來作為測試之用。On-Line & Batch 主要是權重值更新的方式。On-Line 權重更新方式,只要每一筆範例資料經過換算之後即顯示其更新狀態。Batch 會經過全部範例都運算之才呈現其權重更新狀態。

Supervised Learning 設定說明

一般終止條件會有兩個。一個為 Epochs(迭代 )設定,另一個為門檻值設定。兩者其一達到及停止訓練。終止條件之門檻值設定,一般需要設定為 10的 -4次方時或 10 的 -6次方。若您沒設的門檻值得話,一般是以 10的 -2次方。這樣在訓練時,會因為門檻值一下子就到達而導致訓練停止。

Probe 配置說明

Probe 主要是設定監測物件Input :在輸入端放置監測物件,若有需要,在 Training Set 前面方格勾選,則會自動放入所選擇之間測物件。Output :輸出端設定監測物件Desired:在對應目標物件設定監測物件Error 在評估誤差上設定監測物件。

Probe 配置說明Performance Measure:列舉 MSE、 NMSE、 r、 % Error等網路評估指標。General 主要是列出評估網路之相關指標Confusion matrix :是一種分類的結果顯示之方法Receiver Operating Characteristic (ROC) 接受端作業特徵:用來設定檢查對錯誤偵查的一種警示方式。

Build Your Model

在以上都設定完成之後,點選 Build,開始建立你的類神經模型,則系統會自動根據你設定的參數進行自動建模。

自動建模

在自動建模之後,你還是可以根據自己需要,在進行物件置換與新增。

自訂權重 Probe 物件權重值在類神經網路是非常重要的,一般為通道之抑制或興奮之用。因此,在建立網路後,系統會自動設定連結權重值的初始值。但是,因為沒有設定監測物件,所以我們看不出權重值。之前介紹過, Synapse( 神經樹 )主要就是連結權重設定之地方,因此,我們可以透過監測物件,來顯示出權重之數值。

1.點選 Probe物件中的MatrixView物件

2.將滑鼠移動到 Synapse物件上

3.再點選滑鼠左鍵將MatrixView物 件放置到 Synapse物件上

自訂權重 Probe 物件在右邊的矩陣圖,就是第一層隱藏層的權重值。一般來說,權重值之初始化由系統隨機產生,因此好的權重初始值有些時候就會影響到結果。但是權重的初始值好壞一開始無法判定,因此許多時候會運用 GA 基因演算法則來協助搜尋。

4.用滑鼠連續點選MatrixView物件 2次,就會開啟 Synapse的權重矩陣圖了。

輸入層 第一層隱藏層 第二層隱藏層 輸出層

網路訓練

執行網路訓練

在執行網路模擬之前,首先要了解網路模擬之啟動的控制鍵

啟動模擬

停止模擬

重置Reset

數值歸零

迭代依次運算

範例依次運算

案例依次投入運算

網路權重隨機產生

改變所有網路權重值

隱藏視窗

啟動模擬點選 Start鍵,啟動模擬。啟動之後,我們可以看到 Simulation Progress的對話框正在進行運算。而Active Performance對話框則是顯示誤差狀況。另外打開權重矩陣對話框石,可以見到權重值一直在變化

變化中的權重矩陣

當模擬執行的時候,權重會因為誤差值一直進行修正。

訓練完成

當訓練條件完成時,系統會自動停止。在訓練玩後,一邊先進行權重儲存。

權重儲存— (1)1. 首先,將滑鼠移動 Controller

物件上,點選下方黃色 Controller 物件

2. 按滑鼠右鍵,會出現功能選項,這時點選 Properties

3. 點選之後,即出現 StaticControl Inspector 的對話框

權重儲存— (2)4. 在進入 StaticControl Inspector 的對話框之後,點選 Weights的分類頁

5. 選擇之後,點選 Save鍵,將權重進行儲存。

6. 在選擇 Save鍵之後,會出現另存新檔的對話框

7. 將第一次的訓練權重儲存設為 TrainingWeight_1

8. 名稱設定完畢後儲存。

權重儲存— (3)

一般來說,同樣的資料,訓練次數會作 5次,從這 5次之中選擇 MSE最小的權重值,作為測試之用。在經過確認後,可以發現第一次所訓練出來之 MSE最低,因此我們將以此次之權重作為測試資料之用。另外一方面,您也可以將每一次的權重都做一次測試資料,再將最小的 MSE的權重作為實際應用之用。

模型測試

模型測試之前置動作

首先在資料處理時,就要將資料檔案先分為訓練資料及測試資料檔案。(參考前章資料整理)在整理好之後將檔案分別儲存成 TestInput跟TestDesired。必須將之前所訓練好之神經網路檔案及網路之權重先進行儲存,避免因為操作錯誤導致得重新訓練。

執行 Testing Wizard點選 Testing Wizard,啟動網路測試精靈啟動之後,會進入 Testing Wizard介紹畫面,點選 Next,到下一頁。

Testing Wizard 之檔案設定首先要確定您要測試之型態(DataSet to Test)是要測試,還是要應用(實際應用),若您是要設定測試檔案,則選擇 Test;若您是實際應用案例,則選擇 Production。

Testing Data 檔案之設定選擇設定 Input File欄位之 Browser選項,設定所要輸入之測試檔再來點選所要測試檔案之目標輸出值 (Desired 檔案 )設定完成,點選 Next 。

Testing Wizard 之輸出設定在測試輸出方式,可以選擇顯示在NeuroSolutions的視窗畫面上,或者是輸出成檔案等兩個選項,在此我們將檔案輸出成檔案方式。在輸出時,下面有一個選項,勾選後,會將原來的目標值也一起列出,以方便跟測試資料的輸出值方便比較。設定完成後,點選 Next。

Test 檔案檢查在運算後,會以txt檔案格式來儲存輸出檔案開啟之後,會發現目標值與測試輸出值會一起列出。可以進一步到 Excel進行比對。

應用篇

實際應用在測試完後,若類神經網路是可以應用了,這時還是會應用 Testing Wizard來進行資料預測。點選 Testing Wizard,開啟 Testing Wizard視窗。

設定為 Production 功能點選設定 Dataset to Test為 Production功能選項實際去下載資料,製作成檔案,並將之輸入到 Input file裡頭。

輸出結果

在設定好後,我們選擇將結果輸出到 NeuroSolutions 畫面中之後點選 Next 。之後會再出現程序設定檢查畫面,點選 Finish

參考資料1. NeuroSolutions 類神經網路模擬介紹 /皮托科技股份有限公司 /黃家祚

2. 中華資料採礦會 http://www.cdms.org.tw/

Recommended