C05-BPN之matlab操作-更新版.ppt

Download Report

Transcript C05-BPN之matlab操作-更新版.ppt

-Artificial Neural NetworkMatlab操作介紹
-以類神經網路BPN Model為例
朝陽科技大學
資訊管理系
李麗華 教授
資料準備說明
•要開始運用ANN之前,首要條件就是要準備 一組
資料(a set of data)。這組資料我們通常會再把它分
成二份,即訓練用的資料(training data)和測試用
(testing data )的資料。
•在選取training data 和 testing data最常見的分法即為
80/20法則。也就是說,若我們收集到1000筆資料,
那可以選其中800筆為training data,另外200筆拿來
測訓練好的ANN網路。資料的選法可以採隨機或
挑選能能均勻代表各型樣的資料。
朝陽科技大學 李麗華 教授
2
資料準備說明
•要訓練ANN前應先依解決的議題,準備好四組檔案:
假設其檔名分別命名如下:
training data 及 Training data的Target (即訓練用的答案T)
Test data, Test 的Target檔(即測試用的答案T).
•記得每一筆資料須先轉置成column型式(直式)
再匯入matlab.
以下先以 數字之圖形型樣(pattern) 為例來介紹資料
準備及轉置的說明.
1.Input Pattern設計
2.Input Pattern轉換
3.Target Pattern設計
4.Test Pattern設定
朝陽科技大學 李麗華 教授
3
1.以數字辨識為例Pattern的設計
1, 2, 3
4, 5, 6
7, 8, 9
0
朝陽科技大學 李麗華 教授
4
2. 將每個數字的Pattern做轉換
轉換步驟 1
本例以 Word 設計
接著要將10個
patterns 做轉換
朝陽科技大學 李麗華 教授
5
2. Pattern轉換(續)
轉換步驟 2
•將每一
個pattern
表格選取
後,將表格
去除,並轉
成文字形
式
朝陽科技大學 李麗華 教授
6
Pattern轉換(續)
轉換步驟 3
去除每個數字
型樣的表格
朝陽科技大學 李麗華 教授
7
Pattern轉換(續)
轉換步驟 4
去除表格
朝陽科技大學 李麗華 教授
8
Pattern轉換(續)
轉換步驟 5
將每一個pattern轉為一列(即一筆輸入資料), 如下例
01100
00100
00100
01100 00100 00100 00100 00100
00100
00100
朝陽科技大學 李麗華 教授
9
Pattern轉換(續)
所以10個數字pattern就產生10列資料(每一橫
列為一筆training data )
1 的data pattern
2 的data pattern
:
:
:
0 的data pattern
朝陽科技大學 李麗華 教授
10
Pattern轉換(續)
• 因matlab讀入資料是以直式(column by column)讀取, 所以在匯入
matlab前,須將每一筆data pattern轉為直式.
• 轉成直式有2種方法,任選一種套用即可。
方法一 (以Excel為工具)
•
•
•
•
將先前的10列資料,先行存成文字檔(*.txt)
再利用Excel, 開啟該文字檔
利用複製轉貼成直式
存成文字檔並命名為 trainset.txt
方法二 (以Matlab為工具)
• 直接利用matlab工具,採用匯入方式轉換data pattern
• 於Matlab的命令列中, 輸入 檔名‘
即可進行轉換,
例如:欲匯入一個train pattern,其檔名為trainset.txt
, 則在Matlab上輸入 trainset’
朝陽科技大學 李麗華 教授
11
Pattern轉換成直式-用Excel
<方法一>
選取所有data patterns並選
“複製”, 接著選用”選擇性貼
上”
(參見下面二頁)朝陽科技大學
李麗華 教授
12
Pattern轉換成直式-用Excel
朝陽科技大學 李麗華 教授
<方法一>
13
Pattern轉換成直式-用Excel <方法一>
朝陽科技大學 李麗華 教授
14
Pattern轉換成直式-用Excel
<方法一>
數字1的
data
pattern
資料
已轉
成直
式
朝陽科技大學 李麗華 教授
15
Pattern轉換成直式-用Excel
<方法一>
存成文字檔
並選用tab
格式
朝陽科技大學 李麗華 教授
16
Pattern轉換成直式—用Matlab
1. 先利用File功能,
將training pattern
檔,匯入Matlab中
朝陽科技大學 李麗華 教授
<方法二>
2. 再輸入此命令,
Trainset’
以便轉換pattern
17
3. Target Pattern設計(1)
1.依據先前所設計的辨識1,2,..,0的阿拉伯數字,依照
training pattern的順序來製作其答案的檔案,即
target資料.
• 以數字辨識為例,我們可以設計output有10個節點,
令第1個輸出節點(output node Y1)辨識數字0的結果,
第2個輸出節點(output node Y2)代表辨識數字2的結果,
第3個輸出節點(output node Y3)來代表辨識數字3的結
果,以此類推
2.依每個training pattern的順序來建立target檔. 以下
說明配合前面設計的10個input patterns來設計target
檔方法如下.
朝陽科技大學 李麗華 教授
18
3. Target Pattern設計(2)
Target Pattern
Input Pattern
0 1 2 3 4 5 6 7 8 9
1
0 1 0 0 0 0 0 0 0 0
2
0 0 1 0 0 0 0 0 0 0
3
0 0 0 1 0 0 0 0 0 0
4
0 0 0 0 1 0 0 0 0 0
5
0 0 0 0 0 1 0 0 0 0
.
.
.
。
.
.
.
配合前面
有10個
training data,
所以這裡
也會有10個
target
data
當然target資料也是要再轉成直式才能匯入matlab.
朝陽科技大學 李麗華 教授
19
3. Target Pattern設計(3)
Target data 轉成直式,再匯入matlab.
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
•上述我們已經準備了二組資料了,
即要用來 training ANN的 training
data和 target data.
•接下來要準備另二組資料,做為
檢驗ANN是否有訓練好的測試資料
即 test data 和 test的 target data.
朝陽科技大學 李麗華 教授
20
4. Test Pattern設計
ANN網路訓練好時,須要檢測網路的準確性,所以
另外要再準備test patterns來檢驗網路的成效.
資料的準備及轉置方法同前面所述
1
{01100 00100 00100 00100 01110}
3
{01110 00010 01110 00010 01110}
9
{01110 01010 01110 00010 00100}
0
{00100 01010 01010 01010 00100}
朝陽科技大學 李麗華 教授
21
Matlab操作(1)– 先匯入所需資料
開啟MatLab軟體, 先載入資料後, 我們再開啟外掛的nntool程式來跑.
匯入所需資料:
1.Training data
2.Target data
朝陽科技大學 李麗華 教授
22
Matlab操作(2) - 匯入所需資料
於Train Pattern所在位置,
點選該檔案,匯入matlab
朝陽科技大學 李麗華 教授
23
Matlab操作(3) - 匯入所需資料
選擇“Next”
朝陽科技大學 李麗華 教授
24
Matlab操作(4)- 匯入所需資料
選擇“Finish”
朝陽科技大學 李麗華 教授
25
Matlab操作(5) – 呼叫ANN建構工具
於命令列打入 “nntool”
以呼叫類神經網路模組
朝陽科技大學 李麗華 教授
26
Matlab操作(6) – 呼叫ANN建構工具
選擇“Import”,
將所需資料匯入
朝陽科技大學 李麗華 教授
27
Matlab操作(7) – 呼叫ANN建構工具
將二種資料分別做設定
1.將Train Pattern設定為“Input”型式
2.將Target Pattern設定為Targets型式
朝陽科技大學 李麗華 教授
28
Matlab操作(8) – 呼叫ANN建構工具
匯入的資料
待所需資料匯入後,
即可選擇“New Network”
,以建構類神經網路模組
朝陽科技大學 李麗華 教授
29
Matlab操作(9) – 呼叫ANN建構工具
設定網路的
輸入資料來源
朝陽科技大學 李麗華 教授
30
Matlab操作(10) – 呼叫ANN建構工具
自訂網路名稱
選用網路model
朝陽科技大學 李麗華 教授
31
Matlab操作(11) – 呼叫ANN建構工具
設定BPN隱藏層的
神經元個數(Layer 1)
請修改成隱藏層要的節點數
朝陽科技大學 李麗華 教授
32
Matlab操作(12) – 呼叫ANN建構工具
設定BPN輸出層
所需的神經元個數(Layer 2)
請修改成輸出層要的節點數
註:最新版的Matlab不用設
朝陽科技大學 李麗華 教授
33
Matlab操作(13) – 呼叫ANN建構工具
設定網路所需的
相關架構參數後,
接著選擇“Train..”,
將Train Pattern 輸入,
以便網路進行學習 模擬
朝陽科技大學 李麗華 教授
34
Matlab操作(14) – 呼叫ANN建構工具
選擇Training所需的
input pattern
選擇target pattern
朝陽科技大學 李麗華 教授
35
Matlab操作(15) – 呼叫ANN建構工具
1.設定訓練次數
2.設定學習速率 learning rate
3.待設定完各相關參數後,
即可選擇“Train Network”
進行網路的Training
朝陽科技大學 李麗華 教授
36
Matlab操作(16) – 呼叫ANN建構工具
網路訓練過程
朝陽科技大學 李麗華 教授
37
Matlab操作(17) – 呼叫ANN建構工具
匯入test pattern,
相關步驟如上所述
朝陽科技大學 李麗華 教授
38
Matlab操作(18) – 呼叫ANN建構工具
選擇所建構的網路模組後,
選擇“Simulate..”以進行模擬
朝陽科技大學 李麗華 教授
39
Matlab操作(19) – 呼叫ANN建構工具
1.選擇要進行測試的test pattern
2.進行模擬
朝陽科技大學 李麗華 教授
40
Matlab操作(20) – 呼叫ANN建構工具
2.將欲分析的輸出
結果Export
3.確定後,選擇“Export”
1.選擇“Export..”
朝陽科技大學 李麗華 教授
41
Matlab操作(21) – 呼叫ANN建構工具
按滑鼠左鍵二下,
以觀看其結果
此處請剪下輸出結果,
貼到Excel做正確率判斷
朝陽科技大學 李麗華 教授
42