[强化学习杂记] 从数学角度理解贝尔曼最优公式为什么是greedy?

贝尔曼最优公式

首先先让我们回顾一下贝尔曼最优公式的定义:

假设存在一个确定性策略 π ′ \pi' π′,在任意一个状态 s s s 下
V π ′ ( s ) ≥ V π ( s ) V^{\pi'}(s) \geq V^\pi(s) Vπ′(s)≥Vπ(s)

那么称策略 π ′ \pi' π′ 为贝尔曼方程的最优解。

了解以下定义之后,我们需要思考下面几个问题:

  1. 最优策略是否一定存在?
  2. 最优策略是否唯一?
  3. 最优策略是确定的还是非确定的?
  4. 如何求解最优策略?

在这里,我们先考虑状态价值下的贝尔曼最优公式:
v ∗ ( s ) = max ⁡ π r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) ⋅ v ( s ′ ) v^*(s) = \max_{\pi} \left r(s,a) + \\gamma \\sum_{s'} P(s'\|s,a) \\cdot v(s') \\right v∗(s)=πmaxr(s,a)+γs′∑P(s′∣s,a)⋅v(s′)

在之前的笔记中,我写的是
v ∗ ( s ) = max ⁡ a r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) ⋅ v ∗ ( s ′ ) v^*(s) = \max_{a} \left r(s,a) + \\gamma \\sum_{s'} P(s'\|s,a) \\cdot v\^\*(s') \\right v∗(s)=amaxr(s,a)+γs′∑P(s′∣s,a)⋅v∗(s′)

但这两者是等价的,后者描述的是在当前状态下我们选择最优动作然后按照最优策略行动

事实上,贝尔曼最优公式是一个 "包含两个未知数的方程",为了让读者更直观理解,不妨先看下这个例子:

对给定变量 x , a ∈ R x,a∈ R x,a∈R和方程:
x = max ⁡ a 2 x − 1 − a 2 − − − ① x = \max_{a} 2x - 1 -a\^2 ---① x=amax2x−1−a2−−−①

求解x的最大值。

首先,这个方程包含两个未知数。首先我们先固定 x x x , 显然, a 2 ≥ 0 a^2 \geq 0 a2≥0,因此,当且仅当 a = 0 时, ①式取最大值。于是方程变为求解
x = 2 x − 1 x = 2x -1 x=2x−1的最大值。于是我们可以求解得到 x = 1

类似的,观察贝尔曼最优公式,对给一个贝尔曼最优公式,我们首先也是需要求解出最优策略 π \pi π, 然后再求解出我们在该策略下所得到的最优状态价值(state value)。

假设对某一状态 s s s下,有以下动作价值 q 1 , q 2 , q 3 {q_1,q_2,q_3} q1,q2,q3,对该状态的下的分布函数,我们可以描述为:
max ⁡ c 1 , c 2 , c 3 c 1 ∗ q 1 + c 2 ∗ q 2 + c 3 ∗ q 3 \max_{c_1,c_2,c_3}c_1 * q_1 + c_2 * q_2 + c_3 * q_3 c1,c2,c3maxc1∗q1+c2∗q2+c3∗q3

其中, c 1 , c 2 , c 3 {c_1,c_2,c_3} c1,c2,c3分别为在状态s下执行各动作的概率,因此我们有
c 1 + c 2 + c 3 = 1 c_1 +c_2 + c_3 = 1 c1+c2+c3=1 , c 1 , c 2 , c 3 ≥ 0 c_1,c_2,c_3 \geq 0 c1,c2,c3≥0

如果我们要求解出该状态下的最优策略 π \pi π(也就是在该状态下让状态价值最大的那个策略),假设已知 q 3 ≥ q 1 , q 2 q_3 \geq q_1,q_2 q3≥q1,q2。则该状态下的最优策略应该为 c 3 ∗ = 1 , c 2 ∗ = c 1 ∗ = 0 c^*_3 = 1, c^*_2 = c^*_1 = 0 c3∗=1,c2∗=c1∗=0 。因为:
q 3 = ( c 1 + c 2 + c 3 ) q 3 = c 1 q 3 + c 2 q 3 + c 3 q 3 ≥ c 1 q 1 + c 2 q 2 + c 3 q 3 q_3 = (c_1 + c_2 + c_3) q_3 = c_1q_3+ c_2q_3 +c_3q_3 \geq c_1q_1 + c_2q_2 +c_3q_3 q3=(c1+c2+c3)q3=c1q3+c2q3+c3q3≥c1q1+c2q2+c3q3

参考
相关推荐
HPtiger3 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训3 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设
DongQiShanRen3 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CCblandy3 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
丑梨数据4 小时前
信创环境里跑文档工具:格式兼容与本地合规的几个坑
数据结构·人工智能·算法·决策树·排序算法
erzong2315 小时前
Linux操作系统:线程概念与控制
linux·算法
Nil2086 小时前
leetcode 5最长回文子串
算法·leetcode·职场和发展
xxwl5856 小时前
区域赛分类题解
c++·笔记·学习·算法
m0_674571976 小时前
力扣 hot 100 python
python·算法·leetcode
青少儿编程课堂7 小时前
蓝桥杯+全国青少年信息素养大赛+电子学会PythonC/C++考级:最长公共子序列LCS解析
c++·python·算法·bfs·信息学竞赛