如何理解这个pets的损失函数
先把公式抄清楚
(从图片 OCR 出来的结果)
LPETS=n=1∑N{[u(sn,an)−s^n+1]⊤Σ−1(sn,an)[u(sn,an)−s^n+1]+logdetΣ(sn,an)} (从图片 OCR 出来的结果)
其中
- (sn,an) :第 n 条训练样本的「状态-动作」
- s^n+1 :神经网络对下一状态的 预测均值
- Σ(sn,an) :同一网络在同一前向传播里给出的 预测协方差矩阵(只取对角元素就是方差)
- u(sn,an) :真实的下一状态
- 整个网络通常叫 probabilistic ensemble(PE),PETS 用它来学环境动力学 p(sn+1∣sn,an) 。
1. 直观理解:
PETS 把动力学建模成一个高斯分布
sn+1∼N(s^n+1,Σ(sn,an)) 于是对一条样本,其负对数似然(NLL)就是
−logp(sn+1∣sn,an)=21(u−s^)⊤Σ−1(u−s^)+21logdetΣ+const 把常数去掉、乘以 2,就是上面公式里的两项。
2. 两项各自的作用
| 项 | 名称 | 作用 | 梯度行为 |
|---|---|---|---|
| Mahalanobis 残差 (u−s^)⊤Σ−1(u−s^) | 拟合误差 | 让预测均值 贴近真实;误差越大、权重越大 | 同时回传均值和方差 |
| log-det 正则 logdetΣ | 熵正则 | 防止网络把方差 无限放大 来「躺平」;鼓励给出「自信但不自负」的不确定性 | 只回传方差 |
合在一起,网络既要「猜得准」(减小残差),又要「说得清自己有多不确定」(方差不能太小——避免过度自信,也不能太大——避免偷懒)。
3. 与「普通 MSE」的区别
- MSE:只优化均值,方差固定 → 无法表达不确定性。
- PETS 损失:均值和方差一起学 → 得到异方差(heteroscedastic)噪声模型,方差大的区域 MPC 会自动更谨慎。
4. 在 PETS 整体框架中的角色
- 训练阶段:用上述损失训练 5~7 个独立网络(ensemble),每个网络输出 (s^,Σ) 。
- 规划阶段(MPC):
- 用 ensemble 采样多条动力学轨迹。
- 方差大的地方轨迹发散 → 不确定性高 → 奖励折扣大,从而策略自动「远离」没见过或噪声大的区域。
一句话总结
PETS 损失 = 高斯负对数似然
= 让网络同时学习「下一状态最可能在哪」和「我对这个预测有多不确定」,为后面的模型预测控制(MPC)提供「既准又自知」的动力学模型。
PETS 损失 = 高斯负对数似然
= 让网络同时学习「下一状态最可能在哪」和「我对这个预测有多不确定」,为后面的模型预测控制(MPC)提供「既准又自知」的动力学模型。
如何理解这个图中的实心点和虚心点
在 PETS(Probabilistic Ensembles with Trajectory Sampling)论文的图 16-2 里,
实心点与虚心点只是“可视化惯例”,用来区分两类不同的“动作候选”:
实心点与虚心点只是“可视化惯例”,用来区分两类不同的“动作候选”:
- 实心点 ●
已经通过 CEM / 随机采样 / 交叉-变异 产生,并且完成了整条轨迹 rollout(用某个模型或模型 ensemble)的 候选动作序列。
它们都有对应的“总回报”值,真正进入“比较→选最大”这一步。 - 虚心点 ○
表示 尚未被采样、或者 在上一轮 CEM 中被淘汰 的动作序列。
它们没有(或不再)被真正拿去跑动力学模型,因此也没有计算总回报。
画出来只是为了说明搜索空间(动作空间)里还存在其它潜在点,但当前迭代不处理它们。
一句话
● = 已 rollout、有分数的“正式选手”;
○ = 还没 rollout(或已被淘汰)的“围观群众”。
● = 已 rollout、有分数的“正式选手”;
○ = 还没 rollout(或已被淘汰)的“围观群众”。