Q Learning算法详解

标签:#强化学习# 时间:2022/08/26 16:11:38 作者:小木

Q Learning是一种无模型(model-free reinforcement learning)强化学习,也是强化学习中十分重要的一种基础模型。谷歌旗下的DeepMind基于Q Learning提出的Deep Q Network是将强化学习与深度学习融合的经典模型,也将强化学习往前推动了一大步。因此,对于学习现代的强化学习模型来说,Q Learning是必须理解的一个基础模型。本文将详细解释这个模型。

一、Q Learning的由来

Q Learning是由Chris Watkins在1989年提出的一种强化学习模型。发表在其博士学位论文《Learning from delayed rewards》中(老哥也是很直接,在博士论文开头就说了,这个论文完全是他自己一个人的工作,没有和任何其他人进行合作)。当时,人工智能的研究还是十分关注模仿行为决策的。在行为建模中,使用动态规划求解动物最优行为策略是一种通用的方法。在他的博士学位论文中,他系统分析了这些求解方法。在当时,动物的行为选择的标准建模就是马尔科夫决策过程,而基于动态规划的方法求解马尔可夫过程也是当时固有的方法。

但是,Watkins认为动物行动的时候并不会去计算这些。因此,除了动态规划外,Chris Watkins选择了一种增量蒙特卡洛(an incremental Monte-Carlo method)方法来学习这种最优行为决策。它的优点是不需要对周围的环境进行建模,也不需要记忆很久之前的状态与行为。他在论文中证明了这种方法的有效性。这个方法就是Q Learning。Watkins说这个算法本身是由第一性原理(The first principle,马斯克说的估计和这个是一个东西)的论点发展起来的,而不是为了解释特定的实验结果。

在1992年,Chris Watkins和Peter Dayan在期刊《Machine Learning》(参见:Machine Learning - 1992 - Volume 8 论文列表)发表了一篇新的论文《Q Learning》,证明了这个方法的收敛。也就是说,只要我们在所有的状态和action-value中重复学习,就最后一定能学习到最优的action-value。下面我们就来看看这个方法到底是什么样的。

二、Q Learning

强化学习是一种基于奖励和惩罚进行学习的一种机器学习方法。一般来说,我们会使用一个代理(agent)不断地与周围环境交互,然后获得交互的奖励或者惩罚,来让这个代理学会使用最优的行为进行决策。这也是模仿自动物行为学习。

例如,训练一只小猫上厕所,开始的时候,小猫可能会在各种地方上厕所,但是只要它去猫砂盆上厕所,我们就奖励它吃东西,如果去其它地方上厕所就惩罚它。那么,过了一段时间,它就会自动去猫砂盆上厕所了。这里的小猫就是我们的一个代理(agent),在不同的地方上厕所就是我们说的与环境进行交互。

这里需要注意到几个概念,首先我们有一个状态(State)概念,例如训练小猫上厕所这个例子。小猫所在的位置就是一种状态(简单来说就两种状态,一个是在猫砂盆里,一个不在猫砂盆)。而另一个概念是动作(Action),这个例子里面很简单就两种动作,一个是去猫砂盆,一个就是上厕所。而奖励和惩罚就是一种Value。

强化学习分为基于值的强化学习(Value-Based methods)和基于策略的强化学习(Policy-Based methods)。Q Learning算法属于后者(这两者的区别不是本文重点,就不详细描述了)。在基于值的方法中,也分成基于State-Value函数的强化学习和基于Action-Value函数的强化学习。Q Learning是后者,也就是说基于状态和行为对(State-Action Pair)求出一个value进行学习。这个value其实就是刚才说的奖励或者惩罚。还是小猫上厕所的例子,Q Learning就是要建立状态-动作对与Value之间的关系,最后来支持我们的决策行为。也就是最后我们学习如下问题的答案:

猫砂盆位置(state)- 上厕所(action)对应的value是啥?
非猫砂盆位置(state)- 上厕所(action)对应的value是啥?
非猫砂盆位置(state)- 去猫砂盆(action)对应的value是啥?

说了这么多,简单一句话就是Q Learning是一种基于State-Action Pair得到value的强化学习方法。它使用了一个叫Q-Table的东西来表示这二者之间的映射关系。也就是说,给出一个表格,记录里面state和action对应的value值。不断的让代理去重复和环境的交互,获得对应的value更新后填入表格就能最终得到一个最优的Q-Table,未来只需要根据这个表格来查询对应的Value就知道改如何决策了。

以上面小猫上厕所为例,我们共有2种状态,分别命名为s1(猫砂盆位置)和s2(非猫砂盆位置),动作有两种,分别命名为a1(上厕所)和a2(去猫砂盆)。那么,奖励小猫的话value=1,否则是-1,那么最终Q Learning建立的Q Table如下:

状态(State) 动作(Action) 奖励/惩罚(Value)
s1 (猫砂盆位置) a1 (上厕所) 1
s2 (非猫砂盆位置) a1 (上厕所) -1
s2 (非猫砂盆位置) a2 (去猫砂盆) 1

以后,只要小猫脑子中有了一张表,那么它只要按照表的内容选择行为就可以获得最好的结果了。这是一个非常简单的Q Learning示例,但是实际中,Q Learning可以解决的问题比这个要复杂许多。其核心要解决的就是

欢迎大家关注DataLearner官方微信,接受最新的AI技术推送