|
PCNeuron
常見問答集
Edit by 葉怡成
PH.D
1.PCNeuron
的三種版本有何差異?
|
| 1.
教育版: 除下列二點外與「標準版」相同:
1.不提供將網路轉換成標準C
語言程式的功能。
2.網路尺度受每層
10 個處理單元的限制。
2. 標準版:
標準系統。
3. 專業版:
除標準版外, 外加系統原始程式。
如需「標準版」或「專業版」,
請洽 中崗科技:
•地址:
台北市 106 和平東路二段
259 號 9 樓
•TEL:
02-7045535
•FAX:
02-7541785
|
| 2.PCNeuron
的三種使用模式:
網路訓練、網路驗證、網路應用有何差異? |
| PCNeuron 有三種操作模式:
1.訓練網路
(參考圖 5-17)
將範例加以前處理得到訓練範例與測試範例,
並設定網路參數後, 執行網路訓練過程,
即利用訓練範例 (即系統輸入與輸出所組成的資料)
建立系統模型 (輸入與出入間的關係)。
並在訓練過程中每執行若干個學習循環即測試系統模型的誤差一次,
以判讀誤差收斂情形。訓練完成後再加以後處理,
即將執行網路所得的輸出檔加以分析。當建立的網路其精確性不令人滿意時,
可以調整網路參數, 並重新訓練網路,
以改進網路精確性。
┌─────┐
┌────┐ ┌─────┐
┌─────┐
│未學習網路│+│訓練範例│+│學習演算法│─→│已學習網路│(加權值)
└─────┘
└────┘ └─────┘
└─────┘
┌─────┐
┌────┐ ┌─────┐
┌────────┐
│學習中網路│+│測試範例│+│回想演算法│─→│學習中網路正確度│
└─────┘
└────┘ └─────┘
└────────┘
圖
5-17 操作模式: 訓練網路。
2.驗證網路
(參考圖 5-18)
當建立精確性令人滿意的網路後,
為了進一步確認系統的可靠性,
可收集更多的範例, 稱之為「驗證範例」,
這些範例既有輸入向量,
也有輸出向量。所謂驗證一個網路即將「驗證範例」的輸入向量輸入到已訓練網路得到其推測輸出值,
再與「驗證範例」的目標輸出值作比較,
以確認系統的可靠性。
┌─────┐
┌────┐ ┌─────┐
┌────────┐
│已學習網路│+│驗證範例│+│回想演算法│─→│已學習網路正確度│
└─────┘
└────┘ └─────┘
└────────┘
圖
5-18 操作模式: 驗證網路。
3.應用網路
(參考圖 5-19)
當建立準確度令人滿意的網路後,
即可應用此網路於「未知資料」的處理。所謂的「未知資料」是指只有輸入向量,
而無輸出向量的資料。所謂「處理」是指將「未知資料」的輸入向量輸入到已訓練網路得其推測輸出值,
達到推估、預測、決策、診斷的目的。
┌─────┐
┌────┐ ┌─────┐
┌─────────┐
│已學習網路│+│未知資料│+│回想演算法│─→│未知資料推論輸出值│
└─────┘
└────┘ └─────┘
└─────────┘
圖
5-19 操作模式: 應用網路。
|
| 3.PCNeuron
如何作批次執行?
(嘗試多種網路架構與參數時有需要) |
| 由於建構一準確的類神經網路常須以嘗試錯誤的方式優化網路,
因此常需執行多次的網路訓練過程。優化的方法包括:
1.網路訓練:
選擇適當的學習循環次數。
2.網路設定: 選擇適當的網路模式與網路參數
(如學習速率、隱藏層處理單元數目等)。
3.範例取樣: 選擇適當方法
(隨機取樣法、循序取樣法)
將範例分成訓練範例與測試範例。
4.範例處理: 選擇適當方法
(機率對映法、區間對映法)
將輸出入變數值映射到合理的值域。
5.範例表現: 依變數種類
(邏輯、數值、有序分類、無序分類)
選擇適當的範例表現方式
(單神經元編碼、多神經元編碼)。
6.範例收集: 選用數目充份、分佈均勻、數據正確的範例。
7.系統模式輸出入決定:
選擇適當的系統模式輸入變數、輸出變數。當網路相當大時,
一次網路訓練過程即可能耗時數小時。因此為了提高優化網路的效率,
可採「批次執行」的方式。其原理甚為簡單,
因為本軟具模組化結構,
每一網路模式本身均有一執行檔,
只要準備好三個基本的輸入檔:
1.訓練範例檔
(pcn.tra)
2.測試範例檔
(pcn.tes)
3.網路參數檔
(pcn.net)
即可利用
DOS 中 batch 檔的方式,
以「批次執行」的方式執行多次網路訓練過程。
舉一例如下:
(1) 假設
concret1.ori 存於 c:\pcn\exam
目錄。
(2) 啟動
PCNeuron 系統, 利用
[File/Load] 功能將
concret1 專案載入
c:\pcn\work 目錄。
(3) 利用「資料前處理
(Pre)」功能產生
pcn.sta, pcn.tra, pcn.tes 等
檔案。
(4) 利用
[File/Save] 功能存回
c:\pcn\exam
目錄。
(5) 利用「網路設定
(Build)」功能產生
pcn.net 檔。
(6) 將
pcn.net 檔拷貝為
pcn_a.net 與 pcn_b.net, 並將其中的網路參數
, 如學習速率、隱藏層處理單元數目等,
改為所要嘗試的參數。
(7) 請建一如下批次檔
(假設檔名 mybatch.bat):
| copy c:\pcn\exam\concret1.*
c:\pcn\work\pcn.*
copy pcn_a.net pcn.net
bpn1hid
copy pcn.cvr pcn_a1.cvr
copy pcn.res pcn_a1.res
copy pcn.wei pcn_a1.wei
copy c:\pcn\exam\concret1.* c:\pcn\work\pcn.*
copy pcn_a.net pcn.net
bpn2hid
copy pcn.cvr pcn_a2.cvr
copy pcn.res pcn_a2.res
copy pcn.wei pcn_a2.wei
copy c:\pcn\exam\concret1.* c:\pcn\work\pcn.*
copy pcn_b.net pcn.net
bpn1hid
copy pcn.cvr pcn_b1.cvr
copy pcn.res pcn_b1.res
copy pcn.wei pcn_b1.wei
copy c:\pcn\exam\concret1.* c:\pcn\work\pcn.*
copy pcn_b.net pcn.net
bpn2hid
copy pcn.cvr pcn_b2.cvr
copy pcn.res pcn_b2.res
copy pcn.wei pcn_b2.wei
|
此一批次檔一共可執行四次網路訓練過程:
•拷貝
pcn_a.net 為 pcn.net 檔,
並用一層倒傳遞網路執行
•拷貝
pcn_a.net 為 pcn.net 檔,
並用二層倒傳遞網路執行
•拷貝
pcn_b.net 為 pcn.net 檔,
並用一層倒傳遞網路執行
•拷貝
pcn_b.net 為 pcn.net 檔,
並用二層倒傳遞網路執行
(8) 在
DOS 下執行 mybatch.bat 批次檔,
則可執行四次網路訓練過程,
得
四組網路輸出檔
(pcn_a1.*, pcn_a2.*, pcn_b1.*, pcn_b2.*)。
|
4.PCNeuron 如果不收斂或異常怎麼辦?
(偵錯與除錯)
|
| 如果不收斂,
首先應判斷是否為軟體操作錯誤造成,
例如輸入檔格式不對,
網路參數錯誤等。本軟體的操作偵錯步驟為逐一檢查檔案內容,
可使用本軟體中的 View 功能啟動 DOS下的 edit
程式,
或用其它以字元為基礎的文書處理軟體 (如
PE2), 或用試算表軟體 (如 Excel)來檢查。檢查的順序
如下:
1.原始資料檔:
觀察是否有將原始資料檔
(pcn.ori)正確載入到工作次目錄下
(通常為 c:\pcn\work)。
2.範例統計檔:
觀察統計檔 (pcn.sta) 之統計值
(最小值、最大值等) 是否正常。因為當原始範例檔中有不當之資料時
(例如缺少或多出一數字),將使範例統計結果發生顯著異常。例如您預估某變數的最大值不過
100,統計結果卻高達
20000, 那麼很可能數據有缺漏或誤植,
須再詳加檢查。
3.主要輸入檔:
網路執行檔的主要輸入檔有三:
(1)訓練範例檔
(pcn.tra)
(2)測試範例檔
(pcn.tes)
(3)網路參數檔
(pcn.net)
觀查其格式是否正確。
註:
觀查網路參數檔的另一個好方法為用本軟體中的
Build 功能, 並在Edit
Type 中選 Modify net
parameters, 如此可直接觀察各參數的意義、建議值、設定值,
免去查手冊的不便, 是一個較方便的方法。
使用者常見的操作錯誤如下:
1.重復啟動
PCNeuron
現象:
在啟動 PCNeuron 時出現
program too big to fit in memory 訊息,
無法啟動 PCNeuron。
原因:
在未使用 [File/Exit] 功能關閉
PCNeuron 下, 使用
[File/DOS]功能跳到 DOS, 並再次啟動
PCNeuron,當累積到一定次數,
將耗盡記憶體而無法啟動
PCNeuron。
解決:
在 DOS 下用
exit 返回尚未關閉的
PCNeuron, 使用 [File/Exit]功能關閉
PCNeuron。重復這個操作,
直到在 DOS 下用
exit 不會返回 PCNeuron, 此時即可確定已無未關閉之
PCNeuron。然後再重新啟動
PCNeuron 即可。
2.未從
pcn\work 次目錄返回
PCNeuron
現象:
執行 PCNeuron 功能時無反應。
原因:
在未關閉 (exit) PCNeuron
下, 使用
[File/DOS] 功能跳到 DOS,在
DOS 下用 exit 返回尚未關閉的
PCNeuron 時, 不是從
pcn\work次目錄返回
PCNeuron, 如此將造成系統在執行
PCNeuron 功能時, 找不到對應的執行檔
(每一功能本身均有一執行檔),因而無反應。
解決:
在 PCNeuron 中用
[File/DOS] 功能跳到 DOS,
在 DOS 下切換到pcn\work
目錄下, 再用
exit 返回尚未關閉的
PCNeuron。
3.檔案載入方法不正確
現象:
執行 PCNeuron 功能時反應不正常。
原因:
載入檔案時操作錯誤,
例如在 c:\pcn\exam 下有專案
concret1.*, 正確的載入方法為使用
[File/Load] 功能, 並輸入
c:\pcn\exam\concret1
注意不是
c:\pcn\exam\concret1.ori, 因為不需檔案附加名。
也不是 pcn\exam\concret1,
因為須指定磁碟名。
解決:
使用上述正確的載入方法。
4.分類型問題只用一個輸出處理單元
現象:
收斂過程中誤判率
(Error Rate) 從頭到尾都是
0.0000。
原因:
因為誤判率之定義為:
誤判率=
(範例總數 - 正判範例數)/範例總數
其中, 正判範例是指範例中,
其「推論輸出值」最大的輸出單元,與「目標輸出值」最大的輸出單元是同一個之範例。如果只用一個輸出處理單元,
誤判率當然從頭到尾都是
0.0000。
解決:
對二分類的分類型問題使用二個輸出處理單元,
{1,0} 代表第一類, {0,1}
代表第二類。
5.分類型問題的各分類的範例之比例不均衡
現象:
分類型問題其訓練範例誤判率很低,
測試範例誤判率很高。
原因:
在訓練範例中各分類的範例之比例不均衡,
例如某一類即佔了
90%, 將造成網路傾向猜是該分類,
而非真正學習分類規則。
解決:
增加比例太低的分類之範例,
或刪除比例太高的分類之範例,
使各分類的範例之比例相近。
6.應洗牌而未洗牌
現象:
訓練範例誤判率很低,
測試範例誤判率很高。
原因:
如果在分類型問題中,
訓練範例中輸出變數值連續數十個屬同一分類,
或在函數型問題中, 訓練範例中輸出變數值連續數十個具有相似值,
將降低網路訓練的效果。
解決:
利用「洗牌」將訓練範例次序隨機重排
(參考第 3-6 節)。
|
| 5.PCNeuron
的容量如何? |
| 問題的尺度受現有的軟硬體設備記憶容量的限制。以倒傳遞網路為例,
加權矩陣最佔記憶量,
加權矩陣的又分成權值與權值改變量二種,
因此, 如果有一層隱藏層,
輸入、隱藏、輸出層每層均有
N 個處理單元, 則需要2•(N•N+N•N)
= 2N2 個實數。如果
N=50, 則需要 10000 個實數,
每個實數佔 4 byte, 則需
40 Kbyte, 已接近 64 Kbyte
的極限。故 PCNeuron所能處理的最大網路以倒傳遞為例,
一層隱藏層時, 每層限
50 個處理單元; 二層隱藏層時,
每層限 40 個處理單元。 |
| 6.PCNeuron
的速度如何? |
| 問題的尺度受現有的軟硬體設備計算速度的限制。以倒傳遞網路為例,
執行時間
T
..................................(5-1)
PCNeuron 在
300 MHz 的 486 DX2-66 個人電腦上,
倒傳遞網路訓練模式下,
每秒所能處理的網路連結數為
10 萬根, 即速度為
10 萬 IPS
(Inter-connections Per Second)。以一層隱藏層,
每層 50 個處理單元,
500個訓練範例數, 1000 個學習循環為例,
執行時間約為

|
| 7.如果載入專案是以Excel文件方式建立(副檔名為﹒Xls),請問以何種資料轉移方式可完成建立以副檔名為ori或tra之載入資料進行網路測試。on
的速度如何? |
將xls檔案以普通文字檔儲存, 但要住意數字間要有空格, 且檔名的附加名必須依
PCNeuron的規定.
|
| 8.建立之圖檔資料又以何種方式轉出較能顯現出軟體測試網路之實際圖形? |
PCNeuron以DOS系統繪圖, 如要繪漂亮的圖可將相關檔案, 如pcn.res, pcn.cvr 載
入Excel, 在用Excel繪圖.
|
|