贝尔曼算子(Bellman Operators)与动态规划
这篇博客介绍了强化学习中的Bellman算子以及使用Bellman算子来解释动态规划的迭代过程。
原本内容来自Stanford大学Ashwin Rao老师的lecture :Understanding (Exact) Dynamic Programming through Bellman Operators,本篇博客是这个lecture的翻译/整理/学习笔记,包括以下七个部分
- 值函数的向量描述
- Bellman算子
- 算子的收缩性的单调性
- 策略评估
- 策略迭代
- 值迭代
- 策略最优性
值函数的向量描述
假设:状态空间
我们将一个随机策略记为
考虑一个
对于策略
最优的VF,记作
此外还有以下一些记号:
定义记号:
记
记
记
Bellman算子 和
定义表示一个VF向量到另一个VF向量的算子,贝尔曼策略算子(Bellman Policy Operator for policy
作用在VF向量
定义一个函数
对于任意的VF
由于
算子的收缩性和单调性
在
这说明了
我们使用记号
策略评估
这个不动点式子事实上就是贝尔曼期望方程(Bellman Expectation Equation)使用Bellman算子的简洁表达。
那么,对于任意VF向量
上面这个式子就是策略评估算法(Policy Evaluation Algorithm)使用Bellman算子的简洁表示
策略迭代
策略改进
首先规定记号:
策略改进的步骤为:
根据之前的讨论,我们知道:
再由Bellman算子的定义:
由以上两个式子,可以得到
由算子
因此:
策略迭代
我们已经说明了在第
如果
这说明了,在每次迭代的过程中,要么能够改进VF,要么能够达到最优的VF
值迭代
因此,从任意的VF向量
这就是值迭代算法(Value Iteration Algorithm)的一个简洁表示。
贪心策略最优性
已知:
其中
再由
上式说明了,按照最优值函数
换句话讲,也就是: