Neural-Networks

使用神經網絡作為函數逼近的 Q 學習

  • March 4, 2016

我正在嘗試使用神經網絡來近似 Q-learning 中的 Q 值,如Questions about Q-Learning using Neural Networks。正如第一個答案中所建議的,我對輸出層使用線性激活函數,而我仍在隱藏層中使用 sigmoid 激活函數(2,儘管我可以稍後更改)。我還使用了一個 NN,它為每個動作返回一個輸出按照建議。

然而,對於簡單的推車桿平衡問題,該算法仍然存在分歧。所以,我擔心我的 Q 更新是錯誤的。初始化後,我在每個步驟中所做的如下:

  • 計算對所有動作使用 NN 的前向傳播。
  • 選擇一個新動作,, 登陸一個新的狀態.
  • 計算對所有動作使用 NN 的前向傳播。
  • 將目標 Q 值設置為:

僅針對當前操作,, 同時設置為其他州。注意,我認為這是問題所在。

  • 將誤差向量設置為
  • 通過 NN 反向傳播誤差以更新權重矩陣。

誰能指出我哪裡出錯了?

此外,您認為我是否應該在輸入層和第一個隱藏層(即用於 sigmoid 函數)中包含一個偏差項?它會有所作為嗎?

非常感謝您的幫助。如果需要,我可以幫助澄清問題或共享代碼。

你的目標應該只是

.

請注意,您的錯誤術語(這是正確的)然後可以重寫為

這是更新公式中括號內的術語。這將在學習期間乘以您的 NN 學習率和其他反向傳播項,然後添加到之前的權重,就像更新公式。

引用自:https://stats.stackexchange.com/questions/200006

comments powered by Disqus