【强化学习理论】动态规划算法

【强化学习理论】动态规划算法

以下是自己的一些总结,但不是官方的论断。

动态规划算法的两种代表

①策略迭代;

②价值迭代。

动态规划算法的应用条件

①有完整的MDP建模,知道明确的奖励函数 r r r和状态转移函数 p p p。如果不知道的话,只能让智能体跟环境做交互得到序列,去模拟。

②状态空间和动作空间离散、有限。

两种动态规划算法的区别

①策略迭代包含两个部分:策略评估(多次)+策略提升(一次),两个部分作为一个组合,循环多次,直到策略 π τ − 1 = π τ \pi_{\tau-1} = \pi_{\tau} πτ1=πτ

策略评估可能会进行多轮,这个过程是根据当前策略计算出每个状态的最优价值,得到 V π ( s ) V_{\pi}(s) Vπ(s)

然后是策略提升(经过多轮策略评估后做一次策略提升),策略提升是通过在每个状态计算 q ( s , a ) q(s,a) q(s,a),然后指定能让 q ( s , a ) q(s,a) q(s,a)最大的那个动作作为当前 s s s的动作。这个指定的过程就是策略提升的过程。

利用的原理:贝尔曼期望方程、状态价值函数与动作价值函数的关系、策略提升定理

优点:过程容易理解;

缺点:因为要迭代多轮才去提升,然后又迭代多轮再提升……再碰上状态空间和动作空间都比较大的话,就很消耗计算资源和时间;需要事先有一个初始 π \pi π

②价值迭代也包含两个部分:策略评估(一次)+策略提升(一次),两个部分作为一个组合,循环多次,直到策略 π τ − 1 = π τ \pi_{\tau-1} = \pi_{\tau} πτ1=πτ

在每次计算某个状态的价值 v ( s ) v(s) v(s)时,会计算这个状态下所有的 q ( s , a ) q(s,a) q(s,a),然后直接指定最大的那个 q ( s , a ) q(s,a) q(s,a)作为更新后的 v ( s ) v(s) v(s)

利用的原理:贝尔曼最优方程

优点:迭代轮数比策略迭代少;事先不需要知道初始 π \pi π(因为计算过程中不需要用到当前状态转移到某个动作的概率)

缺点:最后才能根据价值函数导出 π \pi π

猜你喜欢

转载自blog.csdn.net/Mocode/article/details/130591534