深度强化学习算法与实践:基于PyTorch的实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 贝尔曼方程及其应用

本节将简单介绍贝尔曼方程(Bellman Equation)及其应用。其实在前面几节的内容中,从式(2.1)到式(2.7)已经陆续有了一系列类似的公式,这些公式的共同特点都是基于马尔可夫决策过程,并且使用的都是一个迭代的方程来对对应的状态价值函数或者动作-状态价值函数进行计算。那么,是否可以把所有的公式纳入一个统一的框架下来表述呢?答案当然是肯定的,事实上,所有的这些公式都可以看作贝尔曼方程在某种限定条件下的特例。

为了能够推导贝尔曼方程,首先从回溯图出发,观察一下从初始状态st开始到达新的状态st+1的过程。图2.6是对应的回溯图,可以看到这个图和图2.1比较类似,只不过在图中明确标示了状态st、动作at、在动作之后获取的奖励rt、转移到新的状态st+1以及对应的概率prtst+1|stat)。与图2.1中介绍的一样,图2.6把stst+1对应的状态价值函数的值Vst)和Vst+1)联系在了一起。在这个前提下,就可以从价值函数最原始的定义推导得到贝尔曼方程。

图2.6 贝尔曼方程对应的回溯图

如式(2.12)所示,Vπst)的定义应该是在状态为st的情况下,根据策略π,智能体获取的回报Gt的期望。而当前步的回报和当前步获取的奖励rt,折扣系数γ和下一步的回报Gt+1相关,即Gt=rt+γGt+1,这个通过回报的定义公式可以很容易得到。把对应的期望展开可以发现,对应的期望和两部分有关,第一部分是策略的部分,即πat|st),对应的是智能体根据策略π做出动作a的概率;第二部分是获取奖励rt并转移到新的状态st+1的概率prtst+1|stat)。最后容易看出整个公式中Gt的部分是递归定义的,因为Vπst)是Gt的期望,同样,Vπst+1)是Gt+1的期望。这样就把Vπst)和Vπst+1)联系了起来,也就是最后的贝尔曼方程。式(2.12)对应的是状态价值函数相关的贝尔曼方程,还有一个动作-状态价值函数相关的贝尔曼方程,如式(2.13)所示。同样,式(2.13)显示了智能体前后两步决策的Qπstat)和Qπst+1at+1)之间的相互关系。

有了贝尔曼方程,就可以直接推导得到很多结论。比如常见的贪心算法,其实就是设置πat|st),使得at的取值让对应的价值函数最大,这样就得到了前面提到的式(2.6)和式(2.7)的结论。当然,其实贝尔曼方程对任意的策略πat|st)适用,包括在基于策略的强化学习中经常使用的方法,即用一个模型根据环境的状态st做出决策,预测可能获取最大回报的动作at。这个深度学习网络被称为策略网络(Policy Network),其输出的是不同决策的概率,我们只需要根据这个概率对动作智能体的决策进行采样(采样分布可以是多项分布,即Multinomial Distribution,对应的是离散的动作;也可以是高斯分布,即Gaussian Distribution,对应的是连续的动作),得出一个具体的动作at让智能体去执行即可。因为在策略网络中一般来说所有动作的概率都不为零,所以对应的策略被称为软策略(Soft Policy),对应所谓的“硬策略”,即某一动作的概率为1,其他动作的概率为0的贪心策略。

综上所述,贝尔曼方程可以认为是强化学习的理论基础,统一了所有的基于马尔可夫决策过程的强化学习理论,并且把强化学习里面重要的一些概念,如状态价值函数、动作-状态价值函数和策略等通过一个公式联系了起来。在后续使用的很多概念和公式可以认为是这个公式在一定假设下的简化版本。理解贝尔曼方程有助于加深对于后续的深度强化学习算法的理解。