文章目录
- 1. 历史沿革
- 1.1 控制论
- 1.2 最优控制与强化学习
- 2. 模型预测控制
1. 历史沿革
- 我本科做机器人的时候接触过一点控制,主要做了大量 PID 在嵌入式控制系统的应用;硕士期间研究方向是强化学习。在我调研 MPC 的过程中,发现它同时出现在最优控制和强化两个领域的教程中(好像更偏控制一点)。为了更好地理解这些方法在 big picture 中的定位,稍微梳理一下这些学科间的关系是有必要的
1.1 控制论
-
控制论这一学科起源于 1948 年维纳的著作《控制论》,在这部奠基性质的论著中,维纳将控制论定义为关于在动物和机器中控制与通信的科学
这里有几个关键词:
动物
、机器
、控制
、通信
,可见控制论早期是一个非常高层次的学科,它研究的核心问题是非常底层的且本质的,以至于可在多个相差甚远的学科之间共通 -
控制论的几个核心思想
- 一切通信和控制系统都包含有信息传输和信息处理的过程
- 控制论研究上具有统计属性。通信和控制系统接收的信息带有某种随机性质并满足一定统计分布,通信和控制系统本身的结构也必须适应这种统计性质,能对一类统计上预期的输入产生出统计上令人满意的动作
- 信息和反馈在控制系统中具有基础性地位
- 一个通信系统总能根据人们的需要传输各种不同的思想内容的信息
- 一个自动控制系统必须根据周围环境的变化自行调整自己的运动
-
控制论用抽象的方式揭示了一切控制系统的信息传输和信息处理的特性和规律,研究用不同的控制方式达到不同控制目的可能性和途径,而不涉及具体信号的传输和处理。由于所关注问题的本质性,控制论后续在生物、工程、经济、军事等多个方面得到了进一步研究,发展出当今一系列重要学科
1.2 最优控制与强化学习
- 工程控制论是控制论的一个重要分支,由钱学森于 1954 年创立的,它是受控工程系统的分析、设计和运行的理论。最优控制又是工程控制论的一个重要分支,它研究如何设计和实现系统的最优控制策略,以在给定约束条件下最大化或最小化某种性能指标
最优控制的核心思想是通过对系统的数学模型进行建模,将控制问题转化为一个最优化问题,通过求解这个最优化问题来得到最优的控制策略。最优控制方法可以应用于各种动态系统,包括连续时间系统和离散时间系统。
- 人工智能是计算机科学邻域的一个重要分支,它在多个方面受到控制论的影响和启发,特别是在强化学习这个分支中。主要体现在以下几个方面
- 动态系统建模:控制论强调对动态系统的建模和分析,这和强化学习考虑的智能体和环境的动态交互过程是想通的
- 状态空间表示:在强化学习中 MDP 状态-动作-奖励的表示方式与控制论中的状态空间表示相似
- 控制器设计与优化:在强化学习中涉及到对策略空间的搜索和优化。控制论中的优化技术,如动态规划、模型预测控制等,为强化学习中的策略学习提供了重要的方法和思想。特别是其中模型预测控制(MPC)可以视作一种Model-based类强化学习方法
- 稳定性和鲁棒性分析:控制论强调系统的稳定性和鲁棒性分析,这些稳定性分析方法和鲁棒控制思想为强化学习中的算法设计和性能分析提供了重要的参考和借鉴
- 最后,可以用下图将 MPC 和 Model-based RL 在各学科中的地位呈现出来
2. 模型预测控制
- 模型预测控制(Model predict control, MPC)代表这样一种思想:智能体在交互过程中学习环境的状态转移,仅对环境建模,不对策略显示建模。在每个时刻,MPC 基于当前环境观测,利用环境模型进行多步规划,并选择第一步的动作执行。
- 从控制角度看,MPC 中 k 时刻的动作决定了 k+1 时刻的观测,这带来了反馈,因此其属于一种闭环控制方法
- 从强化学习角度看,MPC 学习一个环境模型,然后利用它帮助智能体训练和决策,属于一种 Model-based 方法
- MPC 的交互过程如下图所示
- 基于当前环境信息,基于学到的环境模型进行多步预测
- 基于某种性能指标,对整条预测轨迹进行优化。这里本质是通过求解约束优化问题来优化动作序列
- 执行最优动作序列中的第一个动作
- 在下一个时刻重复以上三步,直到环境终止
- MPC 可以形式化定义如下:在 k k k 时刻,基于初始状态 s k s_k sk 和学到的环境模型 P ^ ( s ′ ∣ s , a ) \hat{P}(s'|s,a) P^(s′∣s,a) 预测并优化动作序列 a k , a k + 1 , . . . a_k, a_{k+1},... ak,ak+1,...,使得预测的多步(设为 H H H 步)轨迹
τ k : k + H = { s k , a k , s k + 1 , a k + 1 . . . } s . t . s i + 1 ∼ P ^ ( ⋅ ∣ s i , a i ) \tau_{k:k+H} = \{s_k, a_k, s_{k+1}, a_{k+1}...\}\quad s.t. \quad s_{i+1} \sim \hat{P}(·|s_i, a_i) τk:k+H={sk,ak,sk+1,ak+1...}s.t.si+1∼P^(⋅∣si,ai) 在性能指标 r ( s , a ) r(s,a) r(s,a) 下的累积和最大,得到最优预测动作序列
a k : k + H ∗ = arg max τ k : k + H ∑ i = k H r ( s i , a i ) = { a k ∗ , a k + 1 ∗ , . . . a k + H ∗ } a^*_{k:k+H} = \argmax_{\tau_{k:k+H}}\sum_{i=k}^H r(s_i, a_i) = \{a_k^*, a_{k+1}^*,...a_{k+H}^*\} ak:k+H∗=τk:k+Hargmaxi=k∑Hr(si,ai)={ak∗,ak+1∗,...ak+H∗} 然后选择动作序列中的第一个动作 a k ∗ a_k^* ak∗ 执行,接下来在 k + 1 k+1 k+1 时刻重复以上操作得到 a k + 1 ∗ a^*_{k+1} ak+1∗ 执行控制领域常用 x x x 表示状态,用 u u u 表示动作,用 l l l 表示性能指标。本文使用偏向强化学习的写法,用 s , a , r s,a,r s,a,r 表示状态观测、动作和奖励函数
- 从控制角度看
- MPC 相比其他控制方法的优势
- 由于在每一步求解一个(约束)优化问题,可以自然地引入约束(e.g. 动作范围;状态安全性;经济性…)
- 每个时刻根据当前状态重新优化轨迹,环境估计良好的前提下可以做到近似的最优控制
- MPC 相比其他控制方法的劣势
- 需要在线求解(约束)优化问题,对于某些系统计算成本较高
- MPC 相比其他控制方法的优势