动态规划方法(Dynamic Programming)
在智能体已知或能够学习到环境模型(状态转移概率 P、奖励函数 R)时可以采取动态规划算法进行求解。
策略迭代
策略评估
在有限期规划(t∈[0, T])中,贝尔曼期望方程实质上是一个动态规划转移方程,其中动态规划状态为每个规划时间步上的价值函数 v(t)(s) 和 q(t)(s, a),初始状态即 T 时刻的价值函数:
q(T)(s, a)=R(s, a)v(T)(s)=a∑q(T)(s, a)π(T)(a∣s)
其中 π(t) 为 t 时间步上的马尔可夫随机策略,进而通过前向递推即可得到每个时刻的状态价值函数:
q(t)(s, a)=R(s, a)+γs′∑v(t+1)(s′)p(s′∣s, a)v(t)(s)=a∑q(t)(s, a)π(t)(a∣s)
由于贝尔曼期望算子 Lπ:V↦V 是度量空间 ⟨V, L∞⟩ 上的压缩映射:
∥∥∥∥Lπ(v1)−Lπ(v2)∥∥∥∥∞=γ∥∥∥∥∥∥s′∑(v1(s′)−v2(s′))pπ(s′∣s)∥∥∥∥∥∥∞=γsmax∣∣∣∣∣∣s′∑(v1(s′)−v2(s′))pπ(s′∣s)∣∣∣∣∣∣=γ∣∣∣∣∣∣s′∑(v1(s′)−v2(s′))pπ(s′∣s⋆)∣∣∣∣∣∣≤γs′∑∣∣∣∣v1(s′)−v2(s′)∣∣∣∣pπ(s′∣s⋆)≤γs′max∣∣∣∣v1(s′)−v2(s′)∣∣∣∣=γ∥∥∥∥v1−v2∥∥∥∥∞
因此通过转移方程反复迭代后 v(s) 会收敛到算子 Lπ 的不动点,即贝尔曼期望方程 v=Lπ(v) 的解 vπ。
策略提升
贝尔曼期望方程的解实质上是对策略 π 的评估,为了提升策略的状态价值,可以对策略进行单步提升:
π+∈δ∈DAargmaxLδ(vπ)=δ∈DAargmaxa∑qπ(s, a)δ(a∣s)=δ∈DAargmax{Rδ(s)+γs′∑vπ(s′)pδ(s′∣s, a)}
单步提升可以直接利用贪心的方法得到一个确定性的策略 π+∈D
π+(s)∈aargmaxqπ(s, a)
单步提升后的策略 π+ 满足
Rπ++γPπ+vπ=Lπ+(vπ)=δ∈DAmaxLδ(vπ)=L(vπ)≥Lπ(vπ)=vπ
因此
Lπ+(vπ+)=vπ+Rπ++γPπ+vπ++γPπ+vπ−γPπ+vπ+≥vπ ⇒ (I−γPπ+)vπ+≥(I−γPπ+)vπ
由于 (I−γPπ)−1=limn→∞∑k=0nγkPπk,当 u≥v 时,经过 (I−γPπ)−1 变换后仍然可以保持偏序关系:
(I−γPπ)−1u=n→∞limk=0∑nγkPπku≥n→∞limk=0∑nγkPπkv=(I−γPπ)−1v
在经过单步策略提升后 vπ+≥vπ。由于贝尔曼最优方程 v=L(v) 的解存在且唯一,进而可得:
Lπ+(vπ)=L(vπ)=vπ ⇒ vπ=v⋆, π=π⋆
价值迭代
策略迭代算法的一次迭代包含策略评估和策略提升,而价值迭代则直接利用贝尔曼最优方程算子 L 的压缩映射性质迭代得到最优状态价值函数 v⋆(s),同时在有限期规划中也可以看做是动态规划的转移方程:
v(t)(s)=L(v(t+1))=amaxq(t)(s, a)=amax{R(s, a)+γs′∑v(t+1)(s′)p(s′∣s, a)}
其中初始状态为 q(T)(s, a)=R(s, a),通过不断向前迭代即可得到每个时间步的最优动作价值函数 q⋆(s, a),通过最优动作价值函数可以恢复出每个时间步的最优确定性策略 π(t)(s)∈argmaxaq(t)(s, a)。