首先放視頻鏈接:李宏毅老師深度強化學習課程——Q-Learning
Q-Learning簡介
Q-Learning是一種value-based的方法,在這種方法中,不是直接學習policy,而是利用值函數評價現在行爲的好壞,即AC算法中的critic。比如state value function,表示在當前策略下,到了某一狀態s,之後能獲得的累計收益。
兩種更新方法(MC和TD)
- Monte-Carlo方法
讓actor和環境交互,計算狀態後的累計收益,需要episode結束後才能計算。現在的DRL融合了深度神經網絡,所以不需要每個s都經歷過,也能給出大概的V值。
- Temporal-difference方法
這種方法不需要遊戲玩到結束。只要獲得某一個transition,,就可以根據公式進行更新。其實就是兩個state之間相差一個。也就是與的差可以作爲loss。
-
MC和TD的優缺點
MC需要推演完整個episode,而且由於直接計算的累計收益,由於隨機性,不同時候得到的可能會有很大差別,這樣的隨機變量方差很大。TD方法的隨機性在於,所以方差會小。但是V值本身可能不準,所以是有偏估計。
接下來放一個示例,Sutton課程裏採用的,能後比較好的理解MC和TD
由狀態值函數到動作值函數
state-action value function ,表示狀態s時採取動作a後的累計收益。
接下來是Q-Learning的更新原理,爲什麼Q值能夠變大。
for all state s
感覺不需要太多關注上面的式子,只需要直觀的去理解一下就好。
DRL框架設計(target network好神奇的想法)
loss的設計和之前一樣,只不過targe network delay了一下,牛批。
explore 問題
-
epsilon greedy (的概率隨機,隨着訓練進行而遞減)
- Boltzmann exploration(指數後求概率)
Replay buffer
簡單來講就是把過程中的transition存到replay buffer中,然後每次取出一個batch,取出的transition其實是不同policy下的。這種方法和深度學習中常見技巧比較類似。這裏有一個問題,mc的方法可以用replay buffer嗎?