820 likes | 972 Views
NeuroSolutions 類神經網路模擬介紹. 決策分析研究室. 何謂類神經網路. 類神經網路的靈感源自於腦神經學,其基本概念是希望透過模擬人腦結構的方式來建立新一代的電腦處理模式。 ( 中山大學 機電系 嚴成文教授 ) 運用電腦(軟、硬體)來模擬生物大腦神經的人工智慧系統,並將此應用於辨識、決策、控制、預測, ‧ ‧ ‧ 等等。 ( 真理大學工管系 邱寬旭教授 )
E N D
NeuroSolutions類神經網路模擬介紹 決策分析研究室
何謂類神經網路 • 類神經網路的靈感源自於腦神經學,其基本概念是希望透過模擬人腦結構的方式來建立新一代的電腦處理模式。(中山大學 機電系 嚴成文教授) • 運用電腦(軟、硬體)來模擬生物大腦神經的人工智慧系統,並將此應用於辨識、決策、控制、預測,‧ ‧ ‧ 等等。(真理大學工管系 邱寬旭教授) • 類神經網路( Neural Network,NN)類似人類神經結構,是「一種基於腦與神經系統研究,所啟發的資訊處理技術」。具有人腦功能基本特性:學習、記憶和歸納。(輔仁大學統計資訊學系 謝邦昌教授)
類神經網路 模型 Output Input 何謂類神經網路 • 類神經網路並不需要瞭解系統的數學模型,直接以神經網路取代系統的模型,一樣可以得到輸入與輸出之間的關係。 • 類神經網路和迴歸分析不同,沒有任何假設的機率分佈,是模式識別和誤差最小化的過程,在每一次經驗中提取和學習資訊。 • 類神經網路可以處理連續型和類別型的資料,對資料進行預測。
input output Neural Network Model • Brain Neuron (生物神經元) • Artificial neuron (人工神經元) • 人工神經網路為一系列的處理單元,處理單元透過神經樹之連結藉以調整連結強度(權重)來輸出。
人工類神經介紹 • 神經元狀態分成興奮及抑制二種,以1代表興奮,以0代表抑制 • 神經元與其他神經元間以神經節連結,可用加權值代表神經節之連結強度 • 神經元之狀態會透過神經節輸出至其他神經元,而成為其他神經元之狀態輸入 Artificial neuron (人工神經元)
I H I O H I O H I 輸入層I 輸出層O 隱藏層H 類神經網路的架構 • 類神經網路主要結構是由神經元(neuron)、層(layer)和網路(network)三個部份所組成。 • 整個類神經網路包含一系列基本的神經元,通過權重(weight)相互連接。 • 這些單元以層的方式組織,每一層的每個神經元和前一層、後一層的神經元連接。 ※圓圈的部分代表神經元
類神經網路的架構 • 類神經網路的分為輸入層、輸出層和隱藏層,三層連結形成一個神經網路。 • 輸入層只從外部環境接收資訊,該層的每個神經元相當於自變數,不完成任何計算,只為下一層傳遞資訊。 • 輸出層生成最終結果,為網路送給外部系統的結果值。
類神經網路的架構 • 隱藏層介於輸入層和輸出層之間,這些層完全用於分析,其函數聯繫輸入層變數和輸出層變數,使其更配適(fit)資料。 • 目前尚沒有統一的標準方法可以計算神經網路的最佳層數。 • 一層加權神經元的網路稱單層感知器,多層加權神經元的網路稱多層感知器(multi-layer perceptrons)。
Yj = f(net j) Yj處理單元函數 net j = ΣWij Xi – θj Wij = 連結強度 Xi = 神經元i所傳來之訊號 θj = 神經元j之閥值 f = 轉換函數,通常為階梯函數(Step function) f(x) = △Wij = ηXi Xj η:學習速率,控制權重修正幅度 MP(MultiLayer Perceptron)模型公式: • {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之對話框說明 • 在Training Data中,選擇檔案時,會出現Prediction之選項,此時可以設定是否此網路要作為預測之用。 • 一般要作為預測之用的話,建議預測之目標值也要與變數放置在同一檔案之中。 • 假設設定了Prediction之選項,則 會出現Delta的設定,Delta主要是 要用前幾筆資料,來預測下一筆 資料。 • 假設現在是1/15,那麼要預測 1/16的資料,那麼他會用1/15, 1/14,1/13,…,1/7,1/6的資料來作 為預測之參考資料。
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 Training • NeuroSolutions提供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為主