马尔可夫决策过程(MDP)
马尔可夫链(具有马尔可夫性质的随机过程)+ A(动作:会导致状态转移) + R(奖励:衡量动作的好坏)
动态特性
定义如下概率:
p(s′,r∣s,a)≜P(St+1=s′,Rt+1=r∣St=s,At=a)
那么状态转移概率(系统自身):
p(s′∣s,a)=∑r∈Rp(s,r∣s,a)
策略表示(Policy)
策略:π
确定性策略:a≜π(s)
随机性策略:π(a∣s)≜P(At=a∣St=s)
回报
用来评估在 st 时刻的策略的好坏,我们定义在 st 时刻的回报为:
Gt=Rt+1+γRt+2+γ2Rt+3+...,γ∈[0,1]
价值函数
回报的期望就是价值函数,通俗的说就是回报的平均数(因为从 s 出发的路径会像树枝一样散开)
state-value:
vπ(s)=E[Gt∣St=s]
action-value:
qπ(s,a)=E[Gt∣St=s,At=a]
state-value 和 action-value 的关系:
vπ(s)=∑aπ(a∣s)qπ(s,a) (如果 π 是确定性策略,两个值相等) (1)
qπ(s,a)=∑r,s′p(s′,r∣s,a)[r+γvπ(s′)]
(2)
贝尔曼期望方程
即把(2)带入(1),把 (1)带入(2)产生的两个等式
得到 v(s) 和 v(s‘)以及 q(s,a) 和 q(s', a') 的关系,这就是贝尔曼方程的核心思想。
贝尔曼最优方程
最优价值函数:
v∗≜maxπvπ(s)
q∗(s,a)≜maxπqπ(s,a)
最优策略:
π∗≜argmaxπvπ(s) = argmaxπqπ(s,a)
由(1)(2)知:
v∗=maxπqπ(s,a)
(3)
q∗=∑r,s′p(s′,r∣s,a)[r+γv∗(s′)]
(这里不能把求和替换成 max 的原因是,我们只能让 v* 最优,因为 p 由系统决定,我们无法决定)(4)即把(3)带入(4),把 (4)带入(3)产生的两个等式
和贝尔曼方程一样,得到 v*(s) 和 v*(s‘)以及 q*(s,a) 和 q*(s', a') 的关系,这就是贝尔曼最优方程的核心思想。
策略迭代
在 MDP 已知的情况下
策略评估(PE)
知道 pi,我们需要评估出对应的 v 和 q 值。
- 解析解
使用线性代数的方式解线性方程组:V = R +γP V
- 迭代解
因为贝尔曼期望方程是不动点方程,所以可以迭代求解。
vk -> vk+1,k->∞,一直迭代下去,可以收敛。
策略改进(PI)
根据 v 和 q ,我们构造出 pi' 优于 pi。
- 策略改进定理
给定 pi,pi',如果 ∀s∈S ,有 q(s,π′(s))≥vπ(s) ,那么则有 ∀s∈S , vπ′(s)≥vπ(s) 。
- 贪心策略
π′(s)=argmaxaqπ(s,a)(满足策略改进定理)
所以 pi -> PE -> q(或者 v) -> PI -> pi' 一直循环下去,就可以得到 v*。

价值迭代
PE 只进行一步的策略迭代。
异步价值迭代
PE 和 PI 不是先后顺序,比如 V 里面的一个值更新了一步,没有等到其他 v 更新,就直接进行 PI 了。
参考
- 深度强化学习(DRL)算法 附录1 —— 贝尔曼公式 - 掘金 (juejin.cn)
- www.bilibili.com/medialist/p…
- incompleteideas.net/book/RLbook…