上一期笔记,忘记的小伙伴可以复习一下:

大家如果留心看强化学习的书或者文献的话会发现有两大类不同的名词,有的时候叫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

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

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

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

上图是一个一般的模型,目标函数主要由两部分构成:Lookahead Minimization+Future

在上图中如果我们把Future这部分去掉,即完全不考虑L-step之后的future cost的话,那这个模型就是 Model Predictive Control(模型预测控制)。因为 future cost 其实要想精确计算是很困难的,那Model Predictive Control就告诉我们我只需要Lookahead 未来L-step就可以了,我认为L-step之后的事情对当前没有影响,就直接简单粗暴给删掉了。Model Predictive Control 由于其实现相对简单,能满足实际问题对性能的要求,目前已经被广泛应用在实际中,可以说 Model Predictive Control 在实际的应用比 Optimal Control 比 Reinforcement Learning 都要更多更广。更多关于 Model Predictive Control 的介绍可以参考我之前写的这篇文章:

在上图中如果我们把Lookahead Minimization去掉,同时Future 这部分有Close form的话,那这个问题就可以用经典的Optimal Control来求解。在经典的Optimal Control 中通过变分法可以导出 一个协态变量(对偶变量)的(微分)方程,直接解这个方程得到协态变量后就可以完全计算出Future这项。可以看到Optimal Control对问题的要求极为苛刻,能计算出Future 这部分Closed form的情况是极少的。

对于Model-free的Reinforcement Learning来说我甚至于连 [公式] 的表达式也无需知道,我只需要知道有什么样的状态和控制就可以得到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 但也同时要关注一下不同的角度,不要让自己过于陷入到一个预设的角度去看问题,这样你看问题就会很狭窄。

最后推荐一些资料:

强化学习的圣经书就是这本,这本内容是比较全的,同时没有太过复杂的数学内容,作者的角度就是从CS和AI的角度来讲Reinforcement Learning,和我们笔记的Bertsekas这本书角度就有所不同

强化学习(第2版)

如果有同学喜欢代码实操的话,也可以参考这本书里边有很多代码实例

深入浅出强化学习:原理入门

另外再推荐一个强化学习编程的平台 OpenAI gym ,这里边有很多demo,例如车摆,机械臂,各种小游戏,你可以直接运行demo里边的算法,也可以加入自己的算法。

下一期笔记:

王源:【强化学习与最优控制】笔记(五) 强化学习中值空间近似与策略空间近似概述