一、State Value 状态价值的定义
在策略π下,从某个状态s开始会有多个trajectory,计算所有trajectory的平均Discounted Return,即为s1在策略π的state value,记为
如果在策略π中,s开始仅有一条trajectory,那么s的state value等于s的在这条trajectory的discounted return。
二、贝尔曼方程的推导
有这样一条trajectory
从时刻 t 开始的Discounted Return为:
可以直接写作:
这说明一个状态的 return 依赖于后续状态的 return。
脱离这条trajectory,将上述递归结构代入状态价值函数的定义中:
第一项:即时奖励期望
该项表示在状态 s 下,根据策略 π 选择动作,然后立刻获得奖励的期望值。展开为:
第二项:未来回报期望
该项表示在状态 s 下,所有可能转移到的下一个状态 s′ 的价值按其转移概率加权平均。展开为:
核心含义:当前状态的价值 = 即时奖励的期望 + 折扣后未来状态价值的期望。
三、矩阵形式的贝尔曼方程
对于有限状态空间,我们可以将贝尔曼方程写成矩阵形式,以描述所有状态价值之间的全局关系。
设状态空间大小为 n ,定义以下向量和矩阵:
向量r的元素为在策略 π 下ri获得的即时奖励均值
基于上述定义,标量形式的贝尔曼方程可以紧凑地表示为:
四、实例计算:2×2 网格世界
考虑一个 2×2 的网格,四个状态分别记为 s1,s2,s3,s4s1,s2,s3,s4 ,对应位置 [1,1], [1,2], [2,1], [2,2]。
在策略 π 下,各状态的转移和奖励如下:
- 从 s1 :以 0.5 概率选择动作 a1.1 ,转移到 s2 ,获得奖励 -1;以 0.5 概率选择动作 a1.2,转移到 s3 ,获得奖励 0。
- 从 s2 :选择动作 a2.1 ,转移到 s4 ,获得奖励 1。
- 从 s3 :选择动作 a3.1 ,转移到 s4 ,获得奖励 1。
- 从 s4 :选择动作 a4.1 ,自循环到 s4 ,获得奖励 1。
根据贝尔曼方程,列出每个状态的价值方程:
矩阵形式:
像这样根据策略以及bellman equation进行state value求解就叫做策略评估 policy evaluation。
计算出的state value可以用来对策略进行评估
五、一种迭代方式
在第三章中计算得到的state value的矩阵计算公式需要矩阵求逆,在高维矩阵实现较为复杂,这里介绍一种迭代方式可以进行state value计算。
公式:
r π 相当于第三章矩阵公式的矩阵r,Pπ相当于矩阵P
依然使用上面网格世界的例子进行展示
可以看到,随着迭代进行,各状态的state value在不断更新并逐渐接近真实值如 vπ(s4)=1/(1−0.9)=10=10 。实际应用中,当相邻两次迭代的差值小于某个阈值时,即可认为已收敛。
六、Action Value动作价值的定义
学习了state value后action value就很好理解了,state value会计算状态s下所有action的平均return
而action value衡量的是在状态s下采取特定action后的平均return
公式:
它与状态价值函数的关键区别在于:状态价值是对所有可能动作的加权平均,而动作价值是固定某个动作后的期望回报。
从状态价值到动作价值的转换
回顾state value的公式
换成另一个式子
可知:
以及
根据这些公式可以通过state value计算action value,也可以通过action value计算state value
实例计算
依旧用之前的网格世界例子进行展示
计算s1的向右和向下两个action的action value
除此之外,策略没有定义的动作(即 𝜋(𝑎∣𝑠)=0的动作)也可以计算action value,当需要计算的依赖项(当前状态 𝑠 和执行的动作 𝑎、转移后的即时奖励r、转移后状态 𝑠'以及转移后的state value)全部已知时就可以计算。
如果当前策略之外的action的action value > 当前策略action的action value,就说明当前策略并非最优策略,这时策略优化的核心依据。