Neural-Networks
使用神經網絡作為函數逼近的 Q 學習
我正在嘗試使用神經網絡來近似 Q-learning 中的 Q 值,如Questions about Q-Learning using Neural Networks。正如第一個答案中所建議的,我對輸出層使用線性激活函數,而我仍在隱藏層中使用 sigmoid 激活函數(2,儘管我可以稍後更改)。我還使用了一個 NN,它為每個動作返回一個輸出按照建議。
然而,對於簡單的推車桿平衡問題,該算法仍然存在分歧。所以,我擔心我的 Q 更新是錯誤的。初始化後,我在每個步驟中所做的如下:
- 計算對所有動作使用 NN 的前向傳播。
- 選擇一個新動作,, 登陸一個新的狀態.
- 計算對所有動作使用 NN 的前向傳播。
- 將目標 Q 值設置為:
僅針對當前操作,, 同時設置為其他州。注意,我認為這是問題所在。
- 將誤差向量設置為
- 通過 NN 反向傳播誤差以更新權重矩陣。
誰能指出我哪裡出錯了?
此外,您認為我是否應該在輸入層和第一個隱藏層(即用於 sigmoid 函數)中包含一個偏差項?它會有所作為嗎?
非常感謝您的幫助。如果需要,我可以幫助澄清問題或共享代碼。
你的目標應該只是
.
請注意,您的錯誤術語(這是正確的)然後可以重寫為
這是更新公式中括號內的術語。這將在學習期間乘以您的 NN 學習率和其他反向傳播項,然後添加到之前的權重,就像更新公式。