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)

不必取整數