LeCun认为MPC比强化学习更好?一篇文章对比MPC与强化学习

本文的素材来自于清华大学李升波教授撰写的书籍《Reinforcement Learning for Sequential Decision and Optimal Control》。书籍及代码链接点这里

MPC是比强化学习更好的方法吗?

相比于强化学习(RL),我确实更喜欢模型预测控制(MPC)。至少从 2016 年起,我就一直在强调这一点。强化学习在学习任何新任务时都需要进行极其大量的尝试。相比之下,模型预测控制是零样本的:如果你有一个良好的世界模型和一个良好的任务目标,模型预测控制就可以在不需要任何特定任务学习的情况下解决新任务。这就是规划的魔力。这并不意味着强化学习是无用的,但它的使用应该是最后的手段。

——Yann LeCun

在这里插入图片描述
近日,Meta首席科学家Yann LeCun发布的贴子可谓一石激起千层浪,引起了学术界和业界的广泛关注。在这篇贴子中,LeCun表示,相比于强化学习(RL),他更喜欢模型预测控制(MPC)。强化学习(RL)被LeCun所诟病的点在于其高昂的训练开销。LeCun认为,MPC是0样本的,不需要进行提前训练就可以实现实时控制。LeCun之前在The Philosophy of Deep Learning会议上的发音也曾提到过类似的观点。那么,MPC确实比强化学习更好吗?LeCun的观点是否站得住脚?本文将对MPC与强化学习进行对比,探讨两者的优劣,并在最后给出笔者自己对于这个问题的思考。

什么是强化学习(RL)?

强化学习的定义有很多,这里选取清华大学李升波教授在书籍《Reinforcement Learning for Sequential Decision and Optimal Control》1中给出的定义:
max ⁡ π / min ⁡ π J ( π ) = E s ∼ d i n i t ( s ) { v π ( s ) } , subject to ( 1 ) P r { s t + 1 = s ′ ∣ s t = s , a t = a } = P s s ′ a , o r ( 2 ) D = { s 0 , a 0 , s 1 , a 1 , s 2 , a 2 , ⋯ ⋯   , s t , a t , s t + 1 , a t + 1 , ⋯   } , a ∈ A , s ∈ S , \begin{gathered} \max_\pi/\min_\pi J(\pi)=\mathbb{E}_{s\sim d_{\mathrm{init}}(s)}\{v^\pi(s)\}, \\ \text{subject to} \\ (1)\mathrm{Pr}\{s_{t+1}=s^{\prime}|s_{t}=s,a_{t}=a\}=\mathcal{P}_{ss^{\prime}}^{a}, \\ or \\ (2)\mathcal{D}=\{s_{0},a_{0},s_{1},a_{1},s_{2},a_{2},\cdots\cdots,s_{t},a_{t},s_{t+1},a_{t+1},\cdots\}, \\ a\in\mathcal{A},s\in\mathcal{S}, \end{gathered} πmax/πminJ(π)=Esdinit(s){vπ(s)},subject to(1)Pr{st+1=sst=s,at=a}=Pssa,or(2)D={s0,a0,s1,a1,s2,a2,⋯⋯,st,at,st+1,at+1,},aA,sS, 这里的 J ( π ) J(\pi) J(π)是一个关于策略 π \pi π的函数,表示策略 π \pi π的好坏,叫做 overall objective function (或者performance index),是初始状态s的函数,可以看成对于不同的初始状态s的值函数按照初始状态的分布进行加权平均; d i n i t ( s ) d_{\mathrm{init}}(s) dinit(s)是一个初始状态的分布; v π ( s ) v^\pi(s) vπ(s)是策略 π \pi π的状态值函数。约束条件为各个状态之间的转移概率(环境的模型)或者是一个数据集 D \mathcal{D} D,分别对应于已知和未知环境模型的情况。可以说,RL就是在已知对于环境的某种描述(环境模型 or 与环境交互得到的数据集)的情况下,通过学习一个策略 π \pi π,最大化或最小化一个关于初始状态s的目标函数。

