Transcript Project #2
Project #2 NN-based Heuristics
參考 Project#1 之分組,每 1~2 組合併為新的一組。
作業內容延續15-puzzle的解題
自行蒐集已知最佳解步數的 Training data (Instances)
對於每個 Instance S, 取得 input: u1(S), u2(S) 與 output: t(S)
設計並訓練類神經網路
以訓練完成的類神經網路進行 Project#1 之解題
請說明你的硬體規格(CPU/RAM/OS)
對於六個題目,使用訓練好的類神經網路為啟發函數,紀錄其
(1)所需步數,(2)解題時間,(3)完成時所存放的節點數(OPEN/CLOSE/SUM)
書面報告格式:
題目說明、介紹所使用的NN架構及參數、實驗結果、結果討論、作業心得
須繳交Word(2003)檔案
助教賴弘文(5963)
作業 Demo 時間 6/8 7:00 p.m~9:00 p.m (逾期不候)
六個題目
0~14為數字方格,15為空格
各方塊 Ni 之目標位置為
自行蒐集已知最佳解步數的訓練資料
提示(一),擴充 Training Instances
設計一道題型,假設其最佳解為 20 steps.
即相當於獲得 20 個已知最佳解步數的 instances
提示(二),15-Puzzle 之平均解題步數
經研究導出,15-Puzzle 之平均解題步數為 40 steps
提示(三),15-Puzzle 題型 N 有解之條件必需 S(N) 為偶數
取得 input: u1(S), u2(S) 與 output: t(S)
Input Features v1(S), v2(S),
Output Values h*(S)
類神經網路正規化[0,1]
u1(S) = v1(S)/52.83
u2(S) = v2(S)/31
t(S) = h*/50
• hNN(S) = a(S)
* 50
設計並訓練類神經網路
Hidden Layer 1~2 層即可,例如
2-4-1 或 2-3-3-1
每個 Nero 皆使用 bias 較易收歛
亦即上層加一個 constant 1 的特別輸出值過來
使用 sigmoid 作為 squash function
亦可嚐試更改對應範圍並改用 tanh function 效果會更好
Learning Rate h = 0.01~0.2
這只是一般建議值
Training Data/ Test Data
可將 1/3 的已知資料作為 test data (其餘為 training data)
訓練完畢後,驗證訓練結果在兩組資料間的偏差
以訓練完成的類神經網路進行 Project#1 之解題
對每個 State 計算
u1(S) = v1(S)/52.83
u2(S) = v2(S)/31
使用類神經網路取得
a(S)
hNN(S) = a(S) * 50
計算 evaluation function
f(S) = g(S) + hNN(S)
不必取整數