【强化学习】- 3. 动态规划DP

1. 介绍

前面 第二章主要介绍了如何用MDP去形式化RL问题, 还未涉及到如何去解MDP问题。

动态规划可以帮助找到行业中面临的规划问题的最佳解决方案,前提是环境的具体情况是已知的。 DP 为理解可以解决更复杂问题的 RL 算法提供了一个很好的起点。

第四章和第五章将会介绍如果环境未知 (model-free)如何解。
在这里插入图片描述

1.1 DP 定义

Dynamic sequential or temporal component to the problem
Programming optimising a “program”, i.e. a policy c.f. linear programming

DP是一种解决复杂问题的方法, 通过将原问题拆分成子问题:

  • 对子问题求解

  • 存储子问题的解并合并,找到原问题的解。

1.2 使用动态规划DP的要求

动态规划DP是一种非常通用的求解方法,一般求解的问题有以下两个属性:

  1. 最优子结构:
  • 适用最优性原;
  • 最优解可以分解为子问题
    e.g.
    Fibonacci series Fib(n) = Fib(n-1) + Fib(n-2)
    问题中的Fib(n)可以拆分为两个字问题Fib(n-1) 和 Fib(n-2)
  1. 重叠子问题:
  • 子问题多次重复出现;
  • 解决方案可以缓存和重用

在这里插入图片描述

在斐波那契动态规划数字树表示的情况下,可以看到多个子问题如 fib(4)、fib(3)、fib(2) 等出现多次,我们可以将这些解进行存储。

马尔可夫决策过程满足这两个属性

  • 贝尔曼方程给出递归分解;
  • 价值函数存储并重用解决方案

1.2 DP用于planning

DP在MDP中假设环境的情况已知(即给定一个完美的环境马尔可夫决策模型),以寻找最优策略。

  • DP 假设整个MDP已知; 用于MDP做计划planning

对于预测问题:

  • input M D P < S , A , P , R , γ > MDP<S,A,P,R,\gamma> MDP<S,A,P,R,γ> 和策略 π \pi π
  • 或者 M R P < S , P π , R π , γ > MRP<S,P^\pi,R^\pi,\gamma> MRP<S,Pπ,Rπ,γ>
  • output: 价值函数 v π v_\pi vπ

对于控制问题:

  • input M D P < S , A , P , R , γ > MDP<S,A,P,R,\gamma> MDP<S,A,P,R,γ>
  • output: 最优价值函数 v π v_\pi vπ和最优策略 π \pi π

DP也可以用来解很多其他的问题:scheduling, 字符串的匹配问题,图算法等。

2. 策略迭代Policy Iteration

第二章 介绍了贝尔曼期望递归和贝尔曼最优递归,这里我们将用贝尔曼期望对策略进行评估(2.1),用贝尔曼最优方程对策略进行迭代(control)寻找最优策略(2.2)

2.1 策略评估 Policy Evaluation (Prediction)

对于已知马尔可夫决策过程,我们考虑入如何去计算 给定任意策略 π \pi π的状态价值函数 v π v_{\pi} vπ,就是策略评估

??如果MDP未知如何评估策略?

问题:评估一个给定的策略
方法:将贝尔曼期望备份(Bellman expectation backup)进行迭代。 v 1 − > v 2 − > . . . . . v π v_1->v_2->.....v_{\pi} v1>v2>.....vπ

如果用同步备份

  • 在每次迭代 k + 1 k+1 k+1时, 对于所有的状态 s s s, 我们都去从 v k ( s ‘ ) v_{k}(s‘) vk(s)更新 v k + 1 ( s ) v_{k+1}(s) vk+1(s)
  • s ′ s' s s s s的后继(下一个)状态。

