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∗ 执行 - 从控制角度看
- MPC 相比其他控制方法的优势
- 由于在每一步求解一个(约束)优化问题,可以自然地引入约束(e.g. 动作范围;状态安全性;经济性…)
- 每个时刻根据当前状态重新优化轨迹,环境估计良好的前提下可以做到近似的最优控制
- MPC 相比其他控制方法的劣势
- 需要在线求解(约束)优化问题,对于某些系统计算成本较高
- MPC 相比其他控制方法的优势