David Silver 增强学习——Lecture 3 动态规划(一)

David Silver 增强学习——Lecture 3 动态规划(一)

其他lecture

【1】搬砖的旺财:David Silver 增强学习——笔记合集(持续更新)

【2】搬砖的旺财:David Silver 增强学习——Lecture 1 强化学习简介

【3】搬砖的旺财:David Silver 增强学习——Lecture 2 马尔可夫决策过程

【4】搬砖的旺财:David Silver 增强学习——Lecture 4 不基于模型的预测

【5】搬砖的旺财:David Silver 增强学习——Lecture 5 不基于模型的控制

【6】搬砖的旺财:David Silver 增强学习——Lecture 6 值函数逼近

【7】搬砖的旺财:David Silver 增强学习——Lecture 7 策略梯度算法(一)

【8】搬砖的旺财:David Silver 增强学习——Lecture 7 策略梯度算法(二)

【9】搬砖的旺财:David Silver 增强学习——Lecture 7 策略梯度算法(三)


Lecture 3的主要内容如下:


目录

1、简介
····1.1 什么是动态规划(Dynamic Programming,DP)?
····1.2 是不是所有问题都能用动态规划求解呢?
····1.3 预测
····1.4 控制
····1.5 DP也可以解决其他问题
2、迭代法策略评估
3、示例——方格世界
····3.1 已知条件
····3.2 问题
····3.3 求解过程
4、参考文献

1、简介

  • 1.1 什么是动态规划(Dynamic Programming,DP)?
Dynamic means the sequential or temporal component to the problem,“动态”指的是该问题的时间序贯部分;
Programming means optimising a "program", i.e. a policy,“规划”指的是去优化一个策略。
  • 1.2 是不是所有问题都能用动态规划求解呢?

不是的,动态规划方法需要问题包含以下两个性质:

最优子结构(Optimal substructure):保证问题能够使用最优性原理(多阶段决策过程的最优决策序列具有这样的性质:不论初始状态和初始决策如何,对于前面决策所造成的某一状态而言,其后各阶段的决策序列必须构成最优策略),从而问题的最优解可以分解为子问题最优解;
重叠子问题(Overlapping subproblems):子问题重复出现多次,因而可以缓存并重用子问题的解。

恰巧,MDP满足上面两个性质

贝尔曼方程是递归的形式,把问题分解成子问题
值函数保存和重用问题的解

“规划”指的是在了解整个MDP的基础上求解最优策略,也就是清楚模型结构的基础上:包括状态行为空间、转换矩阵、奖励等。这类问题不是典型的强化学习问题,我们可以用规划来进行预测和控制。

  • 1.3 预测

input:

MDP <{\cal S}, {\cal A},{\cal P},{\cal R}, \gamma> 和策略 \pi or MRP <{\cal S}, {\cal P}^\pi, {\cal R}^\pi, \gamma>

output:

