DQN(Deep Q learning)是指深度的Q learning,而甚麼是深度呢?
複習一下,Q learning有張Q表,而DQN即是把Q表換成卷積神經網路。
在FrozenLake中,Action只有4個,State有64種,但今天如果是比較複雜的遊戲呢? Action數量增加,State數量也會更著增加,這樣會導致Q Table暴脹,使Q learning無法將所有State的Q Value計算出來,要計算出來可能會花更久的時間甚至會發生記憶體不足的情況。
因此DQN解決了此問題。
DQN與Q learning不同的地方是DQN具有replay memory。
它的作用在於紀錄資料,一般我們訓練資料集希望是能隨機分散的,但強化學習的資料是有順序的,因此需要有replay memory來儲存資料,再利用隨機採樣的方式進行訓練,如此即可避免資料前後具有關練性。
初始化replay memory,並且容量為N,如果超過N,就捨棄掉第一筆。
初始化Q function
可以看到透過DQN學習後,機器人學會打磚塊了!
DQN可以減少訓練所需的數據量,並能應付更大的Action數量、State數量,且能達到不錯的效果。
Deep Q-learning (DQN) 原理說明
[機器學習 ML NOTE] Reinforcement Learning 強化學習(DQN原理)
深度強化學習當中加入Memory replay的原因和作用是什麼?
強化學習基礎David Silver筆記