增强学习 | Q-Learning

image

“价值不是由一次成功决定的,而是在长期的进取中体现”

上文介绍了描述能力更强的多臂赌博机模型,即通过多台机器的方式对环境变量建模,选择动作策略时考虑时序累积奖赏的影响。虽然多臂赌博机模型中引入了价值的概念,但方法在建模过程中本质上是以策略为优化目标,因此又常被归为基于策略的增强学习方法。

此外,增强学习方法还有基于价值以及基于模型两类主要方法。本文介绍第二类,先从描述价值目标的Q函数开始,它也常称之为Q-Learning方法。

最简单的Q函数可用“状态-动作”二维表(Q-Table)描述,其中行表示状态s,列表示动作a,矩阵中的值表示特定状态下执行某动作的回报值为r(s,a)。智能体Agent通过不断更新并查找该表,找到当前状态回报最高的动作执行。

为避免Q-Table陷入局部最优,即使得当前回报最高的结果能达到全局最优,需要通过训练获得累积回报,迭代更新Q-Table,使之能指导长期期望价值最大化的动作执行。

为便于计算,将Q-Table表示为Bellman递推等式,拆分为当前回报和未来最大回报的和,即Q(s,a)=r(s, a)+b(max(Q(s’,a’))),其中s’表示s状态在a行为作用下的下一状态,而a’为s’状态后所有可能的行为,b为价值累积过程中的打折系数,决定了未来回报相对于当前回报的重要程度。

同样的,也可使用神经网络对Q函数进行建模,其输入为Agent环境状态,输出为使价值最大化的Agent动作。训练过程中,初始Q(s,a)为0,训练中Agent每行动一次,通过Bellman等式计算Q’(s,a),优化目标是使得Agent根据Q函数执行动作能获得训练过程中的最大价值回报,即Q(s,a)与Q’(s,a)的差异最小。

例如,OpenAI gym的FrozenLake问题,假设人要穿过一个4x4方格的冰湖(从S到G),有冰的地方(F)可以行走,无冰的洞(H)会掉入湖中。使用增强学习建模,其状态空间为4x4的方格空间,动作为“上下左右”的移动,达到目标的回报价值为1,掉入洞中的回报价值为-1。

分别使用Q-Table和神经网络Q函数对FrozenLake问题进行建模求解,可以发现神经网络Q函数的学习方法,在同样实验迭代次数下可以探索出更多的“可行路径”。

对代码实现和实验效果感兴趣的朋友,可在数据小虾米公众号后台回复“代码”,获得源码地址。


数据科学武林风起云涌,
随数据小虾米共闯江湖~
weixin

posted on 2017-07-07 22:32  数据小虾米  阅读(1481)  评论(0编辑  收藏  举报

导航