v k ( s ′ ) v_{k}(s') vk(s) v k + 1 ( s ) v_{k+1}(s) vk+1(s)更新:
在这里插入图片描述
(空心节点为状态s,实心节点为动作a)

2.2 策略迭代Policy Iteration

策略迭代包含两个过程:策略评估和策略改进。

  • 我们开始于任意一策略 π \pi π,
  • 然后对当前策略价值 v π v^\pi vπ进行迭代评估,
  • 运用贪婪策略生成比当前策略 π \pi π更好的策略 π ′ \pi' π
  • 持续迭代以上过程,获得最优策略 π ∗ \pi^* π

在这里插入图片描述

例子:jack’s car rental
状态(state):2个地点,每个地点最多20辆车
动作(action):最多在两个地点之间夜间调运5辆车
奖励(reward):每辆车的租金收益为$10。
转移(transition): 取车和换车是随机的:

  • 符合泊松分布,n 次取车/还车的概率为 λ n n ! e − λ \frac{\lambda^n}{n!}e^{-\lambda} n!λneλ
  • 地点1:平均租车 =3,平均还车=3
  • 地点2:平均租车 =4,平均还车=2
    基于以上信息,我们试图找到最佳策略。

不同策略 π 0 , π 1 . . . π 4 \pi_0,\pi_1...\pi_4 π0,π1...π4,以及策略 π 4 \pi_4 π4对应的价值函数:y,x分别代表地点1 和地点2 的车辆数(状态值state)。
在这里插入图片描述
从任意策略 π 0 \pi_0 π0开始,我们会获取一个价值函数曲面 V 1 V_1 V1(如右下图 V 4 V_4 V4),然后用贪婪的方式获取一个更好的策略 π 1 \pi_1 π1,然后获取最新的 π 1 \pi_1 π1对应的价值函数曲面 V 1 V_1 V1,依次获取 π 2 \pi_2 π2 -> V 2 V_2 V2 π 3 \pi_3 π3 -> V 3 V_3 V3 π 4 \pi_4 π4 -> V 4 V_4 V4。 从 π 3 \pi_3 π3 π 4 \pi_4 π4,策略开始converge。
cla

策略改进

基于一个确定的策略,即 a = π ( s ) a=\pi(s) a=π(s), 我们可以通过贪婪的方式提升策略
π ′ ( s ) = a r g m a x a ∈ A q π ( s , a ) \pi'(s)=argmax_{a\in A} q_{\pi} (s,a) π(s)=argmaxaAqπ(s,a)
该策略通过从任意一状态提升一步的价值,即
q π ( s , π ′ ( s ) ) = m a x a ∈ A q π ( s , a ) ≥ q π ( s , π ( s ) ) = v π ( s ) q_\pi(s,\pi'(s))=max_{a \in A} q_\pi(s,a) \geq q_\pi(s,\pi(s))=v_\pi(s) qπ(s,π(s))=maxaAqπ(s,a)qπ(s,π(s))=vπ(s)
进而提升价值函数 v π ′ ( s ) ≥ v π ( s ) v_\pi'(s) \geq v_\pi(s) vπ(s)vπ(s)

问题:
我们是否需要每次迭代到精确的value值,有没有可能简化这个过程? 通过近似的策略评估的价值而不是精确的策略评估?

修订版策略迭代

该方法是对策略迭代的修改,主要是解决是

  • 策略评估过程是否需要收敛到 v π v_\pi vπ?
  • 或者我们要不要引入一个停止条件,如 ϵ − c o n v e r g e n c e \epsilon -convergence ϵconvergence
  • 或者直接在k次策略迭代后停止收敛性
  • 或者在每次策略迭代后都对策略进行更新?即在k=1次迭代后停止迭代。(该方式等同于下述中的价值迭代)。

3. 价值迭代 Value iteration

3.1 最优策略原则

任何一最优策略可以被拆分成两部分:

  • 一个最优的动作 A ∗ A_* A
  • 和一个从后续状态 S ′ S' S的最优策略
    在这里插入图片描述

一个策略 π ( a ∣ s ) \pi(a|s) π(as)在状态s获取最优的价值, v π ( s ) = v ∗ ( s ) v_{\pi}(s)=v_{*}(s) vπ(s)=v(s),当且仅当

  • 对于任何的从状态 s s s可到达的状态 s ′ s' s
  • s ′ s' s, π \pi π都已经达到了最优价值。也就是对于所有的 s ′ s' s v π ( s ′ ) = v ∗ ( s ′ ) v_{\pi}(s') = v_*^{}(s') vπ(s)=v(s) 恒成立.

3.2 确定性价值迭代

如果我们已知子问题 v ∗ ( s ′ ) v_*^{}(s') v(s) 的解 , 则 v ∗ ( s ) v_*^{}(s) v(s)可以通过一步前瞻获得
v ∗ ( s ) ← m a x a ∈ A R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) v_*^{}(s)\gets max_{a \in A} R^a_s+\gamma\sum_{s' \in S}P^a_{ss'}v_*^{}(s') v(s)maxaARsa+γsSPssav(s) (等价于贝尔曼最优方程)
然后迭代以上步骤。

最短路径问题:
在这里插入图片描述

每次迭代选取最优的值,等价于策略迭代中 价值评估时 k=1的迭代。

3.3 价值迭代

问题:寻找最优策略 π \pi π
方法:将贝尔曼最优备份(Bellman optimality backup)进行迭代。 v 1 − > v 2 − > . . . . . v ∗ v_1->v_2->.....v_{*} v1>v2>.....v
不同与策略迭代, 我们没有确切的策略, 直接作用在价值空间。中间的价值函数可能不对应任何的策略。即 ∃ v i ≠ v π , ∀ π \exist v_i \neq v_{\pi} , \forall \pi vi=vπ,π。而在策略迭代中,每一步我们建立价值函数, 该值对应特定的策略。
在这里插入图片描述
在这里插入图片描述
从k iteration 迭代到k+1时更新所有的s 从上次迭代的后续状态取最好的action(贝尔曼最优递归)。

DP 算法
目前当前要解决的问题主要是planning 问题 (MDP已知,试图解MDP).包括两种问题, prediction 和control。
在这里插入图片描述

  • 当前算法基于状态价值函数 v π ( s ) v_\pi(s) vπ(s) 或者 v ∗ ( s ) v_*(s) v(s), 该算法每次迭代的复杂度为 O ( m n 2 ) O(mn^2) O(mn2),
    对应m个动作,n个状态, 每个状态对应n个后继状态。

  • 同样我们也可以用在动作价值函数 q π ( s , a ) q_\pi(s,a) qπ(s,a) 或者 q ∗ ( s , a ) q_*(s,a) q(s,a),
    但是对应的每次迭代复杂度为 O ( m 2 n 2 ) O(m^2n^2) O(m2n2) ,因为我们要考虑m个动作,n个状态,以及每个状态对应n个后继状态及后继状态的m个动作。

4. DP备份

DP的备份是full-width的意味着每个状态及动作都会被备份,因此对于大规模问题,DP会带来很大的维度灾难问题。后面第四章model-free 会引入采样的概念来降低backup。
在这里插入图片描述

[1]: Sutton, R. S., Barto, A. G. (2018 ). Reinforcement Learning: An Introduction. The MIT Press

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值