我一直在嘗試使用'深度Q學習'來構建模型,其中我有大量的操作(2908)。在使用標準DQN: (https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf)取得了一些有限的成功之後,我決定做更多的研究,因爲我認爲行動空間太大而無法進行有效的探索。Keras中的策略梯度
我這時才發現本文:https://arxiv.org/pdf/1512.07679.pdf,他們使用一個演員,評論家模型和政策漸變,然後帶我到:https://arxiv.org/pdf/1602.01783.pdf,他們利用政策梯度,以獲得更好的結果的話,DQN整體。
我發現他們已經在Keras,https://yanpanlau.github.io/2016/10/11/Torcs-Keras.html和https://oshearesearch.com/index.php/2016/06/14/kerlym-a-deep-reinforcement-learning-toolbox-in-keras/實施策略梯度的幾個網站,但我很困惑它們是如何實現的。在前者中(當我閱讀論文時),似乎不是爲演員網絡提供輸入和輸出對,而是爲所有權重提供漸變,然後使用網絡來更新它,而在後者中他們只是計算一個輸入輸出對。
我只是困惑自己嗎?我是否應該通過提供輸入 - 輸出對並使用標準的「適合」來訓練網絡,還是我必須做一些特殊的事情?如果是後者,我怎麼用Theano後端來做? (上面的例子使用張量流)。
任何幫助將是偉大的!
你見過https://github.com/matthiasplappert/keras-rl? –
不投入狀態動作對的一個原因是,如果您有大量動作需要很長時間。相反,讓網絡一次預測所有行爲的價值,然後做出你的行動選擇通常很有用 – user3235916