价值函数 V_\pi(基于当前策略 \pi
  • 1.4 控制

input:

MDP <{\cal S}, {\cal A},{\cal P},{\cal R}, \gamma>

output:

最优价值函数 V_* 和最优策略 \pi_*
  • 1.5 DP也可以解决其他问题

(Richard Bellman在1957年出版作品《Dynamic Programming》)

Scheduling algorithms 调度算法
String algorithms 字符串算法(e.g. sequence alignment)
Graph algorithms 图算法(e.g. shortest path algorithms)
Graphical models 图形模型(e.g. Viterbi algorithm)
Bioinformatics 生物信息学(e.g. lattice models)

2、迭代法策略评估

问题:

给定一个策略 \pi ,求对应的值函数 v_{\pi}\left( s \right) (或者 q_{\pi}\left( s,a \right) ),也就是解决“预测”问题

解决方案:

直接解: v_{\pi}=\left( 1-\gamma {\cal P}^{\pi} \right)^{-1}{\cal R}^{\pi} (详情参考Lecture 2给出的具体例子),可以求得精确解,时间复杂度 {\cal O}\left( n^3 \right)
迭代解:应用Bellman期望方程 v(s) = \mathbb E[R_{t+1} + \gamma v(S_{t+1})|S_t = s]v_{1}\rightarrow v_{2}\rightarrow ...v_{\pi}

具体方法:同步反向迭代(synchronous backups)

即在每次迭代过程中,对于第 k+1 次迭代,所有状态 s 的价值用 v_k(s') 计算并更新该状态第 k+1 次迭代中使用的价值 v_k(s) ,其中 s's 的后继状态。
(注:synchronous------同步,它的含义是每次更新都要更新完所有的状态;backup------备份,即 v_{k+1}(s) 需要用到 v_k(s') ,用 v_k(s') 更新 v_{k+1}(s) 的过程称为备份,更新状态 s 的值函数称为备份状态 s
(注:也可以使用异步反向迭代(asynchronous backups)

公式为:

v_{\pi}(s) ={\sum \limits_{a \in {\cal A}}}\pi\left( a|s \right)\left( {\cal R}{^a_s}+\gamma \sum \limits_{{s'}\in {\cal S}}{\cal P}{^a_{ss'}}v_{\pi}\left( s^{'} \right) \right)

v_{k+1}(s) ={\sum \limits_{a \in {\cal A}}}\pi\left( a|s \right)\left( {\cal R}{^a_s}+\gamma \sum \limits_{{s'}\in {\cal S}}{\cal P}{^a_{ss'}}v_k\left( s^{'} \right) \right)v_k 代表第 k 次迭代的函数)

v^{k+1}={\cal R}^{\pi}+\gamma {\cal P}^{\pi}v^k

即:一次迭代内,状态 s 的价值等于前一次迭代该状态的即时奖励与 s 下一个所有可能状态 s' 的价值与其概率乘积的和,如图示:


3、示例——方格世界

  • 3.1 已知条件
状态空间 S:如图。S_1 - S_{14} 为非终止状态,S_T 为终止状态(灰色方格所示的两个位置)
行为空间 A\lbrace n\uparrow, e\rightarrow, s\downarrow, w\leftarrow \rbrace 对于任何非终止状态可以有东南西北移动的四个行
转移概率 P:任何试图离开方格世界的动作其位置将不会发生改变,其余条件下将100%地转移到动作指向的状态
即时奖励 R:任何在非终止状态间的转移得到的即时奖励均为-1.0,进入终止状态即时奖励为0
衰减系数 \gamma:1
当前策略 \pi:Agent采用随机行动策略,在任何一个非终止状态下有均等的几率采取任一移动方向这个行为,即 \pi(n\uparrow|•) = \pi(e\rightarrow|•) = \pi(s\downarrow|•) = \pi(w\leftarrow|•) = 0.25
  • 3.2 问题
评估在这个方格世界里给定的策略。
等同于:求解该方格世界在给定策略下的(状态)价值函数,也就是求解在给定策略下,该方格世界里每一个状态的价值。
  • 3.3 求解过程

注意: {\cal P}{^a_{ss'}} 在这里全是1.0,和Lecture 2的MDP不一样,Lecture 2中存在一个中继节点(绿色椭圆), {\cal P}{^a_{ss'}} 分别是0.2,0.4和0.4。


4、参考文献

【1】David Silver强化学习课程笔记(三)

【2】《强化学习》第三讲 动态规划寻找最优策略

【3】DQN 从入门到放弃4 动态规划与Q-Learning

【4】【RL系列】马尔可夫决策过程——Jack‘s Car Rental

【5】Policy Iteration Diagram in Jack’s Car Rental (in reinforcement learning)

【6】Reinforcement Learning: An Introduction

【7】Jack's Car Rental

【8】Sutton R , Barto A . Reinforcement Learning:An Introduction[M]. MIT Press, 1998.

【9】强化学习(三):动态规划求解MDP(Planning by Dynamic Programming)

【10】如何证明迭代式策略评价、值迭代和策略迭代的收敛性?


请大家批评指正,谢谢~

编辑于 2019-08-19

文章被以下专栏收录