-Artificial Neural Network- Matlab操作介紹 -以類神經網路BPN Model為例 朝陽科技大學 資訊管理系 李麗華 教授
資料準備說明 要訓練ANN前應先依解決的議題,準備好四組檔案 每一筆資料都須轉置成column型式(直式) 再匯入matlab. training data 檔, Training data的Target 檔, Test data 檔, Test 的Target檔. 每一筆資料都須轉置成column型式(直式) 再匯入matlab. 以下先介紹資料轉置的範例說明. 1.Input Pattern設計 2.Input Pattern轉換 3.Target Pattern設計 4.Test Pattern設定 朝陽科技大學 李麗華 教授
1.以數字辨識為例Pattern的設計 1, 2, 3 4, 5, 6 7, 8, 9 朝陽科技大學 李麗華 教授
2. Pattern轉換(續) 以 Word 進行設計 將10個patterns 做好並轉換 朝陽科技大學 李麗華 教授
2. Pattern轉換(續) 將每一個pattern表格選取後,將表格去除,並轉成文字形式 朝陽科技大學 李麗華 教授
Pattern轉換(續) 去除表格 朝陽科技大學 李麗華 教授
Pattern轉換(續) 去除表格 朝陽科技大學 李麗華 教授
Pattern轉換(續) 將每一個pattern轉為一列(即一筆輸入資料), 如下例 0 1 1 0 0 0 0 1 0 0 01100 00100 00100 00100 00100 朝陽科技大學 李麗華 教授
Pattern轉換(續) 所以10個數字pattern就產生10列資料(每一橫列為一筆training data ) 朝陽科技大學 李麗華 教授
Pattern轉換(續) 因matlab讀入資料是以直式(column by column)讀取, 所以須將每一筆data pattern轉為直式 方法一 (以Excel為工具) 將先前的10列資料,先行存成文字檔(*.txt) 再利用Excel, 開啟該文字檔 利用複製轉貼成直式 存成文字檔並命名為 trainset.txt 方法二 (以Matlab為工具) 直接利用matlab工具,採用匯入方式轉換data pattern 於Matlab的命令列中, 輸入 檔名‘ 即可進行轉換, 例如:欲匯入一個train pattern,其檔名為trainset.txt , 則在Matlab上輸入 trainset’ 朝陽科技大學 李麗華 教授
Pattern轉換成直式-用Excel <方法一> 複製並選擇性貼上 朝陽科技大學 李麗華 教授
Pattern轉換成直式-用Excel <方法一> 朝陽科技大學 李麗華 教授
Pattern轉換成直式-用Excel <方法一> 朝陽科技大學 李麗華 教授
Pattern轉換成直式-用Excel <方法一> 資料已轉成直式 朝陽科技大學 李麗華 教授
Pattern轉換成直式-用Excel <方法一> 存成文字檔並用tab格式 朝陽科技大學 李麗華 教授
Pattern轉換(續) 1. 先利用File功能,將training pattern檔,匯入Matlab中 <方法二> 1. 先利用File功能,將training pattern檔,匯入Matlab中 2. 再輸入此命令,以便轉換pattern 朝陽科技大學 李麗華 教授
3. Target Pattern設計(1) 1.依據先前所設計的辨識0~9的阿拉伯數字,依照training pattern的順序來製作target資料.以數字辨識為例,我們可以設計output有10個節點,令第1個輸出節點(output node Y1)代表辨識數字0的結果, 第2個輸出節點(output node Y2)代表辨識數字1的結果,第3個輸出節點(output node Y3)來代表辨識數字2的結果,以此類推.推,則依每個training pattern的順序來建立target檔. 以下依前面設計的10個input patterns來設計target檔如下. 朝陽科技大學 李麗華 教授
3. Target Pattern設計(2) . 當然target資料也是要再轉成直式才能匯入matlab. Target Pattern Input Pattern Target Pattern 9 8 7 6 5 4 3 2 1 . 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 。 當然target資料也是要再轉成直式才能匯入matlab. 朝陽科技大學 李麗華 教授
4. Test Pattern設計 當ANN網路訓練好時,則須要檢測網路的準確性,所以 須要另外再有一組test patterns來檢驗網路的成效. 1 {01100 00100 00100 00100 01110} 3 {01110 00010 01110 00010 01110} 9 {01110 01010 01110 00010 00100} {00100 01010 01010 01010 00100} 朝陽科技大學 李麗華 教授
Matlab操作(1)– 先匯入所需資料 1.Training data 匯入所需資料: 朝陽科技大學 李麗華 教授 2.Target data 朝陽科技大學 李麗華 教授
Matlab操作(2) - 匯入所需資料 於Train Pattern所在位置, 將其匯入 朝陽科技大學 李麗華 教授
Matlab操作(3) - 匯入所需資料 選擇“Next” 朝陽科技大學 李麗華 教授
Matlab操作(4)- 匯入所需資料 選擇“Finish” 朝陽科技大學 李麗華 教授
Matlab操作(5) – 呼叫ANN建構工具 於命令列下“nntool” 以呼叫類神經網路模組 朝陽科技大學 李麗華 教授
Matlab操作(6) – 呼叫ANN建構工具 選擇“Import”, 將所需資料匯入 朝陽科技大學 李麗華 教授
Matlab操作(7) – 呼叫ANN建構工具 1.將Train Pattern設定為“Input”型式 2.將Target Pattern設定為Targets型式 朝陽科技大學 李麗華 教授
Matlab操作(8) – 呼叫ANN建構工具 匯入的資料 待所需資料匯入後, 即可選擇“New Network” ,以建構類神經網路模組 朝陽科技大學 李麗華 教授
Matlab操作(9) – 呼叫ANN建構工具 設定網路的輸入資料來源 朝陽科技大學 李麗華 教授
Matlab操作(10) – 呼叫ANN建構工具 自訂網路名稱 選用網路model 朝陽科技大學 李麗華 教授
Matlab操作(11) – 呼叫ANN建構工具 設定BPN隱藏層的神經元個數(Layer 1) 朝陽科技大學 李麗華 教授
Matlab操作(12) – 呼叫ANN建構工具 設定BPN輸出層所需的神經元個數(Layer 2) 朝陽科技大學 李麗華 教授
Matlab操作(13) – 呼叫ANN建構工具 設定網路所需的 相關架構參數後, 接著選擇“Train..”, 將Train Pattern輸入, 以便網路進行學習模擬 朝陽科技大學 李麗華 教授
Matlab操作(14) – 呼叫ANN建構工具 選擇Training所需的 input pattern 選擇target pattern 朝陽科技大學 李麗華 教授
Matlab操作(15) – 呼叫ANN建構工具 1.設定訓練次數 2.設定學習速率learning rate 3.待設定完各相關參數後, 即可選擇“Train Network” 進行網路的Training 朝陽科技大學 李麗華 教授
Matlab操作(16) – 呼叫ANN建構工具 網路訓練過程 朝陽科技大學 李麗華 教授
Matlab操作(17) – 呼叫ANN建構工具 匯入test pattern, 相關步驟如上所述 朝陽科技大學 李麗華 教授
Matlab操作(18) – 呼叫ANN建構工具 選擇所建構的網路模組後, 選擇“Simulate..”以進行模擬 朝陽科技大學 李麗華 教授
Matlab操作(19) – 呼叫ANN建構工具 1.選擇要進行測試的test pattern 2.進行模擬 朝陽科技大學 李麗華 教授
Matlab操作(20) – 呼叫ANN建構工具 2.將欲分析的輸出 結果Export 3.確定後,選擇“Export” 1.選擇“Export..” 朝陽科技大學 李麗華 教授
Matlab操作(21) – 呼叫ANN建構工具 按滑鼠左鍵二下, 以觀看其結果 朝陽科技大學 李麗華 教授