作者会告诉你强化学习的基本原理,两种基本类型,以及基于这两种类型的相关算法。
总的来说,我们认为机器学习领域的三个基本方向是监督学习、无监督学习和强化学习,而深度学习、半监督学习和元学习是它们在某些方面迭代衍生出来的优化模型。
经过前两个笔记,我们对监督学习和无监督学习有了基本的了解。这一次,让我们来看看:神秘而强大的强化学习(Reinforcement Learning)?到底是什么
相对于一些新的算法,强化学习的历史很长,相关算法在几十年前就诞生了。
我们都知道,监督学习可以基于给定的数据和相应的标签,完成一系列的分类和回归问题。无监督学习是基于未标记数据的,可以用较低的人力成本解决聚类问题。而强化学习主要解决决策问题(Decision-Making),特别是对于连续决策。
这个图简单的展示了强化学习的基本模型。里面的五个字是强化学习的基本要素。它们是:
学习主体(Agent)-the“学习者”在强化学习系统。主体的环境(Environment)-The行为是在环境中产生的,而环境又影响着主体。状态——环境反馈给主体的状态集合。奖励——环境对主体行为反馈的集合。行动——环境中主体行动的集合。这些话怎么理解?又到举栗子的时候了。
在上面的情境中,陈骁是我们的学习主体,他的“行为”是一个集合,其中有“运动”和“懒惰”两个元素。运动会被表扬,懒惰会被批评。
小贲是在这个情境里小陈的“状态”由小本说了算,行为的监督者和见证人,所以小贲是“环境”。
萧本给陈骁的“奖赏”也是一个收藏。文集里还有“赞扬”和“批评”两个元素,这两个元素对应着萧本对陈骁“国家”的评价。胖了就批评,瘦了就表扬。
陈骁如何回应小本的评价?
在文章的开头,我们提到了强化学习主要解决的是决策问题。这里的决策相对简单,只有“运动”和“懒惰”,而陈骁给的奖励决定了陈骁会做出什么决定。
在强化学习的系统中,奖励机制一般是根据最终目标制定的。比如上面的系统,我们希望最后的结果是陈骁能瘦下来,那么我们会给小奔的“奖励”赋一个值,表扬为1,批评为-1,而系统的总体目标是获得更高的分数。这样一来,小陈就会在每一次的奖赏中明白,“运动”是更好的选择,也慢慢瘦了~
在上面的栗子中,我们知道了强化学习的基本原理。接下来,我们简单看一下它的两种基本类型以及基于这两种类型的相关算法:
基于模型"s基于模型的学习(model-based RL)和无模型"s无模型RL (Model-based RL)尝试模型的环境,最后基于这个环境选择最佳策略。无模型一直在努力学习每一步的最佳策略,经过多次迭代,得到了整个环境的最佳策略(例如:Q-learning)。"
这段话引自quora的一个回答,可能看起来不太好理解,所以又到了栗子时间。
现在小草想学打乒乓球。他花大量时间看乒乓球教学视频,通过看书学习乒乓球拍不同的握拍和发力方式,在网上学习各种类型的发球方式,学习空气动力学、人体刨削等知识,打好每一个球。终于有了。
一天小曹叫上朋友走到了乒乓球桌前,发现自己一个球也接不到。这种学习方式就是Model-based,核心是:通过学习先验知识对现有的环境有了一个大概的了解,能够对未来的状态和回报做出预测。
但显然,小曹学习乒乓球这个过程,更好的方法是直接拿其球拍进行实践,也就是通过Model-free的方式来学习乒乓球。
那什么时候该使用model-based呢?
现在小曹终于通过model-free的方式学会了乒乓球,他发现这个方法真好,所以小曹在去打球的路上决定使用model-free的方法来找到去乒乓球室的路。
半天过去了,小曹在某不知名小巷里认识到了model-free不是万能的,于是他掏出了手机打开了高达导航,找到了他现在的位置和乒乓球室所在的位置,并规划好了路线,model-based最终帮助小曹找到了正确的路线。
在z我们讲到了Model-free和Model-based,这其实只是强化学习方法中针对学习主题理不理解环境所做的一种分类。而实际上强化学习的应用环境更加复杂,这一种分类方法可能不足以帮助我们对所有的情况进行判断,我们还需要更加深入地了解强化学习的更多分类和算法以及相关栗子。
按照不同的判断标准,强化学习的方法可以按如下几种方式来分类:
Model-free & Model-based:基于模型和不基于模型Policy-based & Value-based:基于策略(概率) 和基于价值Monte-carlo update & Temporal-Difference update:回合更新和单步更新On-Policy & off-Policy:在线学习和离线学习第一个在上面已经说过了,我们就从第二个,Policy-based & Value-based开始。
好了,又到了栗子时间。
我们把上次小陈跑步的系统里的一部分拿出来,上图就是说小陈正在使用Policy-based的方式选择策略,看起来很好理解,也就是根据做出某项行为的概率来选择下一步行为。
那么,按照一样的逻辑,基于价值也就很好理解啦:
这就是一个最简单的value-based的决策模型,小陈会毫不犹豫地根据每项行为的价值来决定选择怎么做,不带一点主观色彩~
除了判断方式以外,两种方法的区别,以及相应的优劣势是什么呢?
就让我们用它们所对应的两种标志性的算法:大名鼎鼎的Q-learning和Policy Gradients
来做讲解吧~
先从有名的Q-learning说起:它是value-based模型下的一个经典算法,上面已经有提到,value-based的核心思想是根绝每项行为的价值来选择下一步行为,那么Q-learning也是如此,让我们再次祭出小陈作栗子。
可以看到,小陈在这个图里有两个选择,跑步或是偷懒。我们和小陈在之前的栗子中都已经知道了,小陈如果选择偷懒,就会受到来自小本的批评,反之,则受到表扬。
在Q-learning的模型中,这个情境变成了“连续的”。小陈选择一个行为之后将获得一个行为对应的状态,然后在新的状态下继续做选择。
如图所示,在S1时,小陈通过之前积累的经验知道了跑步将会获得小本的表扬,偷懒则会受到批评,所以小陈选择了跑步(a1),小陈的状态也就从S1变化为了S2。
那么每一步的行为具体是怎么选取呢?小陈是如何判断每一个选择的价值的呢?
这里就需要引入Q-table,也可以叫做Q表,Q-table的内容实际上就是每一个状态和选择对应的值,也就是在每一个状态下对不同行为的反馈期望。
小陈通过Q-table就可以知道:在S2的时候,选择a1,也就是跑步,将获得更大的收益,这是不需要通过实际行动就可以得知的。
是不是觉得这个表述很熟悉?
没错,Q-learning除了是value-based的代表性算法以外,它也同样属于model-based下的一种算法,小陈通过先验知识得知了他该如何做出选择,这是model-free做不到的。
总结一下,Q-learning的步骤如下:
我们已经了解了前面四个步骤,但我们还不知道最后一步,Q表中的值是如何更新的,现在让我们看看Q-learning 的核心方程(这是一个贝尔曼方程,也叫动态规划方程)。
Q(s,a)代表的是算法对某一个状态的行为的估计值,比如Q(S1,a1)就是1。
后面括号里的东西代表我们估计出来的值与实际值之间的误差,R(s,a)指的是某个状态下做出某个行为得到的奖励(注意这个奖励是实际执行后从环境得到的一个反馈,而Q(s,a)只是通过想象得到的一个值,一个是实际值,一个是想象值),γ是一个衰减系数,γmaxQ’(s’,a’)就是未来某个状态行为奖励的衰减值。
括号外的α指的是学习率,也就是这次的误差有多少要被学习,它是一个小于1的数。
其实Q-learning本质就是一种动作值函数的算法,输入“状态”和“行为”,得到一个“奖励”,也就是一个具体的值。agent根据最大的值对应的行为做出选择,而选择得到的结果又会反向传递,对Q-table的值进行更新。
希望大家看到这里还没有进入懵逼状态,因为我们接下来就要了解Policy Gradients是怎么一回事了。不过别担心,理解了Q-learning再来看Policy Gradients就很简单啦!
在上面的学习中,我们知道了value-based方法是计算不同动作的值来判断更好的选择,那么现在让我们来看看如果情境变成了这样:
小陈在操场跑步,并且小陈可以选择360°任意一个方向作为前进的方向。
操场上可能捡到钱(矩形),也可能踩到狗屎(三角形),小陈该如何针对这个情况制订合适的行动方案呢?
相较于value-based中的栗子,小陈的选择从有限的(跑步和偷懒),变成了无限的(任意一个方向)。在这个时候,value-based就变得无力了,Q-learning可以通过动作值函数计算出某个状态下某个动作的期望值,但它无法在无穷多个选择中求解。
而policy-based方法也就在这种情况下应运而生啦!
Policy-based不同于value-based先得出值再选择动作,它根据对状态的观测直接给出一个具体的策略。
与value-based的相比,policy-based主要有三个优点:
更容易收敛 可以在高维&连续的动作空间工作 可以学习出带有随机性的策略Policy Gradients(策略梯度算法)是Policy-based中的一类经典算法,其核心思想也包含在了它的名字中――基于策略来做梯度下降。
什么叫梯度下降(Gradient descent)呢?
这是一个简单的一元二次方程y=x+1,途中的两个梯度方向实际上就是在这两个点时y=x+1的导数方向。而梯度下降法是一个求解最小值的方法,比如在上图中,梯度方向一个向左上,一个向右上。我们可以确定这两个点中间一定有更小的值,而不断地对这个区间内的函数求导,最终就可以将我们的结果收敛到最小值。
那么,Policy Gradients是如何做梯度下降的呢?
再看回这张图,假设小陈在一开始通过观测得出的概率进行了这样的行动,得到了钱,我们就给他一个相应的奖励。而策略梯度算法的核心,就是将根据这个奖励/惩罚进行一个反向传递,让这个方向(得到奖励的策略)在下一次被选中的概率提升。反之,则让这个方向在下一次被选中的概率降低。
Policy Gradients的思想就是这样,很简单吧!
公式的推导和参数的更新如果感兴趣的话可以在下面的参考资料中自行学习,这里再赘述可能反而会影响大家对它的理解,这一期的强化学习就到这里啦。下一次让我们了解一下集成了两种方法的Actor-critic算法和一些其他没有提到的分类方式~
介绍&几个非常值得一看的视频(油管视频)
从概念到应用,全面了解强化学习
【整理】强化学习与MDP
什么是 Policy Gradients
什么是Q-learning
通过 Q-learning 深入理解强化学习
比较好懂的Policy Gradient介绍
浅谈Policy Gradient
作者:小曹,公众号:小曹的AI学习笔记
本文由 @小曹 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议