Model Predictive Control

模型预测控制

与 model-free 方法相比,MPC 方法并不构建一个显式的策略,而是根据已知的或习得的环境模型从当前状态 sts_{t} 开始,对多个候选动作序列进行推演,并选取回报最大的序列的第一个动作来执行:

ΠθMPC(st)=maxat:t+Hpθ()Est+1p(st, at)Est+2p(st+1, at+1)Est+Hp(sH1, aH1)[τ=0HγτR(st+τ, at+τ)]\Pi_{\theta}^{\mathrm{MPC}}(s_{t}) = \max_{a_{t : t + H} \sim p_{\theta}(\cdot)} \mathcal{E}_{s_{t + 1} \sim p(\cdot \mid s_{t},\ a_{t})} \mathcal{E}_{s_{t + 2} \sim p(\cdot \mid s_{t + 1},\ a_{t + 1})} \cdots \mathcal{E}_{s_{t + H} \sim p(\cdot \mid s_{H - 1},\ a_{H - 1})} \left[ \sum_{\tau = 0}^{H} \gamma^{\tau} \mathcal{R}(s_{t + \tau},\ a_{t + \tau}) \right]

其中 HH 为前向推演的长度,pθ()p_{\theta}(\cdot) 为生成候选动作序列的分布。

随机打靶方法

随机打靶方法在生成候选动作序列时直接在动作空间中进行随机采样出 NN 条序列,通过比较选出最优动作。

Cross Entropy Method(CEM)

与随机打靶不同,CEM 维护一个带参数的分布,例如 {N(μτ, Στ)}τ=0H1\Big\{ \mathcal{N}(\mu_{\tau},\ \Sigma_{\tau}) \Big\}_{\tau = 0}^{H - 1},并迭代提升分布采样质量:

  1. 通过分布 {N(μτ, Στ)}τ=0H1\Big\{ \mathcal{N}(\mu_{\tau},\ \Sigma_{\tau}) \Big\}_{\tau = 0}^{H - 1}, 采样出 NN 条长度为 HH 的动作序列 A1, A2, , AN\boldsymbol{A}_{1},\ \boldsymbol{A}_{2},\ \cdots,\ \boldsymbol{A}_{N}
  2. 通过环境模型 P\mathcal{P}R\mathcal{R} 对以上动作序列进行 rollout 后筛选出 NeN_{e} 条最优的动作序列 A1, A2, , ANe\boldsymbol{A}_{1},\ \boldsymbol{A}_{2},\ \cdots,\ \boldsymbol{A}_{N_{e}}
  3. 利用筛选出的最优动作序列对分布参数进行更新:

μτ1Nek=1Neat+τΣτ1Nek=1Ne(at+τμτ)(at+τμτ)\mu_{\tau} \leftarrow \frac{1}{N_{e}} \sum_{k = 1}^{N_{e}} a_{t + \tau} \qquad \Sigma_{\tau} \leftarrow \frac{1}{N_{e}} \sum_{k = 1}^{N_{e}} (a_{t + \tau} - \mu_{\tau}) (a_{t + \tau} - \mu_{\tau})^{\top}

重复若干次以上过程后将动作序列的第一个动作的均值 μ0\mu_{0} 作为当前状态要采取的动作。

Probabilistic Ensembles with Trajectory Sampling(PETS)

概率模型

PETS 模型仍然使用 CEM 进行规划控制,同时使用高斯分布来建模状态转移概率:

pθ(st+1st, at)=(2π)ds/2Σθ(st, at)1/2exp[12(st+1μθ(st, at))Σθ1(st, at)(st+1μθ(st, at))]p_{\theta}(s_{t + 1} \mid s_{t},\ a_{t}) = (2 \pi)^{-d_{s} / 2} | \Sigma_{\theta}(s_{t},\ a_{t}) |^{-1 / 2} \exp \left[ -\frac{1}{2} \Big( s_{t + 1} - \mu_{\theta}(s_{t},\ a_{t}) \Big)^{\top} \Sigma_{\theta}^{-1}(s_{t},\ a_{t}) \Big( s_{t + 1} - \mu_{\theta}(s_{t},\ a_{t}) \Big) \right]

