回顾
已知策略,我们可以通过上一节提到的贝尔曼公式计算出状态价值和行动价值。
然而实际上我们想要的是最优的策略,下面就仔细讲讲如何得到最优策略
最优策略
最优策略定义:使得每个状态的状态价值最高的策略
π∗=argπmaxVπ(s),∀s∈S
Bellman optimality equation 贝尔曼最优公式
公式
Elementwise form:
v(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)v(s′)),=πmaxa∑π(a∣s)q(s,a)∀s∈Ss∈S
Matrix-vector form:
V=πmax⋅(rπ+γPπ⋅V)
最优贝尔曼公式已知rπ,Pπ,γ, 未知π,V
理想解法:
- 求得使得rπ+γPπ⋅V最大的π
- 带入π之后通过等式求解V
假设已知q(s,a),又因为∑aπ(a∣s)=1
则
πmaxa∑π(a∣s)q(s,a)=a∈A(s)maxq(s∣a)
即选择最大的动作价值作为确定动作(概率为1)
由上方的解法可知,第一步求解π时,是固定v不变的。故贝尔曼最优公式的右侧可以写为一个关于固定值v的函数f(V)=maxπ⋅(rπ+γPπ⋅V)
简化后的BOE(贝尔曼最优公式)
贝尔曼最优公式化简为
v=f(v)
收缩函数(Contraction mapping)
∥f(x1)−f(x2)∥≤α∥x1−x2∥
- α∈(0,1) must be strictly less than 1
收缩函数理论
定理(压缩映射定理):
对于任何形如 x=f(x) 的方程,如果 f 是一个压缩映射,则:
- 存在性: 存在一个固定点 x∗,满足 f(x∗)=x∗。
- 唯一性: 该固定点 x∗ 是唯一的。
- 算法: 设定一个序列 {xk},其中 xk+1=f(xk),则当 k→∞ 时,xk→x∗。
此外,收敛速率是指数级的。
BOE(贝尔曼最优公式)解法
贝尔曼最优性方程求解过程:
- 对于任何状态 s,当前估计的值 vk(s)(在初始时刻需要自己初始化一个值)
- 对于任何动作 a∈A(s),计算:
qk(s,a)=r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)
- 计算贪心策略 πk+1 对于 s:
πk+1(a∣s)={10当 a=ak∗(s)当 a=ak∗(s)
其中 ak∗(s)=argmaxaqk(s,a)。
- 计算 vk+1(s)=maxaqk(s,a)。(为确定策略概率为1,因此直接等于该行动对应的行动价值)
上述算法实际上就是值迭代算法,将在下一讲中详细讨论。
解法最优性证明:
对于任何策略π,我们有以下公式:
vπ=rπ+γPπvπ.
由于
v∗=πmax(rπ+γPπv∗)=rπ∗+γPπ∗v∗≥rπ+γPπv∗,
其中≥ 由max的定义而来
通过反复应用上述不等式,我们得到:
v∗−vπ≥γPπ(v∗−vπ)≥γ2Pπ2(v∗−vπ)≥⋯≥γnPπn(v∗−vπ).
由此可得:
v∗−vπ≥n→∞limγnPπn(v∗−vπ)=0,
最后的等式成立是因为γ<1,而且Pπn是一个非负矩阵,其所有元素都不超过1(因为Pπn1=1)。因此,对于任何策略π,我们有v∗≥vπ。
影响BOE结果的因素
-
奖励设计 (Reward Design):表示为 r
-
系统模型 (System Model): 状态转移概率: p(s′∣s,a) 和奖励概率 p(r∣s,a)
-
折扣率 (Discount Rate):表示为 γ
- 如果仅仅是将R→aR+b, 对BOE结果并没有影响,因为BOE本质考虑的是相对奖励而不是绝对奖励