55

我知道前饋神經網絡的基礎知識,以及如何使用反向傳播算法訓練它們,但是我正在尋找一種算法,而不是我可以用來在線訓練ANN以進行強化學習。例如,cart pole swing up問題是我想用ANN解決的問題。在那種情況下,我不知道應該怎樣控制鐘擺,我只知道我離理想位置有多近。我需要根據獎勵和懲罰讓ANN學習。因此,監督學習不是一種選擇。使用增強學習訓練神經網絡

另一種情況類似於snake game,其中反饋延遲,並限於目標和反目標,而不是獎勵。

我能想到的第一種情況的一些算法,如爬山或遺傳算法,但我猜他們都會很慢。它們也可能適用於第二種情況,但速度非常慢,並且不利於在線學習。

我的問題很簡單:是否有一個簡單的算法來訓練具有強化學習的人工神經網絡?我主要對實時獎勵情況感興趣,但是如果有基於目標的情況的算法可用,甚至更好。

+1

好問題,我在想幾乎完全一樣的東西,在我的情況下神經網絡是經常性的。關鍵之一是你正在談論2種不同的學習算法。除非您有辦法解決這些問題,否則您不能將兩種不同的學習算法應用於同一問題而不會導致衝突。 –

回答

24

上有一些課題研究論文:

而且一些代碼:

這些只是一些關於該主題的頂級谷歌搜索結果。前兩篇論文看起來很不錯,雖然我沒有親自閱讀。如果您在Google學術搜索上進行快速搜索,我想您會發現更多有關強化學習的神經網絡信息。

+0

第三個鏈接提到了一些關於Q-learning的內容。這適用於推車問題嗎? –

+0

它似乎是適用的,因爲它允許您比較可用操作的預期效用,而無需使用環境模型。所以,如果你正在用硬件來做一個實際的推車問題,那麼這將會很有幫助。有關Q學習的更多詳細信息,請參閱:http://www.applied-mathematics.net/qlearning/qlearning.html – Kiril

+2

Q學習是否涉及有限的一組操作?理想的手推車問題將會有一連串的行動。那是問題嗎? –

7

如果將導致獎勵r的輸出反向傳播到網絡r次,則您將按比例增強網絡的獎勵。這不直接適用於負面獎勵,但我可以想到兩種解決方案會產生不同的效果:

1)如果您在rmin-rmax範圍內有一組獎勵,請將其重新調整爲0-(rmax-rmin),以使它們成爲所有非負面。獎勵越大,創建的鋼筋就越強。

2)對於負面報酬-r,反向傳播隨機輸出r次,只要它與導致負面報酬的那個不同。這不僅會加強理想的產出,而且會擴散或避免不良的產出。

+0

有趣。我想知道這是如何適用於延遲獎勵。我猜測這將有助於指定任何不是目標的東西作爲一個小的負面報酬。 –

+0

@Kendall Frey:對於可以更好地處理正常神經網絡延遲的神經網絡,請參閱[長期短期記憶](https://en.wikipedia.org/wiki/Long_short_term_memory)([Youtube視頻](http: /www.youtube.com/watch?v=izGl1YSH_JA)),或參見[分層時間記憶](https://en.wikipedia.org/wiki/Hierarchical_temporal_memory)([Youtube視頻](http://www.youtube .COM /手錶?ν= 48R-IeYOvG4))。 – HelloGoodbye

+3

爲什麼要重新調整那樣的獎勵呢?他們是否需要重新縮放?通過這樣做,獎勵'rmin'在重新縮放之後變爲'0',所以應該是獎勵的結果將對網絡沒有強化效果。 – HelloGoodbye