Q学习

维基百科,自由的百科全书
跳到导航 跳到搜索

Q-学习是强化学习的一种方法。Q-学习就是要記錄下学习過的政策,因而告诉智能体什么情况下采取什么行动會有最大的獎勵值。Q-学习不需要对环境进行建模,即使是对带有随机因素的转移函数或者奖励函数也不需要进行特别的改动就可以进行。

对于任何有限的馬可夫決策過程(FMDP),Q-学习可以找到一个可以最大化所有步骤的奖励期望的策略。[1],在给定一个部分随机的策略和无限的探索时间,Q-学习可以给出一个最佳的动作选择策略。

「Q」这个字母在强化学习中表示一个动作的品质(quality)。[2]

强化学习[编辑]

强化学习涉及一个智慧型代理人agent),一组「状态」和每个状态下的动作集合。通过执行一个行动,该智慧型代理人从一个状态转移到另一个状态。在一个特定的状态下执行一个动作时,智慧型代理人可以得到一个奖励。

智慧型代理人的目标是最大化其奖励的總和。这个潜在的奖励是所有未来可以拿到的奖励值的期望的加权和。

例如,假设现在你要上地铁,奖励就是你所花的时间的相反数。一种策略就是车门一开就往上挤,但是还有很多人要下车,逆着人流往上挤也会花费不少时间,这个时候你花的总时间可能是:

  • 0秒钟等待时间+15秒挤上去的时间

在接下来的一天,很巧合,你决定先让别人下车。虽然这个时候看起来等待的时间稍微增加了,但是下车的人也会下的更顺畅,这个时候你可能花的时间是:

  • 5秒等待时间+0秒挤上去的时间。

算法[编辑]

將Q表格的值初始化为零,每个单元會經過訓練而更新其值。

Q-學習演算法,主要內容為計算狀態與行為對應的品質函式

.

在演算法初始化階段,初始值為零(由設計者設計)。在時間時,環境的狀態為,智慧型代理人選擇一個行為,並且獲得獎勵,環境因為代理人的行為導致狀態改變為新的狀態,此時便可根據以下公式更新值。演算法的核心為簡單的利用過去與最近的權重平均值來迭代更新數值。

其中 代表從狀態 到狀態 所得到的獎勵值, 學習率()。 為衰減系數(),當 數值越大時,智慧型代理人便更加重視未來獲得的長期獎勵, 數值越小時,智慧代理人便更加短視近利,只在乎目前可獲得的獎勵。



实现[编辑]

Q-学习最简单的实现方式就是将獎勵值存储在一个表格(Q-table)中,但是这种方式受限于状态和动作空间的数目。

函数逼近[编辑]

Q-学习可以结合函数逼近。[3] 这使得在更大的状态空间中使用 Q-学习,即使状态空间是连续的。

一个解决方案是以使用人工神经网络来进行函数逼近。[4]。函数逼近的方法在一些问题中会有很好的加速效果,某些时候算法可以通过早期经验的总结可以在一些未出现的状态中依然可以有很好的效果。

变种[编辑]

深度Q-学习[编辑]

这是一个由DeepMind公司开发的利用深度卷积神经网络来进行Q-学习的算法。在使用非线性函数逼近的时候,强化学习经常会有不稳定性或者发散性:这种不稳定性来于当前的观测中有比较强的自相关。DeepMind 通过使用经历回放,也就是每次学习的时候并不直接从最近的经历中学习,而是从之前的经历中随机采样来进行训练。

参见[编辑]

参考文献[编辑]

  1. ^ Francisco S. Melo, "Convergence of Q-learning: a simple proof"
  2. ^ Matiisen, Tambet. Demystifying Deep Reinforcement Learning | Computational Neuroscience Lab. neuro.cs.ut.ee. December 19, 2015 [2018-04-06] (美国英语). 
  3. ^ Hasselt, Hado van. Reinforcement Learning in Continuous State and Action Spaces. (编) Wiering, Marco; Otterlo, Martijn van. Reinforcement Learning: State-of-the-Art. Springer Science & Business Media. 5 March 2012: 207–251. ISBN 978-3-642-27645-3. 
  4. ^ Tesauro, Gerald. Temporal Difference Learning and TD-Gammon. Communications of the ACM. March 1995, 38 (3): 58 [2010-02-08]. doi:10.1145/203330.203343. 

外部链接[编辑]