上一期笔记,忘记的小伙伴可以复习一下:
王源:【强化学习与最优控制】笔记(三)动态规划求解实际问题举例
没有教材的同学可以从如下链接中关注公众号并且在公众号后台回复“强化学习2021”即可获取电子版教材的草稿版本:
Dimitri P. Bertsekas 强化学习2021版教材和视频课程推荐
如需购买教材的童鞋请点击:
0 写在前面的
大家如果留心看强化学习的书或者文献的话会发现有两大类不同的名词,有的时候叫 Controller,有的时候叫 Agent,有的时候叫 Cost,有的时候叫 Reward,有的时候叫 Control Variable,有的时候叫 Action,有的时候叫 System Dynamic,有的时候叫 Environment。看来看去也不知道这两类名词有什么区别。
Bertsekas 在1.4小节主要是梳理了一下不同社区的人在强化学习中采用的不同的名称以及符号。由于在强化学习发展过程中主要是有2个不同社区的人分别都发挥了重要作用,一个社区是 Control theory 社区,另外一个社区就是AI或者Machine Learning的社区。那么这2个社区各自都有各自不同的习惯,因此对强化学习中的概念这两个社区会各自采用不同的符号和名称,但实际上指的是一个东西(或者说几乎可以看成是一样的)。
1 两个社区不同名称对比
等号左边是AI社区常用的名称,右边是 Control theory 社区常用的名称
Environment = System
Agent = Decision maker or Controller
Action = Decision or Control
Reward = Cost (注意说 cost 的时候一般用极小化问题,说 reward 的时候用极大化问题)
Value (or reward) function = Cost function
Action (or state-action) value = Q-factor of a state control pair
Planning = Solving a DP problem with a know mathematical model (说 Planing 一般来说就是用优化方法强解模型了)
Learning = Solving a DP problem without using an explicit mathematical model
Self learning = Solving a DP problem using some form of policy iteration
Deep reinforcement learning = Approximation DP using value and/or policy approximation with deep neural networks (一般来说就是 value network 或者 policy network 用的是 deep learning来做都可以称之为 Deep reinforcement learning)
Policy evaluation = Prediction
Temporal abstraction = Time aggregation
State abstraction = State aggregation
Learning a model = System identification
Episodic task or episode = Finite-step system trajectory
Continuing task = Infinite-step system trajectory
Bellman operator = DP mapping or operator
After state = Post-decision state
Ground truth = Empirical evidence or information provided by direct observation
2 Optimal Control, Model Predictive Control, Reinforcement Learning
Optimal Control, Model Predictive Control 和 Reinforcement Learning 三大块内容相关性还是很高的。我们这里简单梳理一下它们三者之间的关系。首先我个人认为 Optimal Control 是可以看做 Reinforcement Learning 的子集的,当然只不过是一个特殊一点的子集。其从我认为 Model Predictive Control 和 Reinforcement Learning 都是用来解决 Sequential Decision-Making (序列决策) 问题的,并且它们可能会用到一些相同的思想。
接下来我们通过一张图来表示它们之间的关联:下图中是一个一般的解决序列决策问题的框架,目标函数主要由两部分构成:Lookahead Minimization + Heuristic Cost
Lookahead Minimization 其实就是把未来几步的 cost 加和在一起,用优化方法进行暴力搜索。Heuristic Cost 其实是通过 一些base policy (可以理解为一个非常简单非常粗糙的策略)。
把上面的公式和前面所讲的动态规划的表达式结合在一起来看:
不难发现实际上和标准的动态规划表达式(1.1)相比,Lookahead Minimization + Heuristic Cost 做的事情就是将 value function 做了如下近似替换:
为什么要做这样一个近似呢?关键之处在于 很难被精确获得,并且其计算量非常大和状态空间的大小是一样大的。拆成如上所述两项的好处就在于 前半部分 可以用暴力搜索来近似得到,后半部分由于是 步以后的 cost 所以只需要做一个粗糙的估计就好了,所以就是用一个 base policy 去近似一下就好了,以达到降低计算量的目的。
那么进一步上图中如果我们把 Heuristic Cost 这部分也去掉,即完全不考虑 L step 之后的 Heuristic Cost 的话,那这个模型就是 Model Predictive Control(模型预测控制)。 Model Predictive Control 就是连 这一项完全都不要了,当然也可以理解为令
Model Predictive Control 这么做的原因就是告诉我们我只需要 Lookahead 未来 L-step 就可以了,我认为L-step 之后的事情对当前没有影响,就直接简单粗暴给删掉了。Model Predictive Control 由于其实现相对简单,能满足实际问题对性能的要求,目前已经被广泛应用在实际中,可以说 Model Predictive Control 在实际的应用比 Optimal Control 比 Reinforcement Learning 可能还有更多更广,在AlphaGo兴起之前 Model Predictive Control 已经广泛的在过程工业中得到了实际应用。更多关于 Model Predictive Control 的介绍可以参考我之前写的这篇文章:
模型预测控制简介(model predictive control): zhuanlan.zhihu.com/p/99...
还是回到式(1.1)动态规划递推表达式中,如果知道 value function 的 closed form的话,那这个问题就可以用经典的 Optimal Control 来求解。在经典的 Optimal Control 中通过变分法可以导出 一个协态变量(对偶变量)的(微分)方程,直接解这个方程得到协态变量后就可以完全计算出 value function 这一项。可以看到 Optimal Control 对问题的要求极为苛刻,能计算出value function 这部分closed form的情况是极少的。
Reinforcement Learning 可以分为 Model-based 和 Model-free 两大类。Model-based 就是需要知道系统的动态模型,无论是微分方程也好还是状态转移矩阵也好,总之系统的机理是清晰可知的、Model-free着重考虑系统是一个黑箱的情况,甚至连 的表达式也无需知道,我只需要知道有什么样的状态和控制就可以得到 reward的值是多少即可(本质上就是一个黑箱)。这一点就是 Model-free 的 Reinforcement Learning 的一个特点,而前面所述的 Model Predictive Control 和 Optimal Control 都需要一个 Closed form 的 cost function 才能计算。
3 关于学习 Reinforcement Learning 的一点小意见
如前所述Reinforcement Learning 融合了不同社区的思想。不同的人看 Reinforcement Learning 侧重点不一样。例如做Markov decision process 的更青睐于 Model-based 的 Reinforcement Learning ,而CS或者AI出身的更喜欢 Model-free的Reinforcement Learning,例如 Control theory 出身的更喜欢从Optimal Control 和 Dynamic Programming来理解 Reinforcement Learning。
这种情况的坏处就是 在看书的时候 经常会给我们造成一些困惑,但同时好处就是 你可以看到在 Reinforcement Learning 的平台下 不同社区不同学科的思想在交融碰撞,有时候换一个角度看同样的东西 会得到一些新的东西,这些东西是我们做研究非常好的一些idea的起点。对于初学者可以先从一个角度来理解 Reinforcement Learning 但也同时要关注一下不同的角度,不要让自己过于陷入到一个预设的角度去看问题,这样你看问题就会很狭窄。
最后推荐一下强化学习的圣经书: Sutton R S, Barto A G. Reinforcement learning: An introduction[M]. MIT press, 2018.
这本内容是比较全的,同时没有太过复杂的数学内容,作者 Sutton 也是强化学习领域的巨佬,当然这本书相对来说更加偏纯正一点的强化学习的味道和我们笔记的 Bertsekas这本书侧重的角度就是有所不同的。
如果有同学喜欢代码实操的话,也可以参考这本书里边有很多代码实例
另外再推荐一个强化学习编程的平台 OpenAI gym ,这里边有很多demo,例如车摆,机械臂,各种小游戏,你可以直接运行demo里边的算法,也可以加入自己的算法。
下一期笔记:
王源:【强化学习与最优控制】笔记(五) 强化学习中值空间近似与策略空间近似概述