1.2.3 动作价值函数和状态-动作价值函数
有了回报的定义,结合前面提到的条件概率pπ(rt,st+1|at,st),就可以进一步定义价值函数(Value Function)和动作-价值函数(Action-Value Function,又称Q函数),如式(1.4)和式(1.5)所示。
可以看到,式(1.4)和式(1.5)中的函数都有一个下标π,这里代表智能体的价值函数和动作-价值函数都是在给定的策略条件下计算得到的。这里的策略按照算法的不同,可以是后面介绍的策略神经网络生成的一组策略,也可以是随机策略或者贪心策略。另外,式(1.4)和式(1.5)中的两个函数都是对策略的期望,意味着在实际过程中,需要一段比较长的时间,在固定策略的情况下,通过智能体的不断行动,对不同状态或状态-动作进行采样,对采样的结果计算对应的回报值,取对应的期望,进而求得最终的价值函数或者动作价值函数的值。
可以很容易地看到,式(1.4)是式(1.5)对于不同动作的期望,如式(1.6)所示,其中,A为当前状态下所有可能动作的集合,而π(at|st)是给定当前状态st,智能体做出动作at的概率,这个条件概率可以认为描述了策略的分布。于是我们可以看到,其实Vπ(st)可以认为是Qπ(st,at)在当前策略下的平均表现。在很多情况下,想要知道某个动作预期能够得到的回报是好于平均还是差于平均,这时就需要引入一个函数Aπ(st,at),我们称之为优势函数(Advantage Function),用这个函数来衡量当前动作的好坏,如式(1.7)所示。这个公式的原理同样很简单,就是用当前的动作-价值函数减去动作函数,如果函数大于零,说明这个动作的表现好于平均,反之,则差于平均。
价值函数和动作-价值函数对于深度强化学习非常重要。在基于策略的深度强化学习算法中,为了了解一个策略的好坏,算法需要对当前策略的价值函数或者动作-价值函数进行估计,当一个策略能够提升这两个函数的时候,该策略才是好的策略,要尽可能往该方向优化;而算法应该尽可能避免价值函数的降低。在价值的深度强化学习算法中,由于一般情况下取的策略是平凡策略(如贪心策略,总是往价值高的状态前进),算法也需要知道具体某种动作和某种状态的价值,以确定采取的动作。为了估计这两个函数,人们引入了贝尔曼方程(Bellman Equation),通过迭代的方法来对这两个函数进行估计。这里先简单列出公式,以便读者参考(读者也可以在第2章中找到详细的推导过程)。为了方便读者理解,这里做一个简单的解释。前面已经在动态规划的部分介绍过,价值函数的求解是一个迭代的过程,而贝尔曼方程给出的就是如何进行迭代计算的公式。式(1.8)和式(1.9)比较类似,假如在某一次迭代中已经有了一个Vπ(st+1)和Qπ(st+1,at+1),为了能够得到下一次迭代的值,需要有当前迭代步骤时t时间的奖励rt,结合前面所说的已经有的Vπ(st+1)和Qπ(st+1,at+1),计算出下一步所有可能对应的状态或状态-动作函数,然后乘以折扣系数,采样求期望得到下一步迭代新的V′π(st)和Q′π(st,at)。如此不断反复,直到最后对应的函数收敛(两次迭代的差值小于一定的标准)。从理解上说,可以认为Vπ(st)和Qπ(st,at)是对未来回报的一个近似,通过不断修正这个近似,最终可以让我们的价值函数和动作-价值函数收敛到正确的数值。