强化学习有很多分类方法,对应于不同看待问题的角度:

  • Model-Based vs. Model-Free:强化学习可以分为基于模型和无模型的两种方法。基于模型的强化学习是指在已知环境模型(已知状态转移概率 P s s ′ a \mathcal{P}_{ss^{\prime}}^{a} Pssa),无模型的强化学习是指在未知环境模型(未知状态转移概率)的情况下,通过采样得到的数据集 D \mathcal{D} D来学习一个策略 π \pi π
  • Policy Iteration vs. Value Iteration:强化学习可以分为策略迭代和值迭代两种方法。策略迭代由策略评估和策略改进两个步骤组成,两个步骤交替进行,直到策略收敛。值迭代是通过fixed-point iteration的方法,直接求解最优值函数,然后通过最优值函数得到最优策略。
  • On-Policy vs. Off-Policy:强化学习可以分为在线学习和离线学习两种方法。在线学习是指在探索环境的策略和用于评估改进的策略是同一个策略。离线学习是指在探索环境的策略和用于评估改进的策略是不同的策略,分别记为 π t a r g e t \pi_{target} πtarget π b e h a v i o r \pi_{behavior} πbehavior,两个策略之间的转换需要通过重要性采样(IS)来进行。
  • Indirect RL vs. Direct RL:强化学习可以分为间接强化学习和直接强化学习两种方法。Indirect RL通过使用最优性条件,通过求解Bellman方程来得到最优值函数和最优策略。Direct RL是直接通过在策略空间中搜索来得到最优策略。

什么是模型预测控制(MPC)?

在这里插入图片描述

MPC是一种控制论中的经典方法,用于解决环境模型已知的最优控制问题。首先,我们需要对于环境进行建模,通常使用状态空间模型:之后,需要定义一个合适的代价函数(cost function)来描述控制器的性能好坏;之后,在每个时间步t,MPC获取当前已知的信息,并通过求解未来一段时间内的优化问题,来得到这段时间的预测状态和最优控制输入序列;最后,MPC将最优控制输入序列中的第一个控制输入作为当前时刻的控制输入,然后进入下一个时间步。它的整体工作流程如下图所示:
在这里插入图片描述

RL与MPC的对比

通过上面的介绍,相信大家已经对于RL和MPC有了基本的认识。下面,我们将对RL和MPC进行对比,探讨两者的优劣:

  • 环境模型
    • 是否需要环境模型:MPC一定要对环境进行建模才能使用,而RL这方面就比较灵活,既可以在已知环境模型的情况下使用(Model-Based),也可以在未知环境模型的情况下使用(Model-Free)。
    • 环境模型的形式:MPC对于环境模型的要求比较高,通常需要一个精确的状态空间模型,而RL一般使用概率模型(状态转移概率 P s s ′ a \mathcal{P}_{ss^{\prime}}^{a} Pssa)来描述环境。
    • 确定性 or 随机性模型:MPC通常使用确定性模型,而RL通常使用随机模型(从RL对环境的建模方式——概率模型也可看出)。
  • 优化目标
    MPC通常使用未来一段时间(horizon)内的代价函数 V ( x ) = ∑ i = 0 N − 1 l ( x t + i , u t + i ) ∣ x t = x V(x)=\sum_{i=0}^{N-1}l(x_{t+i},u_{t+i})|_{x_t=x} V(x)=i=0N1l(xt+i,ut+i)xt=x来描述控制器的性能好坏,而RL采用一个关于初始状态s的值函数的期望 J ( π ) = E s ∼ d i n i t ( s ) { v π ( s ) } J(\pi)=\mathbb{E}_{s\sim d_{\mathrm{init}}(s)}\{v^\pi(s)\} J(π)=Esdinit(s){vπ(s)}来描述策略 π \pi π的好坏。
  • 训练开销
    MPC不需要训练,而RL需要大量的训练数据来学习一个策略 π \pi π
  • Online or Offline
    RL是离线的,前期需要大量的训练数据。但是一旦训练好了,RL在实际使用的时候计算开销是很小的,容易做到实时控制。而MPC是在线的,每个时间步都需要求解一个优化问题,计算开销比较大。
  • 如何优化
    • 如何在状态空间中搜索:RL是通过在整个状态空间中搜索来得到最优策略,而MPC是一种点到点的优化,每次求解优化问题可以看成是在从当前时刻状态到下一时刻状态之间的转移。
      在这里插入图片描述
    • 对不可行状态的鲁棒性:不可行状态通常是由于一些约束条件导致的。MPC因为是点到点的优化,因此对于不可行状态的鲁棒性较好。而RL在全空间的优化导致其容易陷入不可行状态。
  • 描述语言
    MPC与RL在描述问题的语言上也有所不同。MPC通常使用控制论中的术语,如状态空间模型、代价函数、控制输入等;而RL通常使用强化学习中的术语,如策略、值函数、环境模型等。这里这章来自于《Reinforcement Learning for Sequential Decision and Optimal Control》一书中的表格很好的概括了两者的区别:
    在这里插入图片描述

