2012-12-18 25 views
2

我創建了一個具有2個輸入節點,4個隱藏節點和3個輸出節點的神經網絡。初始權重在-1到1之間是隨機的。我使用反向傳播方法用TD錯誤更新網絡。但是,表現並不好。如何用神經網絡實現Q-learning?

我想知道,問題可能出在哪裏?
1.是否需要偏置節點?
2.是否有資格追蹤?

如果任何人都可以提供我任何示例代碼,我非常感謝。

+0

我會說4個隱藏節點對於3個輸出節點來說很少,我建議絕對最小值爲10.它顯然取決於您想要學習多少/複雜功能。我非常確定偏見節點只能被異常省略。 – Dukeling

回答

0

我們需要更多信息。什麼是問題域。什麼是輸入?什麼是輸出?

RL可能需要很長時間才能進行訓練,並且根據您的訓練方式,可能會在訓練過程中從好到好到不好。因此,你應該在學習過程中畫出你的經紀人的表現,而不僅僅是最終結果。

你總是應該使用偏置節點。資格痕跡?可能不會。

2

是的,你應該包括偏見節點,是的你應該使用資格痕跡。偏置節點只提供一個額外的可調參數。按照Sutton和Barto的書(免費在線)所述,把神經網絡想象成一個「函數逼近器」。如果神經網絡具有參數theta(一個包含網絡中所有權重的向量),那麼Sarsa更新只是(使用LaTeX符號):

\ delta_t = r_t + \ gamma * Q(s_ {t + 1},a_ {t + 1},\ theta_t)-Q(s_t,a_t,\ theta_t)

\ theta_ {t + 1} = \ theta_t + \ alpha * \ delta_t * \ frac {\ partial Q (s,a,\ theta}} {\ partial \ theta}

這是任何函數逼近器Q(s,a,\ theta),它通過調整它的參數來估計Q(s,a) 。

但是,我必須問你爲什麼這樣做。如果你只是想獲得Q學習真正運作良好,那麼你應該使用傅立葉基礎,而不是一個神經網絡:

http://all.cs.umass.edu/pubs/2011/konidaris_o_t_11.pdf

如果你真的想使用RL神經網絡,那麼你應該使用自然的演員 - 評論家(NAC)。 NAC遵循所謂的「自然梯度」,這是由Amari開發的專門用於加速使用神經網絡進行學習的「自然梯度」,並且它使得巨大的差異成爲可能。