其中 μθ:Rds×RdaRds\mu_{\theta} : \mathbb{R}^{d_{s}} \times \mathbb{R}^{d_{a}} \mapsto \mathbb{R}^{d_{s}}Σθ:Rds×RdaRds×ds\Sigma^{\theta} : \mathbb{R}^{d_{s}} \times \mathbb{R}^{d_{a}} \mapsto \mathbb{R}^{d_{s} \times d_{s}} 是参数化的均值和协方差矩阵。参数的优化目标为:

minθE(s, a)DDKL(p(s, a)  pθ(s, a))=E(s, a)DEsp(s, a)lnp(ss, a)pθ(ss, a)maxθE(s, a)DEsp(s, a)lnpθ(ss, a)1D(s, a, s)Dlnpθ(ss, a)\begin{aligned} &\min_{\theta} \mathcal{E}_{(s,\ a) \sim \mathcal{D}} D_{\mathrm{KL}} \Big( p(\cdot \mid s,\ a)\ \|\ p_{\theta}(\cdot \mid s,\ a) \Big) = \mathcal{E}_{(s,\ a) \sim \mathcal{D}} \mathcal{E}_{s' \sim p(\cdot \mid s,\ a)} \ln \frac{p(s' \mid s,\ a)}{p_{\theta}(s' \mid s,\ a)} \\[5mm] \Rightarrow &\max_{\theta} \mathcal{E}_{(s,\ a) \sim \mathcal{D}} \mathcal{E}_{s' \sim p(\cdot \mid s,\ a)} \ln p_{\theta}(s' \mid s,\ a) \approx \frac{1}{|\mathcal{D}|} \sum_{(s,\ a,\ s') \in \mathcal{D}} \ln p_{\theta}(s' \mid s,\ a) \end{aligned}

其中

lnpθ(ss, a)=12(sμθ(s, a))Σθ1(s, a)(sμθ(s, a))12lnΣθ(s, a)ds2ln2π\ln p_{\theta}(s' \mid s,\ a) = -\frac{1}{2} \Big( s' - \mu_{\theta}(s,\ a) \Big)^{\top} \Sigma_{\theta}^{-1}(s,\ a) \Big( s' - \mu_{\theta}(s,\ a) \Big) - \frac{1}{2} \ln |\Sigma_{\theta}(s,\ a)| - \frac{d_{s}}{2} \ln 2 \pi

将优化目标进一步重写为:

minθL(θ)=(s, a, s)D(sμθ(s, a))Σθ1(s, a)(sμθ(s, a))+lnΣθ(s, a)\min_{\theta} \mathcal{L}(\theta) = \sum_{(s,\ a,\ s') \in \mathcal{D}} \Big( s' - \mu_{\theta}(s,\ a) \Big)^{\top} \Sigma_{\theta}^{-1}(s,\ a) \Big( s' - \mu_{\theta}(s,\ a) \Big) + \ln |\Sigma_{\theta}(s,\ a)|

轨迹采样

通过学习得到的拟合环境模型的动态概率模型包含两种不确定性,分别是:

不确定性 描述
偶然不确定性(aleatoric uncertainty) 环境动态系统中本身存在的不确定性
认知不确定性(epistemic uncertainty) 训练数据较少导致的认知不足引起的不确定性

PETS 为了捕捉认知不确定性,使用真实数据集 D\mathcal{D} 随机采样的数据 Db\mathcal{D}_{b} 来训练 BB 个基模型 pθb(st+1st, at)p_{\theta_{b}}(s_{t + 1} \mid s_{t},\ a_{t})。同时在规划期间做 rollout 时每条轨迹的每个时间步都会从中挑选一个基模型 b(p, t)b(p,\ t) 进行预测。


Model Predictive Control
http://example.com/2024/08/11/MPC/
Author
木辛
Posted on
August 11, 2024
Licensed under