讨论:MPC真的比RL更好吗?

通过上面的介绍,相信读者已经对于MPC和RL有了基本的认识,那么现在笔者就要来回答一下开篇提出的问题:LeCun所说的是否有道理?MPC真的是一种比RL更好的方法吗?笔者并不赞同LeCun的观点,RL与MPC相比具有明显的优势。下面先带读者回顾一下LeCun的观点,最后将给出笔者对于这个问题的总结。

强化学习在学习任何新任务时都需要进行极其大量的尝试。相比之下,模型预测控制是零样本的。

这句话本身没有问题,就是对于RL和MP从各自工作方式的一个描述。但是,这句话容易让人产生“零样本”的MPC优于需要“极其大量的尝试”的RL的错觉。实际上,这里只是一个把主要的计算开销放在训练阶段和控制阶段的区别。RL确实在训练的时候需要大量的样本,但是一旦获得了一个好的策略,在实际推理时的速度是很快的,几乎可以做到实时控制;而MPC之所以不需要样本进行训练,是因为它在每个时间步都需要求解一个优化问题,这个计算开销是很大的,随着问题规模的增长很快会到达不可接受的程度。

如果你有一个良好的世界模型和一个良好的任务目标,模型预测控制就可以在不需要任何特定任务学习的情况下解决新任务。

这句话的前提是“如果你有一个良好的世界模型和一个良好的任务目标”。这里的核心是所谓的“良好的世界模型”,这种模型本身是很难构造的,通常需要大量的领域知识和经验,建模难度随着问题规模的增长会很快趋于不可行,而且很多问题难以找到合适的方式对其建模。其次,即使获得了这样的模型,我们对其建模的数学手段与真实的环境之间必然因为建模精度等问题出现结构性的误差,这样蕴含在建模阶段的误差会导致后续MPC在控制的时候出现误差累积的问题而偏离真实值。最后,这样的模型是很难迁移的,一旦环境发生了变化,我们就需要重新构建一个新的模型。这样近似于手工式的定义与求解的做法很难泛化到实际场景中。而RL因为在训练时采用了大量数据,本身就具有较强的泛化能力,鲁棒性更好。

因此,笔者认为,RL与MPC各有优劣,MPC更适于求解模型简单的控制任务,而RL适合更多实际场景中的任务,这些任务往往是复杂的、高维的、具有随机性的。因此,笔者不赞同LeCun认为MPC比RL更好的观点,具体原因总结如下:

  • 对于环境的建模是困难的、case-by-case的,需要根据每种情况单独设计建模方式,缺乏通用的建模方式,效率较低。即使建模完成,得到的数学模型和实际环境之间也会存在误差,难以做到对于环境动力学的准确建模。
  • MPC在控制时需要在每一步都求解一个优化问题,计算开销较大。对于复杂的模型难以做到实时优化求解。
  • MPC在建模时通常针对确定性模型,但是实际环境中往往存在很多的随机性因素,这样的模型很难适应实际环境。

因此,要想真正的在实际场景中应用,具有较强的泛化能力和鲁棒性的RL更适合。当然,对于简单的问题或复杂系统里的某些简单子问题,MPC也是一个很好的选择。


  1. 《Reinforcement Learning for Sequential Decision and Optimal Control》,清华大学李升波教授著 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值