文章目录
一、简介
强化学习是一类解决马尔可夫决策过程的方法,其中,动态规划、蒙特卡洛以及时序差分是强化学习算法的三大基础算法。本文就其实际效果来对比三种方法以及其子方法的不同与优缺点。本文就动态规划方法进行简单介绍。
二、动态规划(DP,Dynamic Planning)方法
动态规划是一类优化方法,在给定一个马尔可夫决策过程(MDP)描述的完备环境模型的情况下,其可以计算最优的策略。其中心思想是通过将一个系列性的复杂问题进行分解来简化问题的求解。对于强化学习问题,传统的DP算法,作用比较有限:一是完备的环境模型只是一种假设;二是它的计算复杂度极高。但是,它仍然是一个非常重要的理论。对于之后的方法而言,DP提供了一个必要的基础。
(一)策略评估
策略评估即对于任意一个策略 π \pi π,计算其状态价值函数 v π v_{\pi} vπ.在这里直接给出迭代策略评估算法,用于估计 V ≈ v π V≈v_{\pi} V≈vπ
- 输入待评估的策略 π \pi π
- 算法参数:小阈值 θ \theta θ>0,用于确定估计量的精度
- 对于任意状态 s ∈ S + s\in S^{+} s∈S+,任意初始化 V ( s ) V(s) V(s),其中 V ( 终止状态 ) = 0 V(终止状态)=0 V(终止状态)=0
- 循环:
Δ ← 0 \Delta \leftarrow 0 Δ←0
对每一个 s ∈ S + s\in S^{+} s∈S+循环:
v ← V ( s ) v \leftarrow V(s) v←V(s)
V ( s ) ← ∑ a π ( a ∣ s ) ∑ s ′ , a p ( s ′ , r ∣ s , a ) [ r + γ V ( s ′ ) ] V(s) \leftarrow \sum_{a}{\pi(a|s)\sum_{s^{'},a}{p(s^{'},r|s,a)[r+\gamma V(s^{'})]}} V(s)←∑aπ(a∣s)∑s′,ap(s′,r∣s,a)[r+γV(s′)]
Δ ← m a x ( Δ , ∣ v − V ( s ) ∣ ) \Delta \leftarrow max(\Delta,|v-V(s)|) Δ←max(Δ,∣v−V(s)∣)
till Δ < 0 \Delta<0 Δ<0
我们从上述算法中也可以看到,所谓完备环境的含义即是,对于任意的 ( s , a ) (s,a) (s,a)二元组都能够得到确定的 p ( s ′ , r ∣ s , a ) p(s^{'},r|s,a) p(s′,r∣s,a)以及对于任意状态 s s s,我们都可以得到 p ( s ∣ a ) p(s|a) p(s∣a)。因此,如果没有这种比较完备的环境,就不适合使用动态规划方法。
(二)策略迭代
1.策略改进
对于一个策略 π \pi π,如果我们想要改进它,那么一个直观的方法是针对于某一个状态 s s s,我们可以采用一个动作 a ≠ π ( s ) a \neq \pi(s) a=π(s),而当处于其他状态时,依旧按照策略 π \pi π来采取动作。如果采取新动作 a a a之后的动作价值 q ( s , a ) ≥ v π ( s ) q(s,a) \ge v_{\pi}(s) q(s,a)≥vπ(s),那么我们就可以认定采取新动作的策略 π ′ \pi ^{'} π′比之前的策略 π \pi π更好。所以我们在策略改进的过程中的目标就是采用一个不同于原策略 π \pi π的新动作 a a a,从而使得a的动作价值大于原策略价值。
即 π ′ ( s ) = a r g m a x a ∑ p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] \pi^{'}(s)=argmax_{a}\sum{p(s^{'},r|s,a)[r+\gamma v_{\pi}(s^{'})]} π′(s)=argmaxa∑p(s′,r∣s,a)[r+γv