【强化学习】Q-Learning
目錄
- Q-Learning(off-policy)
- 概述
- 算法流程
- Q-Learning vs Sarsa
- 小結
強化學習筆記,內容來自 劉建平老師的博客
Q-Learning(off-policy)
概述
? 關鍵詞: 時序差分、model-free、off-policy、?-greedy、價值迭代
? 給定強化學習的5個要素:狀態集S, 動作集A, 即時獎勵R,衰減因子γ, 探索率?, 求解最優的動作價值函數q?和最優策略π?
? 通過價值函數的更新,來更新策略,通過策略來產生新的狀態和即時獎勵,進而更新價值函數。一直進行下去,直到價值函數和策略都收斂。
? 首基于狀態S,用??greedy策略選擇到動作A,然后執行動作A,得到獎勵R,并進入狀態S′,此時如果是Sarsa,會繼續基于狀態S′,用??greedy策略選擇A′,然后來更新價值函數。但是Q-Learning則不同。對于Q-Learning,它基于狀態S′,沒有使用??greedy策略而是使用貪婪策略選擇A′,也就是說,選擇使Q(S′,a)最大的a作為A′來更新價值函數而不存在探索的可能:
?
off-policy:
? 價值函數的更新和新動作的選擇使用兩個不同的策略policy,Q-learning按照ε-greedy策略選擇動作、按照貪婪greedy策略更新 價值函數,即更新價值函數的公式中用的A‘ 是貪婪策略選擇的而不是ε-greedy。這是Q-learning與Sarsa的本質區別。
?
算法流程
輸入:迭代輪數T、狀態集S、動作集A、步長α、衰減因子γ、探索率?
輸出:所有的狀態和動作對應的價值Q
? 1. 隨機初始化所有的狀態和動作對應的價值Q,終止狀態的Q初始化為0
? 2. for i in [ 1, T ]:
? a)初始化S為當前序列的第一個狀態
? b)用ε-greedy策略在當前狀態S選擇出動作A
? c)執行動作A,由環境得到新狀態S’ 和獎勵R
? d)按公式更新價值函數
? e)前進一步:S = S’
? f)if S’是終止狀態,break;else 跳回步驟b
?
Q-Learning vs Sarsa
? Q-Learning直接學習的是最優策略,而Sarsa在學習最優策略的同時還在做探索。這導致在學習最優策略的時候,如果用Sarsa,為了保證收斂,需要制定一個策略,使??greedy策略的超參數?在迭代的過程中逐漸變小。Q-Learning沒有這個煩惱。
另外一個就是Q-Learning直接學習最優策略,但是最優策略會依賴于訓練中產生的一系列數據,所以受樣本數據的影響較大,因此受到訓練數據方差的影響很大,甚至會影響Q函數的收斂。Q-Learning的深度強化學習版Deep Q-Learning也有這個問題。
在學習過程中,Sarsa在收斂的過程中鼓勵探索,這樣學習過程會比較平滑,不至于過于激進,導致出現像Q-Learning可能遇到一些特殊的最優“陷阱”。比如經典的強化學習問題"Cliff Walk"。
在實際應用中,如果是在模擬環境中訓練強化學習模型,推薦使用Q-Learning,如果是在線生產環境中訓練模型,則推薦使用SARSA。
?
小結
? 對于Q-Learning和Sarsa這樣的時序差分算法,對于小型的強化學習問題是非常靈活有效的,但是在大數據時代,異常復雜的狀態和可選動作,使Q-Learning和Sarsa要維護的Q表異常的大,甚至遠遠超出內存,這限制了時序差分算法的應用場景。在深度學習興起后,基于深度學習的強化學習開始占主導地位。
總結
以上是生活随笔為你收集整理的【强化学习】Q-Learning的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【强化学习】Sarsa 和 Sarsa(
- 下一篇: 【强化学习】DQN及其延伸算法