
## 1. 为什么机器人行为克隆不能被简单地看成普通回归

最基础的行为克隆数据集可以写成：
$$
\mathcal D
=
{(o_t,a_t)}_{t=1}^{N},
$$

其中：

* ($o_t$) 是机器人在时刻 ($t$) 得到的观测；
* ($a_t$) 是示范者在该观测下执行的动作。

普通确定性策略写成：

$$
\hat a_t=f_\theta(o_t),
$$
并通过均方误差训练：


$$
\mathcal L_{\mathrm{BC}}(\theta)

=
\mathbb E_{(o,a)\sim\mathcal D}
\left[
||a-f_\theta(o)||_2^2
\right].
$$


表面上，它和一般监督回归没有区别。但它的总体最优解是**条件均值**：


$$
f_\theta^*(o)
=
\mathbb E[a\mid o].
$$

问题在于，机器人动作的条件均值不一定是一个合理动作。

---

## 2. 多模态动作分布是什么

假设机器人需要绕过一个障碍物，它可以：
$$
a^{(L)}=\text{从左侧绕行},
$$
也可以：

$$
a^{(R)}=\text{从右侧绕行}.
$$

于是同一观测下的动作分布可能是：

$$
p(a\mid o)

=
\frac12p_L(a\mid o)
+
\frac12p_R(a\mid o).
$$

这就是多模态分布：概率质量集中在多个彼此分离的区域，而不是集中在一个中心附近。

使用 **MSE** 训练的确定性策略倾向于输出：
$$
\hat a
\approx
\frac12a^{(L)}
+
\frac12a^{(R)}.
$$
但“左绕动作和右绕动作的平均”可能恰好指向障碍物。也就是说：
$$
\text{两个正确动作的平均}
\not\Rightarrow
\text{一个正确动作}.
$$

这类现象在机器人操作中很常见：

* 从物体左侧抓取或右侧抓取；
* 正手抓取或反手抓取；
* 先操作物体 A 或先操作物体 B；
* 推动物体或重新抓取物体；
* 选择不同的接触点和接触方向。

RoboMimic 的研究也指出，从人类离线示范学习时，性能明显受到示范质量、算法设计和训练停止准则等因素影响；人类数据中的行为差异不能简单地被视为普通回归噪声。([arXiv][2])

---

## 3. 以往方法如何表示多模态动作

### 3.1 高斯混合模型

一种方法是令策略输出高斯混合分布：
$$
p_\theta(a\mid o)
=

\sum_{m=1}^{M}
\pi_m(o)
\mathcal N
\left(
a;\mu_m(o),\Sigma_m(o)
\right).
$$
其中每个高斯分量代表一种动作模式，例如：

* 第一个分量表示左侧绕行；
* 第二个分量表示右侧绕行。

它比单高斯或确定性回归更有表达能力，但仍有一些限制：

1. 必须预先指定分量数量 ($M$)；
2. 复杂轨迹可能无法被少量高斯分量准确表示；
3. 某些分量可能不被使用，即发生模式坍缩；
4. 动作维度和动作序列长度增加后，协方差建模变得困难。

---

### 3.2 动作离散化

Behavior Transformer 将连续动作划分为若干簇。策略首先预测离散动作类别，再预测相对于类别中心的连续偏移：


$$
\hat a

=
c_{\hat z}
+
\Delta a.
$$


其中：

* ($\hat z$) 是动作簇类别；
* ($c_{\hat z}$) 是对应簇中心；
* ($\Delta a$) 是连续修正量。

这种方法可以借助分类模型表示多个动作模式，但动作表达能力受到聚类数量和聚类质量影响。动作维度越高，需要的类别数量通常越多。BeT 的核心正是将动作离散化与连续偏移预测结合，以建模未标注示范中的多种行为模式。([arXiv][3])

---

### 3.3 隐式策略

显式策略直接给出动作或动作分布的参数：

$$
o\longmapsto a
$$
或者：

$$
o\longmapsto
{\pi_m,\mu_m,\Sigma_m}_{m=1}^{M}.
$$
**隐式策略则不直接输出动作，而是学习一个能量函数**：
$$
E_\theta(o,a).
$$
动作通过优化问题得到：

$$
a^*

=
\arg\min_a E_\theta(o,a).
$$

对应的条件概率分布可写为：
$$
p_\theta(a\mid o)
=

\frac{
\exp[-E_\theta(o,a)]
}{
Z_\theta(o)
},
$$
其中：
$$
Z_\theta(o)
=

\int
\exp[-E_\theta(o,a)],da
$$
是归一化常数。

**多个动作都可以具有较低能量**，因此隐式策略能够自然表示：

* 多值映射；
* 不连续映射；
* 多模态条件分布。

IBC 的主要结论之一，就是基于能量模型的隐式策略能够更好地处理复杂、多值和不连续的机器人策略映射。([arXiv][4])

---

## 4. Diffusion Policy 与显式策略、隐式策略有什么区别

三种方法可以概括为：

### 显式策略
$$
a=f_\theta(o).
$$
一次前向传播，直接给出动作。
### **能量型隐式策略**

$$
a^*

=
\arg\min_a E_\theta(o,a).
$$
先评价候选动作的能量，再搜索低能量动作。
### Diffusion Policy
$$
A^K\sim\mathcal N(0,I),
$$
然后迭代执行：
$$
A^K
\rightarrow A^{K-1}
\rightarrow\cdots
\rightarrow A^0.
$$
它不是直接输出动作，也不是在动作空间里盲目搜索，而是学习一个向量场，逐步把随机噪声变成合理动作序列。

因此，Diffusion Policy 可以被看成一种特殊的隐式生成策略：
$$
\text{随机噪声}
\overset{\text{学习到的梯度场}}{\longrightarrow}
\text{有效动作序列}.
$$
---

## 5. 什么是动作分布的 score

给定观测 ($O$)，动作序列的条件概率分布为：

$$
p(A\mid O).
$$

其 score function 定义为：
$$
s(A,O)

=
\nabla_A\log p(A\mid O).
$$
这里的 score 不是“分数”或“任务奖励”，而是：

> **条件对数概率密度相对于动作变量的梯度。**

它是一个与动作 ($A$) 维度相同的向量。

例如：
$$
A=
\begin{bmatrix}
a_1\\
a_2
\end{bmatrix},
$$
则：


$$
score(A,O)

=
\begin{bmatrix}
\frac{\partial}{\partial a_1}\log p(A\mid O)\\
\frac{\partial}{\partial a_2}\log p(A\mid O)
\end{bmatrix}.
$$

它回答的问题是：

> **从当前候选动作 (A) 出发，朝哪个方向移动，会最快增加该动作在示范分布下的概率密度？**

注意原文中的 “action-score gradient” 容易引起误解。严格地说，**score 本身就是对数密度的梯度**，即：

$$
\text{score}
=

\nabla_A\log p(A\mid O),
$$

而不是再对 score 求一次梯度。

DDPM 与 score-based generative modeling 之间存在紧密联系：扩散模型通过不同噪声等级下的去噪训练，间接获得被噪声扰动后的数据分布的 score。([arXiv][5])

---

## 6. 为什么 score 能引导动作生成

考虑一个简单的一维双模态分布：
$$
p(a\mid o)
=

\frac12\mathcal N(a;-1,\sigma^2)
+
\frac12\mathcal N(a;1,\sigma^2).
$$
它在：

$$
a=-1,\qquad a=1
$$

附近有两个高概率区域。

score：
$$
score(a,o)
=

\frac{\partial}{\partial a}
\log p(a\mid o)
$$

在不同位置会指向不同的概率峰：

* 若当前位置靠近左侧峰，score 倾向于把动作推向 (-1)；
* 若当前位置靠近右侧峰，score 倾向于把动作推向 (1)；
* 不同随机初始化可能进入不同吸引域。

因此，它不会像 MSE 回归一样必然输出两个模式的平均值 (0)，而是可以分别采样得到：
$$
a\approx-1
$$

或：
$$
a\approx1.
$$

---

## 7. 随机朗之万动力学是什么

典型的 Langevin 更新可以写为：

$$
A_{n+1}

=
A_n
+
\eta\nabla_A\log p(A_n\mid O)
+
\sqrt{2\eta},\xi_n,
$$

其中：
$$
\xi_n\sim\mathcal N(0,I).
$$

它包含两部分。

### 概率梯度项
$$
\eta,\nabla_A\log p(A_n\mid O)
$$
将当前动作推向更高概率区域。

### 随机噪声项
$$
\sqrt{2\eta},\xi_n
$$

**防止采样过程过早陷入某个局部区域，并使采样过程在适当条件下对应目标概率分布，而不只是执行确定性梯度上升。**

如果完全删除随机噪声，就更接近：
$$
A_{n+1}

=
A_n
+
\eta\nabla_A\log p(A_n\mid O),
$$

**即对概率密度执行确定性梯度上升**。==这样通常只会寻找某个模式，而不是严格意义上从完整分布中采样。==

**Song 和 Ermon 的 score-based 生成方法正是通过逐渐降低噪声等级的 Langevin dynamics，将随机噪声逐步移动到数据分布的高概率区域。**([arXiv][6])

---

## 8. Diffusion Policy 中的去噪过程

Diffusion Policy 首先采样一个随机动作序列：

$$
A_t^K\sim\mathcal N(0,I).
$$

随后执行 ($K$) 次去噪：
$$
A_t^{k-1}
=

\alpha_k
\left(
A_t^k

-
\gamma_k
\epsilon_\theta(O_t,A_t^k,k)
+
\sigma_k z_k
\right),
$$
其中：

* ($A_t^k$) 是第 ($k$) 个噪声等级下的动作序列；
* ($O_t$) 是视觉观测条件；
* ($\epsilon_\theta$) 是噪声预测网络；
* ($z_k\sim\mathcal N(0,I)$)；
* ($\alpha_k,\gamma_k,\sigma_k$) 由噪声调度决定。

经过多次更新（多步去噪）：
$$
A_t^K
\rightarrow
A_t^{K-1}
\rightarrow
\cdots
\rightarrow
A_t^0,
$$

最终 ($A_t^0$) 成为一段符合示范动作分布的动作序列。

标准 DDPM 同样从高斯噪声开始，通过学习到的逆去噪过程逐步产生结构化样本。([arXiv][5])

---

## 9. “能够表示任意可归一化分布”

 Diffusion Policy 可以表达 arbitrary normalizable distributions。

“可归一化”意味着存在有限的归一化常数：

$$
Z
=

\int \tilde p(A)dA
<
\infty,
$$

因而可以得到合法概率分布：
$$
p(A)

=
\frac{\tilde p(A)}{Z}.
$$

**要强调的是：score-based 模型不像固定数量的高斯混合模型那样，预先限制分布只能具有特定参数形式。**

它原则上可以表示：

* 单模态分布；
* 多模态分布；
* 非对称分布；
* 弯曲、非凸的高概率流形；
* 各动作维度之间具有复杂相关性的分布。

但这是一种**函数表示层面的理论能力**，并不意味着有限数据、有限网络和有限去噪步数下能够精确学习任意分布。实际效果仍取决于：


$$
\text{数据覆盖}
+
\text{模型容量}
+
\text{优化效果}
+
\text{采样精度}.
$$

---

## 10. 为什么高维输出能力对机器人很重要

机器人动作通常不仅包含一个标量，而可能包括：
$$
a_t=
\begin{bmatrix}
x_t&y_t&z_t&
r_{1,t}&r_{2,t}&r_{3,t}&
g_t
\end{bmatrix}^{!\top},
$$
其中分别表示：

* 末端位置；
* 末端姿态；
* 夹爪状态。

如果一次预测 ($T_p$) 步动作，则输出维度为：
$$
T_p d_a.
$$
例如：
$$
d_a=7,\qquad T_p=16,
$$
那么策略需要联合生成一个：
$$
16\times7=112
$$
维的动作变量。

图像扩散模型已经表明，扩散过程能够处理极高维、强相关的输出变量。Diffusion Policy 将这一能力从图像像素空间迁移到动作时间序列空间。原始 DDPM 的重要特点之一，就是能够在与数据维度相同的高维潜变量空间中逐步进行生成。([arXiv][5])

---

## 11. 为什么联合预测动作序列能增强时间一致性

假设机器人可以从左侧或右侧完成任务。

如果每一步独立预测：

$$
p(a_t\mid o_t),
$$

则可能出现：
$$
a_t=\text{向左},
$$
$$
a_{t+1}=\text{向右},
$$

$$
a_{t+2}=\text{向左}.
$$


每一步单独看都可能有较高概率，但组合起来会产生抖动或摇摆。

Diffusion Policy 联合建模：
$$
p(a_t,a_{t+1},\ldots,a_{t+T_p-1}\mid O_t).
$$
它采样的是完整轨迹模式，例如：
$$
A^{(L)}
=

(a_t^{(L)},a_{t+1}^{(L)},\ldots),
$$
或者：
$$
A^{(R)}

=
(a_t^{(R)},a_{t+1}^{(R)},\ldots).
$$

因此模式选择发生在**动作序列层面**，而不是每个时间步各自做一次选择。

这使策略更容易：

* 在一次执行中坚持同一种绕行方向；
* 连贯地完成抓取、抬起和放置；
* 避免不同动作模式之间频繁跳变；
* 学习停顿、周期动作和多阶段行为。

---

## 12. “避免短视规划”是什么意思

单步策略主要优化：
$$
a_t\sim p(a_t\mid o_t).
$$
它只需要预测“现在下一步应该做什么”，不必显式保证后续动作是否容易衔接。

动作序列策略预测：
$$
A_t=
(a_t,a_{t+1},\ldots,a_{t+T_p-1}),
$$
因而必须同时考虑多个未来时刻的协调关系。

例如抓杯子时，单步策略可能只关注“靠近杯子”；序列策略则需要产生一段连贯轨迹：

$$
\text{靠近}
\rightarrow
\text{调整姿态}
\rightarrow
\text{闭合夹爪}
\rightarrow
\text{抬起}.
$$

不过这里的“规划”不能和基于动力学模型、奖励函数和在线优化的经典规划完全等同。

Diffusion Policy 的未来动作关系来自示范分布：
$$
p(A_t\mid O_t),
$$

而不是通过显式求解：

$$
\arg\min_{A_t}
\sum_{\tau}c(s_{t+\tau},a_{t+\tau})
$$

得到。因此更准确地说，它实现的是：

> 基于示范数据学习到的隐式短期轨迹规划。

---
## 13. 为什么能量策略的归一化常数难以计算

能量模型定义：
$$
p_\theta(a\mid o)
=

\frac{e^{-E_\theta(o,a)}}{Z_\theta(o)},
$$
其中：
$$
Z_\theta(o)

=
\int_{\mathcal A}
e^{-E_\theta(o,a)}da.
$$
若动作空间是高维连续空间，这一积分通常无法解析计算。

直接最大化专家动作的对数似然：
$$
\log p_\theta(a\mid o)
=

-E_\theta(o,a)-\log Z_\theta(o)
$$
时，需要计算：

$$
\nabla_\theta\log Z_\theta(o).
$$

**该项等价于对当前模型动作分布求期望，因此通常需要**：

* 负样本；
* MCMC；
* 对比学习；
* 重要性采样；
* 其他近似采样方法。

如果负样本没有覆盖模型错误赋予低能量的区域，模型可能在未采样区域形成错误的能量谷，而训练损失却无法发现它。

---

## 14. 为什么学习 score 可以消去归一化常数

动作 score 为：
$$
\nabla_a\log p_\theta(a\mid o).
$$
代入能量模型：
$$
\log p_\theta(a\mid o)
=

-E_\theta(o,a)-\log Z_\theta(o),
$$
得到：
$$
\nabla_a\log p_\theta(a\mid o)
=
 -\nabla_aE_\theta(o,a)
-
\nabla_a\log Z_\theta(o).
$$
因为：
$$
Z_\theta(o)
$$
只依赖观测 ($o$) 和参数 ($\theta$)，不依赖动作变量 ($a$)，所以：
$$
\nabla_a\log Z_\theta(o)=0.
$$
因此：
$$
\boxed{
\nabla_a\log p_\theta(a\mid o)
=

-\nabla_aE_\theta(o,a)
}
$$
归一化常数在对动作求导时自动消失。

这就是论文所说的：

> **Diffusion Policy 通过学习能量梯度，绕过对不可处理归一化常数的估计**。

需要注意，扩散策略并非完全没有困难。**它只是避免了 EBM 中特定的负样本归一化问题**，仍然可能受到：

* 网络优化；
* 噪声调度；
* 动作归一化；
* 数据不足；
* 推理步数不足；

等因素影响。

---

# 三、三项机器人系统层面的关键设计

## 15. 闭环动作序列

Diffusion Policy 一次预测长度为 ($T_p$) 的动作序列：
$$
A_t=
(a_t,a_{t+1},\ldots,a_{t+T_p-1}).
$$
但它通常只执行前 ($T_a$) 步：
$$
(a_t,\ldots,a_{t+T_a-1}),
\qquad T_a<T_p.
$$
然后重新获取观测：

$$
O_{t+T_a},
$$
再次生成新的未来动作序列。

完整循环为：
$$
O_t
\rightarrow
A_t
\rightarrow
\text{执行前 }T_a\text{ 步}
\rightarrow
O_{t+T_a}
\rightarrow
A_{t+T_a}.
$$

**这就是滚动时域或 receding-horizon 机制**。

### 为什么不执行完整序列

若直接执行全部 ($T_p$) 步，则在整个执行期间不会根据新观测修正：


$$
\text{长期动作一致性强},
\qquad
\text{但反馈响应弱}.
$$

### 为什么不每一步重新生成

若每执行一步就重新运行多步扩散：

* 推理成本很高；
* 不同随机采样可能导致模式频繁切换；
* 动作连续性可能下降。

因此选择：
$$
1<T_a<T_p
$$
是一个折中：
$$
\boxed{
\text{动作序列一致性}
\quad\leftrightarrow\quad
\text{环境响应速度}
}
$$

这不是完全开环，也不是每个低层控制周期都重新规划，而是一种**分段闭环控制**。论文将动作序列生成与滚动重规划结合，正是为了把扩散生成模型转化为可执行的真实机器人策略。([arXiv][1])

---

## 16. 视觉条件化

一种联合生成方案可能建模：


$$
p(O_t,A_t),
$$


**甚至同时生成未来观测和未来动作。**

Diffusion Policy 则直接学习：
$$
p(A_t\mid O_t).
$$

这里：

* ($A_t$) 是被扩散、被加噪和被去噪的变量；
* ($O_t$) 只是去噪过程的条件。

视觉编码器首先执行一次：

$$
h_t=f_{\mathrm{vision}}(O_t).
$$

此后所有去噪步骤共享同一视觉特征：
$$
\epsilon_\theta(h_t,A_t^k,k),
\qquad
k=K,\ldots,1.
$$
因此每个控制周期的计算过程是：

$$
O_t
\overset{\text{一次视觉编码}}{\longrightarrow}
h_t,
$$


然后：
$$
A_t^K
\rightarrow A_t^{K-1}
\rightarrow\cdots\rightarrow A_t^0.
$$
而不是在每次去噪迭代中都重新运行完整视觉编码器。

这会显著减少计算，因为图像编码通常比处理低维动作序列更昂贵。

此外，模型不需要生成未来图像：
$$
O_{t+1},O_{t+2},\ldots,
$$

只需要生成动作，因此避免把计算资源用于与当前控制不直接相关的视觉预测。

---

## 17. 时间序列扩散 Transformer

论文提出两类去噪网络：

* 一维时间 CNN；
* 时间序列 Transformer。

### CNN 的平滑偏置

一维卷积擅长提取局部、平滑的时间模式：

$$
a_t\approx a_{t+1}.
$$

这对于位置轨迹通常有利，但当动作需要快速变化时，可能出现过度平滑。

例如理想速度命令为：

$$
v_t=
\begin{cases}
+1,&t<5,\\
-1,&t\ge5,
\end{cases}
$$
CNN 可能将突变预测成缓慢过渡：

$$
+1\rightarrow+0.5\rightarrow0\rightarrow-0.5\rightarrow-1.
$$

对于需要快速反向、碰撞响应或周期动作的任务，这种平滑可能降低性能。

### Transformer 的作用

Transformer 将每个时间步的动作表示为一个 token：
$$
A^k

=
(a_t^k,\ldots,a_{t+T_p-1}^k).
$$

通过注意力机制，每个动作 token 可以根据：

* 其他时间步的动作；
* 当前扩散噪声等级；
* 视觉观测特征；

预测对应的噪声或去噪方向。

它不依赖固定大小的局部卷积核，因此更容易建模：

* 远距离时间依赖；
* 突然的动作变化；
* 不同任务阶段之间的关系；
* 高频速度命令。

但这不意味着 Transformer 在所有任务上都优于 CNN。论文后续实验指出，CNN 更稳定、超参数更容易设置，而 Transformer 在高复杂度或高频动作任务中更有优势。([arXiv][1])

---
> 将连续动作量化后，用离散类别表示动作。这里的每一个离散类别，就是一个 action bin。




# 整体思路：把机器人策略改造成条件生成模型

普通行为克隆通常学习确定性映射：

$$
\mathbf a_t=f_\theta(\mathbf o_t).
$$

Diffusion Policy 则学习整个条件动作序列分布：
$$
p_\theta(\mathbf A_t\mid\mathbf O_t).
$$
这里不是只预测一个动作，而是：


$$
\mathbf A_t^0
=

\begin{bmatrix}
\mathbf a_t\\
\mathbf a_{t+1}\\
\vdots\\
\mathbf a_{t+T_p-1}
\end{bmatrix}
\in\mathbb R^{T_p\times d_a},
$$


其中 ($d_a$) 是单步动作维数。

例如：
$$
T_p=16,\qquad d_a=7,
$$

则一次生成的动作变量实际是：
$$
16\times7=112
$$
维。

推理时先生成同样维度的高斯噪声：
$$
\mathbf A_t^K\sim\mathcal N(0,I),
$$
再逐步执行：
$$
\mathbf A_t^K
\rightarrow
\mathbf A_t^{K-1}
\rightarrow\cdots\rightarrow
\mathbf A_t^0.
$$
最终得到的不是某个平均动作，而是从条件分布中生成的一条完整动作轨迹。

---

# 三、必须区分两种“时间”

本文同时存在两个完全不同的时间下标。

## 1. 物理控制时间 ($t$)

它表示机器人真实执行过程中的时间：


$$
t,t+1,t+2,\ldots
$$

例如：

$$
\mathbf o_t,\quad \mathbf a_t
$$

分别是机器人在实际时刻 (t) 的观测和动作。

## 2. 扩散步 ($k$)

它表示一次策略推理内部的去噪迭代：
$$
K,K-1,\ldots,1,0.
$$


因此：
$$
\mathbf A_t^k
$$
表示：

> 在物理时刻 (t) 进行策略推理时，处于第 (k) 个噪声等级的未来动作序列。

其中：

$$
\mathbf A_t^K
$$

接近纯高斯噪声，而：

$$
\mathbf A_t^0
$$
是最终要执行的干净动作序列。

不能把 (k) 理解为未来机器人时间步。它只是模型内部的去噪索引。

---

# 四、标准 DDPM 的完整数学形式

论文式（1）是概念化表达。为了准确理解，需要先介绍标准 DDPM 的两个过程：

$$
\boxed{\text{前向加噪过程}}
\qquad\text{和}\qquad
\boxed{\text{反向生成过程}}.
$$
原始 DDPM 将前向过程定义为固定的高斯马尔可夫链，将反向过程定义为从高斯噪声开始的可学习高斯马尔可夫链。

---

## 1. 前向扩散：从数据逐渐变成噪声

设干净数据为：
$$
\mathbf x^0\sim p_{\mathrm{data}}.
$$

定义噪声方差调度：

$$
\beta_1,\beta_2,\ldots,\beta_K,
\qquad 0<\beta_k<1.
$$
前向一步加噪过程为：
$$
q(\mathbf x^k\mid\mathbf x^{k-1})
=
\mathcal N
\left(
\mathbf x^k;
\sqrt{1-\beta_k}\mathbf x^{k-1},
\beta_k I
\right).
$$
令：
$$
\alpha_k=1-\beta_k,
$$
则：
$$
q(\mathbf x^k\mid\mathbf x^{k-1})
=

\mathcal N
\left(
\sqrt{\alpha_k}\mathbf x^{k-1},
(1-\alpha_k)I
\right).
$$

**等价采样形式为：**
$$
\mathbf x^k
=

\sqrt{\alpha_k}\mathbf x^{k-1}
+
\sqrt{1-\alpha_k}\boldsymbol\epsilon_k,
\qquad
\boldsymbol\epsilon_k\sim\mathcal N(0,I).
$$
每一步做两件事：
1. 将原信号乘以小于 1 的系数；
2. 加入一部分高斯噪声。

经过大量步骤后：
$$
\mathbf x^K\approx\mathcal N(0,I).
$$
---

## 2. 为什么可以直接采样任意噪声等级

定义累计乘积：

$$
\bar\alpha_k
=

\prod_{j=1}^{k}\alpha_j.
$$
由于**连续高斯变换仍然是高斯分布**，可以推导出：
$$
q(\mathbf x^k\mid\mathbf x^0)
=

\mathcal N
\left(
\sqrt{\bar\alpha_k}\mathbf x^0,
(1-\bar\alpha_k)I
\right).
$$

因此可以直接写成：

$$
\boxed{
\mathbf x^k
=

\sqrt{\bar\alpha_k}\mathbf x^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon,
\qquad
\boldsymbol\epsilon\sim\mathcal N(0,I)
}
\tag{6}
$$

**这意味着训练时不需要真的连续执行 ($k$) 次加噪**，只需要：

1. 随机选择 ($k$)；
2. 采样一次标准高斯噪声；
3. 使用式（6）直接得到 ($\mathbf x^k$)。

这是 DDPM 训练可以并行且高效的重要原因。

---

## 3. 反向扩散：从噪声恢复数据

生成时从：
$$
\mathbf x^K\sim\mathcal N(0,I)
$$

开始，学习反向转移：
$$
p_\theta(\mathbf x^{k-1}\mid\mathbf x^k)
=

\mathcal N
\left(
\mathbf x^{k-1};
\boldsymbol\mu_\theta(\mathbf x^k,k),
\boldsymbol\Sigma_k
\right).
$$

标准噪声预测参数化下，反向均值通常写为：
$$
\boldsymbol\mu_\theta(\mathbf x^k,k)
=

\frac{1}{\sqrt{\alpha_k}}
\left(
\mathbf x^k
-

\frac{\beta_k}{\sqrt{1-\bar\alpha_k}}
\epsilon_\theta(\mathbf x^k,k)
\right).
$$
因此一次反向采样为：
$$
\boxed{
\mathbf x^{k-1}
=

\frac{1}{\sqrt{\alpha_k}}
\left(
\mathbf x^k
-

\frac{\beta_k}{\sqrt{1-\bar\alpha_k}}
\epsilon_\theta(\mathbf x^k,k)
\right)
+
\sigma_k\mathbf z
}
\tag{7}
$$
其中：
$$
\mathbf z\sim\mathcal N(0,I).
$$
这与论文式（1）：
$$
\mathbf x^{k-1}
=

\alpha
\left(
\mathbf x^k-\gamma\epsilon_\theta+\text{noise}
\right)
$$
具有相同结构：

$$
\text{当前噪声样本}
-

\text{预测修正量}
+
\text{随机噪声}.
$$

但论文中的 ($\alpha,\gamma,\sigma$) 是将标准 DDPM 的多个系数合并后的抽象记号。

---

# 五、论文式（1）每一项的含义

$$
\mathbf x^{k-1}
=

\alpha
\left(
\mathbf x^k
-

\gamma\epsilon_\theta(\mathbf x^k,k)
+
\mathcal N(0,\sigma^2I)
\right).
$$
## $\mathbf x^k$：当前候选样本

它不是训练数据本身，而是当前噪声等级下的中间样本。

当 ($k$) 很大时：
$$
\mathbf x^k
$$
包含大量噪声。

当 ($k$) 接近 0 时，它逐渐接近真实数据分布。

---

## $\epsilon_\theta(\mathbf x^k,k)$：预测噪声

网络试图判断：

> 当前样本 ($\mathbf x^k$) 中，哪一部分是前向扩散加入的噪声？

若预测准确，则从当前变量中减去适当比例的噪声：
$$\mathbf x^k-\gamma\epsilon_\theta(\mathbf x^k,k)$$
就会使样本更接近干净数据。
需要注意：
$$
\epsilon_\theta
$$
的直接训练目标是噪声，并不直接是动作，也不直接是完整能量梯度。

它与 score、能量梯度之间存在一个依赖噪声等级的比例关系。

---

## $\gamma$：去噪修正强度

($\gamma$) 控制本次去噪更新有多大。

若过小：
$$
\gamma\approx0,
$$
**每一步几乎不去噪。**

若过大，则可能过度修正，使反向过程偏离正确分布。

在标准 DDPM 中，它对应：
$$
\frac{\beta_k}{\sqrt{1-\bar\alpha_k}}
$$
等随 ($k$) 变化的组合系数，而不是一个固定学习率。

---

## $\sigma$：反向采样随机性

噪声项：
$$
\sigma_k\mathbf z
$$
不是训练误差，而是生成过程的组成部分。

**其作用是保留正确的概率分布采样行为。没有这一项时，过程更接近确定性的去噪或优化；有这一项时，不同采样可能生成不同的有效模式。（动作的多模态性）**

不过在 DDIM 等确定性采样器中，可以减少甚至取消部分随机项，同时沿不同的反向路径生成样本。

---

## $\alpha$：重缩放系数

论文称 ($\alpha$) 略小于 1 有利于稳定，但在标准 DDPM 反向公式中，外部系数一般表现为：
$$
\frac1{\sqrt{\alpha_k}}>1.
$$
因此，不能将论文式（1）的 ($\alpha$) 与标准前向 DDPM 中的：
$$
\alpha_k=1-\beta_k
$$
机械地视为完全相同的量。

论文这里主要在提供“带重缩放的噪声梯度更新”直觉，而不是逐项复现 Ho 等人的标准反向公式。

---

# 六、DDPM、score 与能量函数之间的关系

## 1. score function

对于噪声等级 $k$ 下的概率密度 $p_k(\mathbf x)$，score 定义为：
$$
\mathbf s_k(\mathbf x)
=
\nabla_{\mathbf x}\log p_k(\mathbf x).
$$
它指出：

> **在当前位置沿哪个方向移动，能够最快提高对数概率密度。**

因此 score 指向高概率区域。

---
## 2. 能量函数

若概率密度写为：
$$
p_k(\mathbf x)
=

\frac{\exp[-E_k(\mathbf x)]}{Z_k},
$$
那么：

$$
\log p_k(\mathbf x)
=

-E_k(\mathbf x)-\log Z_k.
$$
由于 ($Z_k$) 不依赖 ($\mathbf x$)：
$$
\nabla_{\mathbf x}\log p_k(\mathbf x)
=

-\nabla_{\mathbf x}E_k(\mathbf x).
$$

因此：
$$
\boxed{
\text{score}
=

-\text{能量梯度}
}
$$

也就是说：

* 沿 score 上升；
* 等价于沿能量梯度下降。

---
## 3. Langevin dynamics

典型的离散 Langevin 更新为：

$$
\mathbf x_{n+1}
=

\mathbf x_n
+
\eta\nabla_{\mathbf x}\log p(\mathbf x_n)
+
\sqrt{2\eta}\mathbf z_n.
$$
利用：
$$
\nabla\log p=-\nabla E,
$$
可写为：
$$
\mathbf x_{n+1}
=

 \mathbf x_n
+
\eta\nabla E(\mathbf x_n)
+
\sqrt{2\eta}\mathbf z_n.
$$
它包含：

* 能量下降项；
* 随机扩散项。

因此论文式（2）：

$$
\mathbf x'
=

\mathbf x-\gamma\nabla E(\mathbf x)
$$

**只是删除随机项后的确定性部分。**

---

## 4. 噪声预测如何对应 score

由前向过程：
$$
\mathbf x^k
=

\sqrt{\bar\alpha_k}\mathbf x^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon
$$
可得：
$$
\nabla_{\mathbf x^k}
\log q(\mathbf x^k\mid\mathbf x^0)
=

-\frac{
\mathbf x^k-\sqrt{\bar\alpha_k}\mathbf x^0
}{
1-\bar\alpha_k
}.
$$
代入：
$$
\mathbf x^k-\sqrt{\bar\alpha_k}\mathbf x^0
=

\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon,
$$

得到：
$$
\nabla_{\mathbf x^k}
\log q(\mathbf x^k\mid\mathbf x^0)
=

-\frac{\boldsymbol\epsilon}
{\sqrt{1-\bar\alpha_k}}.
$$
因此训练好的噪声网络满足近似关系：
$$
\boxed{
\mathbf s_\theta(\mathbf x^k,k)
\approx
-\frac{
\epsilon_\theta(\mathbf x^k,k)
}{
\sqrt{1-\bar\alpha_k}
}
}
\tag{8}
$$
结合：
$$
\mathbf s=-\nabla E,
$$
可得：
$$
\nabla E_k(\mathbf x^k)
\propto
\epsilon_\theta(\mathbf x^k,k).
$$
这就是论文为什么说：
$$
\epsilon_\theta
$$
“实际上预测了能量梯度场”。

**严格来说，它们不是数值上完全相等，而是相差一个由噪声等级 ($k$) 决定的比例系数。**

---

## 5. “DDPM 就是随机朗之万动力学”是否严格

这是一种有用但简化的说法。

更严谨地说：

* DDPM 是一个通过变分推断训练的有限步反向马尔可夫链；
* 在噪声预测参数化下，它与多噪声等级的去噪 score matching 密切相关；
* 其采样过程可以从退火 Langevin dynamics 的角度解释。

原始 DDPM 论文称其建立了 DDPM、去噪 score matching 与 Langevin dynamics 之间的联系，而不是说所有 DDPM 公式都与经典 SGLD 完全相同。

---

# 七、DDPM 训练目标的严格解释

论文简写为：
$$
\mathcal L
=

\operatorname{MSE}
\left(
\boldsymbol\epsilon^k,
\epsilon_\theta(\mathbf x^0+\boldsymbol\epsilon^k,k)
\right).
$$

标准写法应当是：

$$
\boxed{
\mathcal L_{\mathrm{simple}}
=

\mathbb E_{\mathbf x^0,k,\boldsymbol\epsilon}
\left[
\left|\left|
\boldsymbol\epsilon
-

\epsilon_\theta
\left(
\sqrt{\bar\alpha_k}\mathbf x^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon,
k
\right)
\right|\right|_2^2
\right]
}
\tag{9}
$$

论文中的：
$$
\mathbf x^0+\boldsymbol\epsilon^k
$$
可以理解为一种简写，其中 ($\boldsymbol\epsilon^k$) 已经隐含了第 ($k$) 步对应的噪声尺度，并省略了对 ($\mathbf x^0$) 的缩放。

---

## 1. 一次训练样本的完整流程

从数据集中抽取：
$$
\mathbf x^0\sim p_{\mathrm{data}}.
$$
随机采样扩散步：
$$
k\sim\operatorname{Uniform}\{1,\ldots,K\}.
$$
采样标准高斯噪声：
$$
\boldsymbol\epsilon\sim\mathcal N(0,I).
$$
构造带噪样本：
$$
\mathbf x^k
=

\sqrt{\bar\alpha_k}\mathbf x^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon.
$$
预测噪声：
$$
\widehat{\boldsymbol\epsilon}
=

\epsilon_\theta(\mathbf x^k,k).
$$
最小化：
$$
\left|\left|
\boldsymbol\epsilon-
\widehat{\boldsymbol\epsilon}
\right|\right|_2^2.
$$
---

## 2. 为什么网络必须输入 ($k$)

同一个数值 ($\mathbf x^k$) 在不同噪声等级下，代表的含义不同。

当 ($k$) 较小时：

$$
\bar\alpha_k\approx1,
$$
样本中保留了大量数据结构，网络只需进行细微修正。

当 ($k$) 较大时：

$$
\bar\alpha_k\approx0,
$$
样本接近纯噪声，网络需要根据统计结构进行大尺度生成。

因此网络必须知道当前噪声等级：
$$
\epsilon_\theta(\mathbf x^k,k).
$$
否则，同一个网络无法区分“轻微噪声”与“接近纯噪声”的输入。

---

## 3. MSE 的最优解是什么

固定 ($\mathbf x^k,k$) 后，均方误差的总体最优解是条件期望：
$$
\epsilon_\theta^*(\mathbf x^k,k)
=

\mathbb E[
\boldsymbol\epsilon
\mid
\mathbf x^k,k
].
$$
这意味着网络学习的是：

> **给定当前带噪样本，在所有可能产生该样本的干净数据中，加入噪声的条件平均估计。**

**该条件期望又与噪声分布的 score 成比例，因此预测噪声等价于学习不同噪声等级下的数据分布梯度。**

---

## 4. 为什么只随机训练一个 ($k$) 就可以

完整损失可以写成对所有扩散步求和：
$$
\mathcal L
=

\sum_{k=1}^{K}
\mathbb E[\mathcal L_k].
$$
**若均匀采样** ($k$)，则随机梯度：
$$
K\nabla_\theta\mathcal L_k
$$
是总梯度的无偏估计。

因此每个训练样本只需训练一个随机噪声等级，不必一次遍历所有 ($K$) 个等级。

---

# 八、式（3）与 ELBO、KL 散度的关系

论文原文说，最小化式（3）也会最小化数据分布与 DDPM 样本分布之间 KL 散度的变分下界。这里的表述比较简略，严格形式需要稍作修正。

---

## 1. 模型真正希望优化什么

设真实数据分布为：
$$
p_{\mathrm{data}}(\mathbf x^0),
$$
扩散生成模型为：
$$
p_\theta(\mathbf x^0).
$$
理想目标是最大化数据对数似然：
$$
\mathbb E_{p_{\mathrm{data}}}
[
\log p_\theta(\mathbf x^0)
].
$$
等价地，最小化负对数似然：
$$
\mathbb E_{p_{\mathrm{data}}}
[
-\log p_\theta(\mathbf x^0)
].
$$
而：
$$
D_{\mathrm{KL}}
\left(
p_{\mathrm{data}}
\Vert
p_\theta
\right)
=

\mathbb E_{p_{\mathrm{data}}}
\left[
\log p_{\mathrm{data}}(\mathbf x^0)
-

\log p_\theta(\mathbf x^0)
\right].
$$

其中第一项与 ($\theta$) 无关，因此最小化负对数似然等价于最小化：
$$
D_{\mathrm{KL}}
(p_{\mathrm{data}}\Vert p_\theta).
$$

---

## 2. 为什么需要变分界

模型边缘概率为：
$$
p_\theta(\mathbf x^0)
=

\int
p_\theta(\mathbf x^{0:K})
,d\mathbf x^{1:K}.
$$
这一积分通常难以直接计算，因此引入固定前向过程：
$$
q(\mathbf x^{1:K}\mid\mathbf x^0)
$$
作为变分分布，并得到：
$$
-\log p_\theta(\mathbf x^0)
\leq
\mathcal L_{\mathrm{VLB}}.
$$
因此：
$$
\mathcal L_{\mathrm{VLB}}
$$
是负对数似然的**变分上界**；等价地，其负值是对数似然的 ELBO，即证据下界。

原始 DDPM 论文明确写的是优化 negative log-likelihood 的 variational bound。

---

## 3. ELBO 可以分解成逐步 KL

变分目标可以分解为：

$$
\mathcal L_{\mathrm{VLB}}
=
D_{\mathrm{KL}}
\left(
q(\mathbf x^K\mid\mathbf x^0)
\Vert
p(\mathbf x^K)
\right) 
+
\sum_{k=2}^{K}
D_{\mathrm{KL}}
\left(
q(\mathbf x^{k-1}\mid\mathbf x^k,\mathbf x^0)
\Vert
p_\theta(\mathbf x^{k-1}\mid\mathbf x^k)
\right)
-
\log p_\theta(\mathbf x^0\mid\mathbf x^1).
$$

每个中间 KL 都比较：

* 已知的真实后验；
* 网络学习的反向转移。

由于二者都是高斯分布，这些 KL 可以解析计算。

---

## 4. 为什么最后变成噪声 MSE

在固定反向方差并使用噪声预测参数化后，每个中间 KL 可以化为：
$$
\mathcal L_k
=

w_k
\left|\left|
\boldsymbol\epsilon
-

\epsilon_\theta(\mathbf x^k,k)
\right|\right|_2^2
+
C,
$$
其中：
* ($w_k$) 是与噪声调度有关的权重；
* ($C$) 与网络参数 ($\theta$) 无关。
Ho 等人进一步采用去掉 ($w_k$) 的简化目标：

$$
\mathcal L_{\mathrm{simple}}
=

\mathbb E
\left[
||
\boldsymbol\epsilon
-

\epsilon_\theta
||^2
\right].
$$
因此，应当准确理解为：

> 噪声预测 MSE 来源于 DDPM 变分目标的特定参数化；原始加权形式与 ELBO 直接对应，而常用的无权重 simple loss 是经验上效果更好的简化形式。

所以论文式（3）并不等于直接数值计算：

$$
D_{\mathrm{KL}}
(p_{\mathrm{data}}\Vert p_\theta),
$$
**而是通过变分推断和噪声预测参数化，间接训练生成分布逼近数据分布。**

---

# 九、从图像扩散到动作扩散

普通图像 DDPM 中：
$$
\mathbf x^0
\in
\mathbb R^{H\times W\times C}
$$

是一张图像。

Diffusion Policy 中：

$$
\mathbf x^0
\longrightarrow
\mathbf A_t^0
\in
\mathbb R^{T_p\times d_a}.
$$


也就是说，扩散发生在动作序列空间：
$$
\boxed{
\text{图像像素序列}
\quad\longrightarrow\quad
\text{机器人未来动作序列}
}
$$

数学上，DDPM 不要求 ($\mathbf x$) 必须是图像；它只要求输出能够表示为连续向量，并有足够的数据学习其分布。

---

# 十、条件动作分布 ($p(\mathbf A_t\mid\mathbf O_t)$)

无条件生成模型学习：
$$
p(\mathbf A_t).
$$
这只能生成“总体上像专家”的动作，无法根据机器人当前处境选择动作。

视觉运动策略需要学习：
$$
\boxed{
p_\theta(\mathbf A_t\mid\mathbf O_t)
}
$$
其中观测历史可以写为：
$$
\mathbf O_t
=

\left(
\mathbf o_{t-T_o+1},
\ldots,
\mathbf o_t
\right).
$$
观测可能包含：
$$
\mathbf o_t=
(\text{RGB 图像},
\text{关节状态},
\text{末端位姿},
\text{夹爪状态}).
$$
动作序列为：
$$
\mathbf A_t^0
=

\left(
\mathbf a_t,
\mathbf a_{t+1},
\ldots,
\mathbf a_{t+T_p-1}
\right).
$$

条件去噪网络变成：
$$
\epsilon_\theta
(
\mathbf O_t,
\mathbf A_t^k,
k
).
$$
它回答的问题是：

> 在当前视觉观测下，这个带噪动作序列中包含怎样的噪声，应当如何修改它，使其变成合理的专家动作序列？

---

# 十一、条件 Diffusion Policy 的标准训练公式

论文式（5）写为：
$$
\mathcal L
=

\operatorname{MSE}
\left(
\boldsymbol\epsilon^k,
\epsilon_\theta
(
\mathbf O_t,
\mathbf A_t^0+\boldsymbol\epsilon^k,
k
)
\right).
$$

对应的完整标准形式是：

$$
\boxed{
\mathcal L_{\mathrm{DP}}
=
\mathbb E
\left[
\left|\left|
\boldsymbol\epsilon
-
\epsilon_\theta
\left(
\mathbf O_t,
\sqrt{\bar\alpha_k}\mathbf A_t^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon,
k
\right)
\right|\right|_2^2
\right]
}
\tag{10}
$$


训练过程为：
$$
(\mathbf O_t,\mathbf A_t^0)
\sim\mathcal D;
$$
$$
k\sim\operatorname{Uniform}{1,\ldots,K};
$$
$$
\boldsymbol\epsilon\sim\mathcal N(0,I);
$$
$$
\mathbf A_t^k
=

\sqrt{\bar\alpha_k}\mathbf A_t^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon;
$$
$$
\widehat{\boldsymbol\epsilon}
=

\epsilon_\theta
(\mathbf O_t,\mathbf A_t^k,k);
$$
$$
\theta
\leftarrow
\theta-
\eta\nabla_\theta
||
\boldsymbol\epsilon-
\widehat{\boldsymbol\epsilon}
||^2.
$$

---

# 十二、条件 Diffusion Policy 的推理过程

在物理时刻 ($t$)，首先收集最近 ($T_o$) 个观测：
$$
\mathbf O_t.
$$
从高斯分布初始化动作序列：
$$
\mathbf A_t^K
\sim
\mathcal N(0,I).
$$
然后对：
$$
k=K,K-1,\ldots,1
$$
重复：
$$
\widehat{\boldsymbol\epsilon}
=

\epsilon_\theta
(
\mathbf O_t,
\mathbf A_t^k,
k
),
$$
$$
\mathbf A_t^{k-1}
=

\operatorname{ReverseStep}
\left(
\mathbf A_t^k,
\widehat{\boldsymbol\epsilon},
k
\right).

$$
最后得到：
$$
\mathbf A_t^0
=

(
\mathbf a_t,
\ldots,
\mathbf a_{t+T_p-1}
).
$$
机器人只执行前 ($T_a$) 步：
$$
\mathbf a_t,
\ldots,
\mathbf a_{t+T_a-1}.
$$
随后重新观测并再次推理。

---

# 十三、($T_o,T_p,T_a$) 的严格含义

## 1. 观测时域 ($T_o$)
$$
\mathbf O_t
=

(
\mathbf o_{t-T_o+1},
\ldots,\mathbf o_t
).
$$
它决定策略可以使用多少历史信息。
若：
$$
T_o=1,
$$
策略只看当前帧。
若：
$$
T_o>1,
$$
策略可以根据多帧信息推断速度、运动趋势和任务阶段。

---

## 2. 动作预测时域 ($T_p$)

模型一次联合生成：
$$
T_p
$$
个未来动作。

较大的 ($T_p$) 有助于：

* 建模长时间相关性；
* **保持整段轨迹属于同一行为模式**；
* 避免单步短视预测。

但预测过远也更困难，因为未来受到未观测事件影响。

---
## 3. 动作执行时域 ($T_a$)
从预测的 ($T_p$) 步中，真正不重新规划而连续执行的步数是：
$$
T_a.
$$
通常：
$$
1\leq T_a\leq T_p.
$$
若：
$$
T_a=1,
$$
每执行一步就重新运行扩散策略，反馈最及时，但计算开销大，而且不同采样可能产生模式切换。
若：
$$
T_a=T_p,
$$
整段动作完全开环执行，时间一致性较强，但对外界扰动反应慢。
因此 ($T_a$) 控制：
$$
\boxed{
\text{时间一致性}
\quad\leftrightarrow\quad
\text{反馈响应速度}
}
$$
论文常用配置为：
$$
T_o=2,\qquad
T_p=16,\qquad
T_a=8.
$$
这意味着看最近两帧，预测未来 16 步，先执行 8 步，再重新规划。

---

# 十四、为什么动作序列预测能保持时间一致性

设同一个观测下有两种合理轨迹：
$$
\mathbf A^{(L)}
=

(\text{连续向左绕行的动作}),
$$
$$
\mathbf A^{(R)}
=

(\text{连续向右绕行的动作}).
$$
若每一步独立采样：

$$
p(\mathbf a_t\mid\mathbf o_t),
$$
可能出现：
$$
\text{左、右、左、右},
$$

即每一步都有效，但整段轨迹不连贯。
Diffusion Policy 联合建模：
$$
p(
\mathbf a_t,\ldots,
\mathbf a_{t+T_p-1}
\mid
\mathbf O_t
).
$$
因此一次采样更可能得到完整模式：
$$
\mathbf A^{(L)}
$$
或：
$$
\mathbf A^{(R)},
$$
而不是在时间步之间混合不同模式。

这里的关键不是简单的动作平滑正则化，而是：
$$
\boxed{
\text{对整段动作的联合概率分布进行建模}
}
$$
它可以表达动作之间复杂的非线性时间相关性。

---

# 十五、“闭环动作序列”到底有多闭环

Diffusion Policy 并不是在每一个低层控制周期都重新预测。

在一次执行区间内：
$$
t,\ldots,t+T_a-1,
$$
高层动作序列已经固定，因此这部分相对于新视觉观测是开环的。

执行 ($T_a$) 步后重新观测并规划，所以整体是：
$$
\boxed{\text{分段开环执行}+\text{滚动闭环重规划}}
$$
而不是完全开环，也不是严格意义上的逐步闭环策略。

这解释了为何：
* ($T_a$) 较大时动作更连贯；
* ($T_a$) 较小时对扰动反应更快。

---

# 十六、滚动时域控制与 warm start

在标准滚动时域控制中，每次都预测未来：
$$
T_p
$$

步，但只执行前：
$$
T_a
$$

步，然后将规划窗口向前移动。

例如在时刻 ($t$) 得到：
$$
\widehat{\mathbf A}_t
=

(
\hat{\mathbf a}*t,
\hat{\mathbf a}*{t+1},
\ldots,
\hat{\mathbf a}_{t+T_p-1}
).
$$
执行前 ($T_a$) 步后，在：
$$
t'=t+T_a
$$
重新规划。

旧序列中尚未执行的后半部分：
$$
(
\hat{\mathbf a}*{t+T_a},
\ldots,
\hat{\mathbf a}*{t+T_p-1}
)
$$
**可以平移并作为下一次扩散采样的初始参考，这就是 warm start。**

其潜在作用是：

* 减少连续两次动作块之间的跳变；
* 保留上一轮规划的有效部分；
* 减少从纯随机噪声重新搜索的难度。

但论文说的是该框架“允许”这样做，这是一项可选能力，并不意味着所有实验都必须采用 warm start。

---

# 十七、为什么建模 ($p(\mathbf A_t\mid\mathbf O_t)$)，而不是 ($p(\mathbf A_t,\mathbf O_t)$)

## 1. 联合轨迹扩散

Diffusion 一类方法将状态和动作共同组成轨迹：
$$
\boldsymbol\tau
=

(
\mathbf s_t,\mathbf a_t,
\mathbf s_{t+1},\mathbf a_{t+1},
\ldots
),
$$
并学习：
$$
p(\boldsymbol\tau)
$$
或相关条件分布。
生成时，模型不仅需要推断动作，还需要生成未来状态轨迹。Diffuser 的核心就是通过迭代去噪生成完整轨迹，并把生成与规划结合起来。([Proceedings of Machine Learning Research][2])

---

## 2. Diffusion Policy 的条件动作扩散

Diffusion Policy 只对动作变量加噪和去噪：
$$
\mathbf A_t^k.
$$
观测：
$$
\mathbf O_t
$$
作为固定条件，不属于被生成的变量。

因此不需要生成：
$$
\mathbf O_{t+1},
\mathbf O_{t+2},\ldots
$$
或未来图像。

这样有三个直接结果。
### 输出维度显著降低

若未来图像也被生成，输出维度会非常高。
而动作序列通常只有：
$$
T_p d_a
$$
维。
### 不需要精确预测所有未来状态细节

策略只需生成能复现专家行为的动作，不需要重建与控制无关的视觉信息。
### 视觉特征可以重复利用

每个控制时刻先计算一次：
$$
\mathbf h_t=f_{\mathrm{vision}}(\mathbf O_t),
$$
然后在全部 ($K$) 次去噪中重复使用：
$$
\epsilon_\theta(
\mathbf h_t,
\mathbf A_t^k,
k
).
$$
**不需要每次去噪都重新编码图像，也不需要在输出侧恢复图像。**
**这正是论文所说的“排除观测特征作为去噪输出”能够提高推理效率的含义。**([arXiv][1])

---

# 十八、为什么条件化可以提高动作准确性

若学习联合分布：
$$
p(\mathbf A,\mathbf O),
$$
模型容量需要同时用于：
* 观测分布结构；
* 动作分布结构；
* 二者之间的关系。
而真正的控制目标是：
$$
p(\mathbf A\mid\mathbf O).
$$
直接优化条件动作生成，可以把模型容量集中在：
$$
\mathbf O
\longrightarrow
\mathbf A
$$
的映射关系上。

不过需要谨慎理解“提高准确性”：这不是一个普遍数学定理，而是本文设计动机和实验观察。对于需要显式未来状态推理、奖励引导或测试时轨迹优化的任务，联合状态—动作生成仍可能具有优势。

---

# 十九、为什么这仍然是策略，而不是普通规划器

Diffusion Policy 的动作生成过程看起来像迭代优化：
$$
\mathbf A^K
\rightarrow\cdots\rightarrow
\mathbf A^0.
$$
但它与经典模型预测控制不同。

经典 MPC 通常求解：
$$
\mathbf A_t^*
=

\arg\min_{\mathbf A}
\sum_{\tau=0}^{T_p-1}
c(\mathbf s_{t+\tau},\mathbf a_{t+\tau}),
$$
**并显式使用动力学**：
$$
\mathbf s_{t+\tau+1}
=

f(\mathbf s_{t+\tau},\mathbf a_{t+\tau}).
$$
Diffusion Policy 没有在推理时显式给定：

* 动力学模型；
* 奖励函数；
* 代价函数；
* 约束优化问题。

**它从示范数据中学习**：
$$
p_{\mathrm{expert}}(\mathbf A_t\mid\mathbf O_t).
$$

**因此其“优化”是在学习到的动作概率梯度场中进行，而不是针对显式任务代价进行在线最优化。**

更准确地说，它是：
$$
\boxed{
\text{以迭代生成方式实现的行为克隆策略}
}
$$

---
# 二十、训练与推理的完整流程

## **训练阶段**
给定示范轨迹：
$$
\mathcal D
=

{
(\mathbf o_0,\mathbf a_0),
\ldots,
(\mathbf o_T,\mathbf a_T)
}.
$$
构造训练窗口：
$$
\mathbf O_t
=

(
\mathbf o_{t-T_o+1},
\ldots,\mathbf o_t
),
$$
$$
\mathbf A_t^0
=

(
\mathbf a_t,
\ldots,
\mathbf a_{t+T_p-1}
).
$$
随后：
$$
k\sim\operatorname{Uniform}\{1,\ldots,K\},
$$
$$
\boldsymbol\epsilon\sim\mathcal N(0,I),
$$
$$
\mathbf A_t^k
=

\sqrt{\bar\alpha_k}\mathbf A_t^0
+
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon,
$$
$$
\widehat{\boldsymbol\epsilon}
=
\epsilon_\theta(
\mathbf O_t,\mathbf A_t^k,k
),
$$
$$
\mathcal L
=
||
\boldsymbol\epsilon-
\widehat{\boldsymbol\epsilon}
||_2^2.
$$
训练时不让机器人交互，也不需要奖励，属于离线行为克隆。

---
## 推理阶段

在实际时间 ($t$)：
$$
\mathbf O_t
=

(
\mathbf o_{t-T_o+1},
\ldots,\mathbf o_t
).
$$
初始化：
$$
\mathbf A_t^K
\sim\mathcal N(0,I).
$$
对 ($k=K,\ldots,1$)：
$$
\mathbf A_t^{k-1}
\sim
p_\theta(
\mathbf A_t^{k-1}
\mid
\mathbf A_t^k,\mathbf O_t
).
$$
得到：
$$
\mathbf A_t^0
=

(
\mathbf a_t,\ldots,\mathbf a_{t+T_p-1}
).
$$
执行：
$$
\mathbf a_t,\ldots,\mathbf a_{t+T_a-1}.
$$
然后更新：
$$
t\leftarrow t+T_a,
$$
再次观测、生成和执行。

---

# 二十一、几个容易混淆的问题

## 1. 网络预测的是动作吗

不是直接预测最终动作。

网络输出：
$$
\epsilon_\theta(
\mathbf O_t,\mathbf A_t^k,k
),
$$
即当前带噪动作序列中的噪声估计。

最终动作是经过多次反向扩散得到的：
$$
\mathbf A_t^0.
$$

---

## 2. 网络预测的是 score 吗

直接训练目标是噪声：
$$
\boldsymbol\epsilon.
$$

但噪声预测与 score 成比例：
$$
\mathbf s_\theta
\approx
-\frac{\epsilon_\theta}
{\sqrt{1-\bar\alpha_k}}.
$$

所以可以说它隐式学习了 score。

---

## 3. 每次推理都会得到完全不同的动作吗

不一定。

虽然初始噪声不同，但在强观测条件和较集中的动作分布下，多个样本可能收敛到非常相似的动作。

**只有当**：
$$
p(\mathbf A\mid\mathbf O)
$$
**确实存在多个高概率模式时，不同噪声初始化才可能生成明显不同的合理轨迹。**

---

## 4. 去噪噪声与机器人传感器噪声相同吗

不同。

扩散噪声是训练时人为加入的高斯扰动，用于定义生成模型：
$$
\boldsymbol\epsilon\sim\mathcal N(0,I).
$$
它不等于相机噪声、控制误差或环境随机性。

---

## 5. ($T_p$) 越大是否越好

不是。

较大的 ($T_p$) 有利于长时一致性，但也会：

* 增大输出维度；
* 增加未来不确定性；
* 使远期动作更难根据当前观测确定。

所以它是表示能力和预测难度之间的折中。

---

## 6. ($T_a$) 越小是否一定越好

也不是。

较小的 ($T_a$) 能更频繁地闭环重规划，但会：

* 增加推理开销；
* 可能使相邻动作块切换模式；
* 削弱动作块带来的时间一致性。

---
# 二十二、这一节的核心结论

第 2 节完成了三次关键转换。

第一，将普通策略：
$$
\mathbf a_t=f_\theta(\mathbf o_t)
$$
转换为条件动作序列分布：
$$
p_\theta(\mathbf A_t\mid\mathbf O_t).
$$
第二，将一次性动作输出转换为迭代去噪：
$$
\mathbf A_t^K
\rightarrow
\mathbf A_t^{K-1}
\rightarrow\cdots\rightarrow
\mathbf A_t^0.
$$
第三，将完整动作序列的开环生成转换为滚动执行：
$$
\text{预测 }T_p\text{ 步}
\rightarrow
\text{执行 }T_a\text{ 步}
\rightarrow
\text{重新观测和规划}.
$$
因此，Diffusion Policy 的核心数学结构可以概括为：

$$
\boxed{
\begin{aligned}
\text{训练：}\quad&
\epsilon_\theta
\text{ 学习条件动作分布在不同噪声等级下的去噪方向};
\\
\text{推理：}\quad&
\mathbf A_t^K\sim\mathcal N(0,I)
\text{，逐步生成 }\mathbf A_t^0;
\\
\text{控制：}\quad&
\text{只执行前 }T_a\text{ 步，再基于新观测重新生成。}
\end{aligned}
}
$$

它并不是简单地“给动作加噪再去噪”，而是利用多噪声等级的监督学习，构造一个以视觉观测为条件的高维动作概率生成过程。

[1]: https://arxiv.org/html/2303.04137v5 "Diffusion Policy: Visuomotor Policy Learning via Action Diffusion"
[2]: https://proceedings.mlr.press/v162/janner22a.html "Planning with Diffusion for Flexible Behavior Synthesis"



---

# 网络总体输入与输出

在物理时间步 ($t$)，模型的输入包括三部分：

$$
\boxed{  
\mathbf O_t,\quad  
\mathbf A_t^k,\quad  
k  
}  
$$


其中：

- ($\mathbf O_t$)：当前及历史观测的视觉、状态特征；
    
- ($\mathbf A_t^k$)：第 ($k$) 个扩散噪声等级下的动作序列；
    
- ($k$)：当前扩散步。
    

模型输出：
$$
\widehat{\boldsymbol\epsilon}
=
\epsilon_\theta  
(\mathbf O_t,\mathbf A_t^k,k),  
$$

其形状与动作序列相同：
$$
\epsilon_\theta  
(\mathbf O_t,\mathbf A_t^k,k)  
\in  
\mathbb R^{T_p\times d_a}.  
$$

也就是说，每个未来动作位置都对应一个噪声预测向量。

例如：
$$
T_p=16,\qquad d_a=7,  
$$
则：

$$
\mathbf A_t^k  
\in\mathbb R^{16\times7},  
$$
网络也输出一个：
$$
16\times7  
$$
的噪声张量。

CNN 和 Transformer 的区别，不在于训练目标，而在于如何实现同一个条件映射：
$$
(\mathbf O_t,\mathbf A_t^k,k)  
\longmapsto  
\widehat{\boldsymbol\epsilon}.  
$$

---

# 三、CNN-based Diffusion Policy 的详细解释

## 1. 为什么使用一维时间卷积

动作序列可写为：
$$
\mathbf A_t^k=  
\begin{bmatrix}  
\mathbf a_t^k\\ 
\mathbf a_{t+1}^k\\  
\vdots\\ 
\mathbf a_{t+T_p-1}^k  
\end{bmatrix}.  
$$

这里的卷积不是在图像空间的横纵坐标上进行，而是在**动作序列的时间轴**上进行：
$$
t,\ t+1,\ldots,t+T_p-1.  
$$
若中间特征记为：
$$
\mathbf H\in\mathbb R^{C\times T_p},  
$$
一维卷积的一般形式为：
$$
H'_{c,t}
=
\sum_{c'}  
\sum_{\tau=-r}^{r}  
W_{c,c',\tau}  
H_{c',t+\tau}.  
$$
因此，每个时间位置的表示能够整合邻近动作位置的信息。

这种结构天然包含局部时间相关性的归纳偏置：

$$
\mathbf a_t  
\leftrightarrow  
\mathbf a_{t+1}  
\leftrightarrow  
\mathbf a_{t+2}.  
$$

---

## 2. 为什么采用类似 U-Net 的时间 CNN

Diffusion Policy 使用的时间 CNN 源于 Diffusion 中的时间 U-Net。

它通常包括：
$$
\text{下采样路径}  
\rightarrow  
\text{瓶颈}  
\rightarrow  
\text{上采样路径},  
$$
并带有跳跃连接。

下采样路径逐渐扩大时间感受野，因此能够学习较长时域结构；上采样路径恢复每个时间位置的精细输出；跳跃连接保留局部细节。

对于动作轨迹，这大致对应：

- 低分辨率特征：整段轨迹向哪个方向运动；
    
- 高分辨率特征：每一步的具体位置、姿态或速度；
    
- 跳跃连接：避免精细动作变化在多层压缩后丢失。
    

---

# 四、FiLM 条件化的原理

FiLM 是 Feature-wise Linear Modulation，即**逐特征线性调制**。

设 CNN 的中间特征为：
$$
H_{b,c,\tau},  
$$
其中：

- ($b$)：batch；
    
- ($c$)：通道；
    
- ($\tau$)：动作序列的时间位置。
    

首先将观测特征和扩散步嵌入组合为条件：
$$
\mathbf c
=
g(\mathbf O_t,\operatorname{emb}(k)).  
$$
**然后由条件网络生成每个通道的缩放和偏移参数**：
$$
\boldsymbol\gamma(\mathbf c),  
\qquad  
\boldsymbol\beta(\mathbf c).  
$$
FiLM 操作为：
$$
\boxed{  
H'_{b,c,\tau}
=
\gamma_c(\mathbf c)H_{b,c,\tau}  
+  
\beta_c(\mathbf c)  

}  
$$

FiLM 的原始定义就是由条件输入产生逐特征仿射变换参数，从而让条件信息直接改变中间网络计算。([arXiv](https://arxiv.org/abs/1709.07871?utm_source=chatgpt.com "FiLM: Visual Reasoning with a General Conditioning Layer"))

---

## 1. FiLM 在这里做了什么

同一个带噪动作序列：

$$
\mathbf A_t^k  
$$

在不同视觉观测下，应当有完全不同的去噪方向。

例如：

- 若杯子在左侧，动作应向左靠近；
    
- 若杯子在右侧，动作应向右靠近；
    
- 若夹爪已闭合，下一步应抬起；
    
- 若夹爪尚未接触物体，下一步应继续接近。
    

FiLM 让观测条件能够改变每层特征的增益和偏置：

$$
\mathbf O_t  
\rightarrow  
(\boldsymbol\gamma,\boldsymbol\beta)  
\rightarrow  
\text{改变动作去噪过程}.  
$$

它不是简单地在网络输入端拼接一次观测，而是在多个卷积层反复注入条件。

---

## 2. 扩散步 ($k$) 为什么也需要 FiLM

不同扩散步需要执行不同性质的去噪。

当 ($k$) 较大时：

$$
\mathbf A_t^k  
$$

接近随机噪声，模型需要决定动作序列的整体结构，例如：

- 向左还是向右；
    
- 先抓取还是先推动；
    
- 整体轨迹朝哪个方向发展。
    

当 ($k$) 较小时，动作结构已经形成，模型主要修正：

- 末端位置精度；
    
- 姿态；
    
- 动作平滑度；
    
- 接触附近的小幅调整。
    

因此，同一个卷积特征在不同 (k) 下需要不同处理方式。将 (k) 嵌入 FiLM，相当于告诉网络：

> 当前处于粗粒度轨迹生成阶段，还是精细动作修正阶段。

---

# 五、为什么只生成动作，而不生成观测—动作联合轨迹

Diffusion 一类轨迹扩散方法可以建模：

$$
p(\mathbf S,\mathbf A),  
$$
即同时去噪未来状态和未来动作。

Diffusion Policy 只建模：
$$
p(\mathbf A_t\mid\mathbf O_t).  
$$

因此输出为：
$$
\mathbf A_t^0,  
$$

而不是：

$$
(\mathbf O_t^0,\mathbf A_t^0).  
$$
这一设计有三个重要结果。

第一，输出维度显著降低。图像或视觉特征的维度远高于机器人动作维度。

第二，模型不必预测未来图像中的无关细节，例如光照、纹理或背景。

第三，视觉条件可以在整个去噪过程中保持固定：
$$
\mathbf h_t=f_{\mathrm{vision}}(\mathbf O_t),  
$$
然后重复用于：
$$
k=K,\ldots,1.  
$$
这使模型更接近一个“根据观测生成动作”的策略，而不是一个完整的未来世界生成器。

---

# 六、为什么删除 inpainting 目标条件化

**在轨迹扩散中，inpainting 通常表示固定轨迹中的某些变量**，例如固定初始状态和最终目标状态：

$$
\mathbf s_0=\mathbf s_{\mathrm{current}},  
\qquad  
\mathbf s_H=\mathbf s_{\mathrm{goal}},  
$$
只对中间未知部分进行扩散生成。

但是 Diffusion Policy 使用滚动预测窗口：


$$
[t,t+T_p-1]  
\rightarrow  
[t+T_a,t+T_a+T_p-1]  
\rightarrow\cdots  
$$


每次重新规划时，轨迹窗口都会移动。

如果目标状态以“轨迹中某个固定位置”参与 inpainting，那么：

- 目标在窗口中的相对位置不断改变；
    
- 目标可能位于预测时域之外；
    
- 模型本身又不生成状态轨迹，只生成动作轨迹。
    

因此，基于状态轨迹补全的目标条件化与这种动作条件扩散形式不自然。

但目标仍然可以作为一般条件：
$$
\mathbf c=  
[\mathbf O_t,\mathbf g],  
$$

并通过 FiLM 注入：

$$
\epsilon_\theta  
(\mathbf O_t,\mathbf g,\mathbf A_t^k,k).  
$$

所以作者删除的不是“目标条件能力”，而是特定的**轨迹 inpainting 实现方式**。

---

# 七、CNN 的过度平滑问题

## 1. 什么是高频动作

动作序列的“频率”描述动作随时间变化的快慢。

低频动作例如：
$$
a_t
=
0,\ 0.1,\ 0.2,\ 0.3,\ 0.4,  
$$

**变化缓慢、平滑**。

高频动作例如：
$$
a_t
=
1,\ -1,\ 1,\ -1,\ 1,  
$$

或者：
$$
a_t=  
\begin{cases}  
1,&t<5,\\  
-1,&t\ge5,  
\end{cases}  
$$
其中存在快速反向或尖锐切换。

在机器人任务中，高频变化可能来自：

- 速度命令突然反向；
    
- 周期性搅拌、擦拭；
    
- 快速接触修正；
    
- 抓取或释放附近的动作切换；
    
- 多阶段任务的边界。
    

---

## 2. CNN 为什么可能偏向平滑信号

这不能简单理解为“卷积只能表示低频信号”。理论上，只要结构和参数足够，卷积网络也能表示高频函数。

论文所说的更接近**优化和归纳偏置层面的频谱偏置**：

- 时间卷积倾向于整合相邻时间步；
    
- U-Net 下采样会压缩快速变化；
    
- 平滑轨迹通常在数据中占据更大能量；
    
- MSE 容易优先拟合幅度较大的低频结构；
    
- 局部卷积层需要多层传播才能表达远距离、非局部时间关系。
    

需要严谨指出：论文引用的 Tancik 等人的频谱偏置工作，主要研究的是标准 MLP 在低维函数拟合中优先学习低频成分，并非“所有时间 CNN 必然过度平滑”的直接定理。因此，Diffusion Policy 中关于 CNN 过度平滑的结论主要是该论文的经验观察，而不是由所引文献严格证明的普遍性质。([arXiv](https://arxiv.org/abs/2006.10739?utm_source=chatgpt.com "Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains"))

---

# 八、时间序列 Diffusion Transformer 的详细结构

设带噪动作序列为：
$$
\mathbf A_t^k
=
(\mathbf a_t^k,\ldots,  
\mathbf a_{t+T_p-1}^k).  
$$
每个动作通过线性层映射为 token：
$$
\mathbf e_i^a
=
W_a\mathbf a_{t+i}^k+b_a.  
$$
再加入时间位置编码：
$$
\widetilde{\mathbf e}_i^a
=
\mathbf e_i^a+\mathbf p_i.  
$$
扩散步 ($k$) 也被编码：

$$
\mathbf e^k
=
\operatorname{SinusoidalEmbedding}(k),  
$$

**并作为序列前面的特殊 token：**

$$
[  
\mathbf e^k,  
\widetilde{\mathbf e}_0^a,  
\ldots,  
\widetilde{\mathbf e}_{T_p-1}^a  
].  
$$


---

## 1. 观测 token

设观测历史包括：
$$
\mathbf O_t=  
(\mathbf o_{t-T_o+1},\ldots,\mathbf o_t).  
$$

各观测通过共享 MLP 映射为：

$$
\mathbf e_j^o
=
\operatorname{MLP}(\mathbf o_j).  
$$

于是得到观测 token 序列：
$$
[  
\mathbf e_{t-T_o+1}^o,  
\ldots,  
\mathbf e_t^o  
].  
$$

这些观测 token 被提供给 Transformer 解码器的 cross-attention。

---

## 2. self-attention 与 cross-attention

动作 token 之间使用 self-attention：
$$
\operatorname{Attention}(Q_a,K_a,V_a).  
$$

动作 token 对观测 token 使用 cross-attention：
$$
\operatorname{Attention}(Q_a,K_o,V_o).  
$$
因此每个未来动作位置既可以利用：

- **其他动作位置的上下文**；
    
- **当前观测历史**；
    
- **当前扩散步**。
    

**论文图 2(c) 中使用因果 mask，使第 (i) 个动作 token 只关注自身及此前动作 token。**

**需要注意，这不意味着推理时必须按动作时间一步一步采样。Transformer 仍然可以在一次前向传播中并行输出所有动作位置的噪声，只是在内部信息流上采用因果约束。**

---

## 3. 每个输出 token 预测什么

Transformer 的每个动作位置输出：

$$
\mathbf h_i.  
$$

再通过线性层得到：


$$
\widehat{\boldsymbol\epsilon}_i
=
W_\epsilon\mathbf h_i+b_\epsilon.  
$$

所有时间位置拼接后：
$$
\widehat{\boldsymbol\epsilon}
=
(\widehat{\boldsymbol\epsilon}_0,\ldots,  
\widehat{\boldsymbol\epsilon}_{T_p-1}).  
$$
这就是：

$$
\epsilon_\theta  
(\mathbf O_t,\mathbf A_t^k,k).  
$$

---

## 4. Transformer 为什么可能更适合快速变化动作

**Transformer 的每个动作位置可以直接关注较远时间位置。**

例如第 15 个动作 token 可以通过一层注意力直接访问第 1 个动作 token，而 CNN 可能需要多层卷积才能传播相同距离的信息。

同时，attention 不强制相邻动作具有相似值，因此对：

- 急剧切换；
    
- 周期动作；
    
- 阶段边界；
    
- 非局部依赖；
    

通常具有更灵活的表示能力。

但 Transformer 的训练可能更依赖：

- 学习率 warmup；
    
- weight decay；
    
- dropout；
    
- 初始化；
    
- 层数和宽度；
    
- 数据规模。
    

相关研究指出，Transformer 的残差分支可能放大参数扰动，从而导致训练初期不稳定，因此它通常比简单 CNN 更需要谨慎的优化设置。([arXiv](https://arxiv.org/abs/2004.08249?utm_source=chatgpt.com "Understanding the Difficulty of Training Transformers"))

---

# 九、CNN 与 Transformer 的准确对比

|性质|CNN Diffusion Policy|Transformer Diffusion Policy|
|---|---|---|
|时间建模|局部卷积逐层扩大感受野|注意力直接连接远距离时间位置|
|归纳偏置|偏局部、平滑、平移共享|更灵活、弱局部平滑约束|
|高频动作|可能过度平滑|通常更容易表达急剧变化|
|训练稳定性|较好|更依赖超参数|
|数据需求|相对较低|通常更高|
|新任务首选|是|任务复杂时再考虑|
|输出目标|噪声序列|噪声序列|

这里不存在“一定更先进”的结构。

更准确的选择原则是：
$$
\boxed{  
\text{Transformer：更弱的先验、更强的灵活性}  
}  
$$
---

# 十、视觉编码器的完整数据流

假设有 ($V$) 个摄像机，观测时域为 ($T_o$)。

第 ($v$) 个摄像机在第 ($j$) 个时间位置的图像记为：

$$
I_{v,j}.  
$$


论文对每个摄像机使用独立编码器：


$$
z_{v,j}
=
f_v(I_{v,j}).  
$$


**然后将不同时间、不同摄像机的编码结果与机器人本体状态拼接**：


$$
\mathbf O_t
=
\operatorname{Concat}  
\left(  
{z_{v,j}}_{v,j},  
\mathbf q_{t-T_o+1:t},  
\mathbf x_{t-T_o+1:t}  
\right).  
$$

其中可以包括：

- 关节角 ($\mathbf q$)；
    
- 末端位姿 ($\mathbf x$)；
    
- 夹爪宽度；
    
- 期望控制状态。
    

论文没有使用独立的视频时序编码器处理图像；各帧先独立编码，跨时间关系主要交给后续动作扩散网络学习。

---

# 十一、为什么 global average pooling 不适合精细操作

假设视觉特征图为：
$$
H\in\mathbb R^{C\times H_s\times W_s}.  
$$

==全局平均池化对每个通道计算：==

$$
z_c
=
\frac{1}{H_sW_s}  
\sum_{i,j}H_{c,i,j}.  
$$


**该操作保留“某个特征是否存在”，却会削弱“该特征位于何处”的信息。**

例如两个图像中都存在一个杯子，但杯子分别位于左侧和右侧。若特征响应总量相似，全局平均池化可能产生相近表示。

然而机器人控制动作高度依赖位置：

$$
\text{杯子在左}  
\Rightarrow  
\text{向左运动},  
$$

$$
\text{杯子在右}  
\Rightarrow  
\text{向右运动}.  
$$


**因此普通分类网络中有用的平移不变性，在视觉运动控制中可能反而有害。**

---

# 十二、Spatial Softmax 的数学原理

对特征通道 ($c$)，先在空间位置上计算 softmax：
$$
p_{c,i,j}
=
\frac{  
\exp(H_{c,i,j}/\tau)  
}{  
\sum_{i',j'}  
\exp(H_{c,i',j'}/\tau)  
}.  
$$
其中 ($\tau$) 是温度参数。
- **坐标期望计算**：将每个位置的概率与对应的网格物理坐标 (x, y) 相乘并求和，得到每个通道在图像上的期望坐标 $(x_c, y_c)$。
然后计算该通道激活位置的期望坐标：


$$
\bar x_c
=
\sum_{i,j}  
p_{c,i,j}x_{i,j},  
$$
$$
\bar y_c
=
\sum_{i,j}  
p_{c,i,j}y_{i,j}.  
$$


最终每个通道输出一个二维软坐标：


$$
z_c=(\bar x_c,\bar y_c).  
$$

它可以被理解成可微分的 soft-argmax：
$$
\operatorname{argmax}_{i,j}H_{c,i,j}  
\quad\longrightarrow\quad  
\mathbb E_{p_c}[(x,y)].  
$$
因此，网络可以让某个通道专门响应：

- 杯子中心；
    
- 把手；
    
- 目标区域；
    
- 机器人末端；
    
- 接触点。
    

Spatial softmax 最早就是为了从图像中形成适合机器人控制的空间特征点表示，使控制器能够根据物体位置进行闭环响应。([arXiv](https://arxiv.org/abs/1509.06113?utm_source=chatgpt.com "Deep Spatial Autoencoders for Visuomotor Learning"))

---

## Spatial Softmax 的局限

它并非无损保留空间信息。

每个特征通道最终被压缩为一个期望坐标。如果同一通道同时在两个位置强烈激活：

$$
p(x_1)\approx p(x_2)\approx0.5,  
$$

输出可能是：

$$
\bar x\approx\frac{x_1+x_2}{2},  
$$

即两个峰的平均位置。

因此，它更适合每个通道学习一个相对明确的空间关键点，而不适合无损表达复杂、多物体、多峰空间分布。

---

# 十三、BatchNorm 与 GroupNorm

## 1. BatchNorm

对于通道 (c)，BatchNorm 根据 batch 中所有样本计算均值和方差：
$$
\mu_c^{\mathrm{BN}}
=
\frac1{NHW}  
\sum_{n,i,j}x_{n,c,i,j},  
$$

$$
(\sigma_c^{\mathrm{BN}})^2
=
\frac1{NHW}  
\sum_{n,i,j}  
(x_{n,c,i,j}-\mu_c)^2.  
$$


然后：

$$
\hat x_{n,c,i,j}
=
\frac{x_{n,c,i,j}-\mu_c}  
{\sqrt{\sigma_c^2+\varepsilon}}.  
$$

训练阶段使用当前 batch 统计量，测试阶段通常使用运行均值和运行方差。

---

## 2. GroupNorm

GroupNorm 将通道划分成若干组，在每个样本内部计算归一化统计量。

若通道组为 ($g$)，则：

$$
\mu_{n,g}^{\mathrm{GN}}
=
\frac1{|g|HW}  
\sum_{c\in g,i,j}  
x_{n,c,i,j}.  
$$

因此 GroupNorm 不依赖 batch 中其他样本。

原始 GroupNorm 研究指出，BN 在小 batch 下的统计估计会明显恶化，而 GN 的计算与 batch size 无关，在不同 batch size 下更加稳定。([arXiv](https://arxiv.org/abs/1803.08494 "[1803.08494] Group Normalization"))

---

## 3. 为什么 Diffusion Policy 更偏好 GroupNorm

视觉 Diffusion Policy 的显存开销较大：

- 多摄像机；
    
- 多时间帧；
    
- ResNet；
    
- 长动作序列；
    
- 扩散网络。
    

因此图像训练的 batch size 往往比普通图像分类更小。

**小 batch 会使 BatchNorm 统计量噪声较大。**

另外，扩散模型通常维护参数的指数移动平均：
$$
\theta_{\mathrm{EMA}}  
\leftarrow  
\rho\theta_{\mathrm{EMA}}  
+  
(1-\rho)\theta.  
$$

推理时使用：
$$
\theta_{\mathrm{EMA}}  
$$
而不是最后一步参数。

BatchNorm 除可学习参数外还具有运行均值和运行方差。如果权重和归一化统计量的平均、更新方式不一致，可能出现：
$$
\text{EMA 权重}  
+  
\text{不完全匹配的 BN 统计量}.  
$$
GroupNorm 没有跨 batch 的运行统计量，因此与 EMA 模型组合更直接。

不过，“GroupNorm 与 EMA 一定优于 BatchNorm”不是普遍定理，而是该系统中基于小 batch 和工程一致性的设计选择。

---

# 十四、平方余弦噪声调度

标准 DDPM 定义累计信号保留率：

$$
\bar\alpha_k
=
\prod_{i=1}^{k}\alpha_i.  
$$

带噪动作可写为：


$$
\mathbf A^k
=
\sqrt{\bar\alpha_k}\mathbf A^0  
+  
\sqrt{1-\bar\alpha_k}\boldsymbol\epsilon.  
$$

信号噪声比大致为：

$$
\operatorname{SNR}(k)
=
\frac{\bar\alpha_k}{1-\bar\alpha_k}.  
$$

平方余弦调度定义：

$$
\bar\alpha_k
=
\frac{f(k)}{f(0)},  
$$


其中：

$$
f(k)
=
\cos^2  
\left(  
\frac{k/K+s}{1+s}  
\frac{\pi}{2}  
\right),  
$$

通常取一个较小偏移量：

$$
s\approx0.008.  
$$

再由：


$$
\beta_k
=
1-  
\frac{\bar\alpha_k}{\bar\alpha_{k-1}}  
$$


得到每一步噪声方差，并对过大的 ($\beta_k$) 进行截断。Improved DDPM 设计该调度的目的，是使 ($\bar\alpha_k$) 在过程两端变化较缓、中段近似线性下降，从而避免噪声等级在开始或结束处突变。([arXiv](https://arxiv.org/pdf/2102.09672?utm_source=chatgpt.com "Improved Denoising Diffusion Probabilistic Models"))

---

## 1. 噪声调度究竟控制什么

当：

$$
\bar\alpha_k\approx1,  
$$

动作中大部分是真实信号，模型学习细小去噪修正。

当：

$$
\bar\alpha_k\approx0,  
$$

动作接近高斯噪声，模型学习动作分布的粗粒度全局结构。

因此噪声调度决定：

- 每个噪声等级的 SNR；
    
- 模型在各尺度接受多少训练；
    
- 反向去噪时每步修正幅度；
    
- 模式何时从混合状态分裂出来；
    
- 精细动作结构在多少步中恢复。
    

---

## 2. 与高低频动作的关系

论文说噪声调度控制对高频、低频动作特征的捕获程度。

更严格地说，它不是一个显式 Fourier 滤波器，不会直接指定：

$$
\omega<\omega_0  
$$

学习多少、
$$
\omega>\omega_0  
$$

学习多少。

其作用是通过不同噪声尺度改变：

$$
\text{粗粒度结构}  
\leftrightarrow  
\text{精细结构}  
$$
的训练权重。

低频、全局轨迹结构通常能在较高噪声水平下保留或恢复；高频、细粒度动作变化通常需要在低噪声阶段恢复。因此噪声调度会**间接影响**模型学习动作频率结构。

这是尺度和信噪比意义上的解释，而不是严格的频域滤波等价关系。

---

# 十五、DDIM 为什么能跳过去噪步骤

DDPM 通常按完整链采样：


$$
K\rightarrow K-1\rightarrow\cdots\rightarrow0.  
$$


若训练使用：


$$
K=100,  
$$


普通 DDPM 推理通常也需要约 100 次网络前向传播。

**DDIM 构造了与 DDPM 共享训练目标、但具有非马尔可夫前向过程的采样方法**，可以从：

$$
k_i  
$$

直接跳到更小的：

$$
k_{i-1},  
$$

从而只选择稀疏的噪声时间点进行推理。DDIM 原论文明确指出，它与 DDPM 使用相同训练过程，但反向采样可以显著减少步骤，并在实验中达到数倍到数十倍加速。([arXiv](https://arxiv.org/abs/2010.02502 "[2010.02502] Denoising Diffusion Implicit Models"))

---

## 1. DDIM 单步更新

根据当前样本：
$$
\mathbf A^k  
$$
和噪声预测：
$$
\widehat{\boldsymbol\epsilon}
=
\epsilon_\theta(\mathbf O,\mathbf A^k,k),  
$$
先估计干净动作：
$$
\widehat{\mathbf A}^0
=
 \frac{  
\mathbf A^k
-
\sqrt{1-\bar\alpha_k}  
\widehat{\boldsymbol\epsilon}  
}{  
\sqrt{\bar\alpha_k}  
}.  
$$

然后直接跳到更低噪声等级 ($j<k$)：
$$
\mathbf A^j
=
\sqrt{\bar\alpha_j}  
\widehat{\mathbf A}^0  
+  
\sqrt{1-\bar\alpha_j-\sigma_{k\to j}^2}  
\widehat{\boldsymbol\epsilon}  
+  
\sigma_{k\to j}\mathbf z.  
$$
当：
$$
\sigma_{k\to j}=0,  
$$

采样过程是确定性的。

因此，可以使用：
$$
100  
$$
个训练噪声等级，但推理只访问例如：
$$
100,\ 90,\ 80,\ldots,0  
$$

共 10 个时间点。


## 2. 为什么训练步数和推理步数可以不同

训练网络学习的是：
$$
\epsilon_\theta(\mathbf A^k,k)  
$$

在多个噪声等级上的去噪方向。

**只要推理所选择的噪声等级包含在训练范围内，DDIM 可以利用网络对这些噪声等级的预测，进行较大的跨步更新。**

但减少推理步数不是免费的：
$$
\text{步骤越少}  
\Rightarrow  
\text{每步跨越的噪声区间越大}.  
$$


这可能造成：

- 动作精度下降；
    
- 模式覆盖下降；
    
- 高频动作细节损失；
    
- 对模型预测误差更敏感。
    

因此存在：
$$
\boxed{  
\text{推理速度}  
\quad\leftrightarrow\quad  
\text{采样质量}  
}  
$$
的折中。

---

## 3. 关于 10 步和 16 步

正文第 3.4 节报告：
$$
100\text{ 个训练步}  
+  
10\text{ 个推理步}  
$$
可在 RTX 3080 上达到约 0.1 秒延迟。

而扩展版附录的部分真实任务配置表中列出了：

$$
16  
$$

个推理步。

这可以理解为：

- 10 步用于说明 DDIM 的实时加速能力；
    
- 最终某些实验配置采用 16 步，以在速度和动作质量之间取得不同折中。
    

因此，“训练 100 步、推理 10 步”不是所有实验必须完全一致的固定规则。

---

# Diffusion Policy 的重要性质

## Diffusion Policy 的一些重要性质

作者给出关于 Diffusion Policy 的若干见解和直觉，并讨论其相对于其他策略表示形式的优势。

---

## 4.1 建模多模态动作分布

在人类示范中建模多模态分布，一直是行为克隆领域广泛讨论的问题。

Diffusion Policy 能够自然、精确地表示多模态分布，这是其主要优势之一。

直观而言，Diffusion Policy 动作生成中的多模态性来自两个方面：

1. 随机初始化；
    
2. 底层的随机采样过程。
    

在随机朗之万动力学中，每次采样开始时，初始动作：

$$
\mathbf A_t^K  
$$

从标准高斯分布采样。

不同的初始样本可能落入最终动作预测：

$$
\mathbf A_t^0  
$$

的不同收敛盆地。

随后，动作样本在大量迭代中进行随机优化，每一步都会加入高斯扰动。

这使单个动作样本能够收敛到不同的多模态动作区域，并在某些阶段于不同模态的吸引域之间移动。

图 3 展示了 Diffusion Policy 在平面 Push-T 任务中的多模态行为，其中测试场景本身没有被示范数据明确展示。

---

##  与位置控制的协同作用

作者发现，使用位置控制动作空间的 Diffusion Policy，持续优于使用速度控制的 Diffusion Policy，如图 4 所示。

这一结果与大多数近期行为克隆工作形成对比，因为许多已有方法通常依赖速度控制。

作者推测有两个主要原因。

第一，位置控制下的动作多模态性通常比速度控制下更加明显。

由于 Diffusion Policy 比已有方法更擅长表示动作多模态性，因此它受到位置控制这一缺点的影响更小。

第二，与速度控制相比，位置控制受到误差累积效应的影响更小，因此更适合动作序列预测。

所以，Diffusion Policy 一方面能够减轻位置控制的主要缺点，另一方面又能更好地利用位置控制的优势。

---

## 动作序列预测的优势

大多数策略学习方法通常避免进行序列预测，因为从高维输出空间中进行有效采样非常困难。

例如，在具有不平滑能量地形的高维动作空间中，IBC 很难进行有效采样。

类似地，BC-RNN 和 BET 也很难确定动作分布中到底存在多少个模式，因为它们分别需要为 GMM 或 k-means 指定模式数量。

相比之下，DDPM 能够随输出维度扩展，而不会明显牺牲模型表达能力，这一点已经在图像生成中得到展示。

Diffusion Policy 利用这种能力，将动作表示为高维动作序列，从而自然解决以下问题。

### 时间动作一致性

以图 3 为例，为了从下方将 T 形物体推入目标区域，策略可以从左侧或右侧绕过物体。

如果动作序列中的每个动作都由相互独立的多模态分布预测，那么连续动作可能从不同模式中采样。

结果可能是动作在两条有效轨迹之间反复切换，产生抖动。

### 对空闲动作的鲁棒性

当示范者暂停操作时，会产生空闲动作。

在位置控制中，它表现为连续相同的位置命令；在速度控制中，则表现为接近零的速度命令。

空闲动作在遥操作数据中很常见，在液体倾倒等任务中有时也是必要行为。

但是，单步策略容易过拟合这种暂停行为。

例如，如果训练前不显式删除空闲动作，BC-RNN 和 IBC 在真实实验中经常会停住，无法继续完成任务。

---

## 4.4 训练稳定性

理论上，IBC 应当具有与扩散策略相似的分布表达优势。

但是在实践中，由于 IBC 固有的训练不稳定性，很难稳定获得可靠的高性能结果。

图 6 显示，IBC 在训练过程中存在训练误差尖峰和评估性能振荡，这使得超参数调整和 checkpoint 选择非常困难。

因此，IBC 原论文需要评估每个 checkpoint，并报告性能最好的 checkpoint。

在真实机器人场景中，这意味着必须在硬件上测试大量策略，才能选出最终模型。

下面作者解释为什么 Diffusion Policy 的训练明显更加稳定。

隐式策略使用能量模型表示动作分布：
$$
p_\theta(a\mid o)
=
\frac{  
e^{-E_\theta(o,a)}  
}{  
Z(o,\theta)  
},  
\tag{6}  
$$
其中：
$$
Z(o,\theta)  
$$
是关于动作 ($a$) 难以计算的归一化常数。

为了训练隐式策略的能量模型，通常使用类似 InfoNCE 的损失：
$$
\mathcal L_{\mathrm{InfoNCE}}
=
-\log  
\frac{  
e^{-E_\theta(o,a)}  
}{  
e^{-E_\theta(o,a)}  
+  
\sum_{j=1}^{N_{\mathrm{neg}}}  
e^{-E_\theta(o,\tilde a_j)}  
}.  
\tag{7}  
$$
其中，负样本集合：

$$
{\tilde a_j}_{j=1}^{N_{\mathrm{neg}}}  
$$

用于近似难以计算的归一化常数。

实践中，负样本估计不准确，会造成 EBM 训练不稳定。

Diffusion Policy 和 DDPM 通过建模同一动作分布的 score function，绕过了估计归一化常数的问题：

$$
\nabla_a\log p(a\mid o)
=
 -\nabla_aE_\theta(a,o)
-
\underbrace{  
\nabla_a\log Z(o,\theta)  
}_{=0}  
\approx  
-\epsilon_\theta(a,o).  
\tag{8}  
$$


噪声预测网络：
$$
\epsilon_\theta(a,o)  
$$

近似 score 的负方向，并且该方向与归一化常数无关。

因此，Diffusion Policy 的训练和推理都不需要计算：
$$
Z(o,\theta),  
$$

从而使训练更加稳定。IBC 本身将行为克隆表述为条件 EBM，并需要在推理时通过采样或梯度优化寻找动作。([arXiv](https://arxiv.org/abs/2109.00137?utm_source=chatgpt.com "Implicit Behavioral Cloning"))

---

## 4.5 与控制理论的联系

当任务非常简单时，Diffusion Policy 具有简单的极限行为，这使我们可以从控制理论中得到一些较严格的理解。

考虑标准线性状态空间系统：
$$
s_{t+1}
=
As_t+Ba_t+w_t,  
\qquad  
w_t\sim\mathcal N(0,\Sigma_w).  
$$
假设示范轨迹来自线性反馈策略：
$$
a_t=-Ks_t.  
$$

例如，该策略可以由线性二次型调节器 LQR 求得。

模仿这种策略并不需要扩散模型如此强的建模能力，但它可以作为一个合理性检查：Diffusion Policy 在简单情况下应当恢复正确的控制律。

当动作预测时域只有一步：
$$
T_p=1,  
$$
最小化以下损失的最优去噪器：
$$
\mathcal L
=
\operatorname{MSE}  
\left(  
\epsilon^k,  
\epsilon_\theta  
(s_t,-Ks_t+\epsilon^k,k)  
\right)  
\tag{9}  
$$
为：

$$
\epsilon_\theta(s,a,k)
=
\frac1{\sigma_k}  
[a+Ks],  
$$

其中 ($\sigma_k$) 是第 ($k)$ 个去噪步的噪声标准差。

此外，在推理阶段，DDIM 采样会收敛到全局最小点：
$$
a=-Ks.  
$$
当预测时域：
$$
T_p>1  
$$
时，结论可以自然推广。

为了根据当前状态 ($s_t$) 预测未来动作 ($a_{t+t'}$)，最优去噪器将产生：
$$
a_{t+t'}
=
-K(A-BK)^{t'}s_t.  
$$
所有与过程噪声 ($w_t$) 有关的项在条件期望中均为零。

这表明，为了完美模仿依赖状态的行为，学习器必须隐式学习一个与任务相关的动力学模型。

如果被控系统或控制策略是非线性的，预测未来动作会更加困难，并且可能再次涉及多模态预测。

---

# 多模态动作生成的严格解释

## 1. 学习的不是干净分布本身，而是噪声平滑后的分布

定义干净条件动作分布：
$$
p_0(\mathbf A\mid\mathbf O).  
$$

在第 ($k$) 个噪声等级，动作被高斯噪声卷积，形成：

$$
p_k(\mathbf A^k\mid\mathbf O).  
$$
score 为：

$$
\mathbf s_k(\mathbf A^k,\mathbf O)
=
\nabla_{\mathbf A^k}  
\log p_k(\mathbf A^k\mid\mathbf O).  
$$

噪声网络与 score 的关系为：
$$
\epsilon_\theta  
(\mathbf O,\mathbf A^k,k)  
\approx  
-\sqrt{1-\bar\alpha_k}  
\mathbf s_k(\mathbf A^k,\mathbf O).  
$$
**因此模型学习的是不同平滑尺度上的概率梯度场。**

---

## 2. 两个动作模式的例子

假设：

$$
p_0(a\mid o)
=
\frac12\mathcal N(-1,\delta^2)  
+  
\frac12\mathcal N(1,\delta^2).  
$$

在低噪声水平，两个峰彼此分离：

$$
-1  
\qquad\text{和}\qquad  
+1.  
$$


在高噪声水平，两个分布被更大的高斯核平滑，可能暂时融合成一个宽峰。

反向扩散过程中：


$$
\text{高噪声宽分布}  
\rightarrow  
\text{逐渐分裂}  
\rightarrow  
\text{两个清晰模式}.  
$$

不同初始噪声样本在分裂阶段可能进入不同的概率流域，因此最终得到：

$$
a^0\approx-1  
$$


或：

$$
a^0\approx1.  
$$


这比直接把两个动作平均成：
$$
a=0  
$$
更适合多模态控制。

---

## 3. 两种随机性的准确含义

论文指出两种来源：

### 随机初始化


$$
\mathbf A^K\sim\mathcal N(0,I).  
$$


不同初始化会对应不同的生成路径。

### 反向过程中的随机扰动


$$
\mathbf A^{k-1}
=
\mu_\theta(\mathbf A^k)  
+  
\sigma_k\mathbf z_k.  
$$


**即使初始化相同，不同的 ($\mathbf z_k$) 也可能产生不同结果。**

但是，在确定性 DDIM 中：
$$
\sigma_k=0,  
$$

第二种随机性会消失。

此时，多模态主要来自初始噪声：

$$
\mathbf A^K.  
$$

**所以论文关于“两种多模态来源”的说法适用于随机 DDPM 或随机 Langevin 式采样；对于确定性 DDIM，需要作上述区分。**

---

## 4. “在不同模式间移动”并不总是容易

高噪声阶段，各模式被平滑，跨模式移动比较容易。

低噪声阶段，模式之间形成低概率区域，此时随机扰动较小，跨模式切换会变得困难。

这正是一个合理生成过程应具有的性质：

- 早期决定全局模式；
    
- 后期坚持该模式并修正细节。
    

因此，单次 rollout 中通常不会在每个控制步随意切换左右路径。

---

# 十八、位置控制与速度控制的严格比较

## 1. 速度控制

速度控制可写为：
$$
x_{t+1}
=
x_t+\Delta t,v_t.  
$$

若策略预测速度存在误差：
$$
\hat v_t=v_t^*+\delta v_t,  
$$
则位置误差为：
$$
\hat x_T-x_T^*
=
\Delta t  
\sum_{t=0}^{T-1}\delta v_t.  
$$

因此误差会通过积分累积。

即使：
$$
\mathbb E[\delta v_t]=0,  
$$

**若误差近似独立，方差也会随时间增长**：

$$
\operatorname{Var}  
(\hat x_T-x_T^*)
=
\Delta t^2  
\sum_t\operatorname{Var}(\delta v_t).  
$$
---

## 2. 位置控制

位置控制直接输出目标位置：
$$
x_t^{\mathrm{des}}.  
$$
低层控制器执行：
$$
u_t
=
K_p(x_t^{\mathrm{des}}-x_t)  
+  
K_d(\dot x_t^{\mathrm{des}}-\dot x_t).  
$$
==每个时刻的参考位置都相对于绝对坐标或当前控制框架**重新定义。**==

若之前出现了一些跟踪误差，后续位置命令并不一定在该误差基础上继续积分。

因此位置动作序列：
$$
(x_t^{\mathrm{des}},\ldots,x_{t+H}^{\mathrm{des}})  
$$
更像一组锚定的轨迹点；速度动作序列则需要通过连续积分才能得到轨迹。

---

## 3. 为什么位置控制的多模态性更强

假设机器人可以从左侧或右侧绕过物体。

未来绝对位置轨迹可能是：
$$
\mathbf X^{(L)}  
$$
或：
$$
\mathbf X^{(R)},  
$$
二者在空间上相距很远。

因此：
$$
p(\mathbf X\mid O)  
$$
具有非常明显的两个模式。

速度轨迹在开始阶段可能只是小幅不同，例如：
$$
v_x=-0.1  
$$
或：
$$
v_x=0.1.  
$$
局部速度差异可能没有绝对位置轨迹那么明显。

传统 MSE 或单高斯策略在位置空间更容易生成两条轨迹的平均：

$$
\frac12\mathbf X^{(L)}  
+  
\frac12\mathbf X^{(R)},  
$$

从而落入障碍物附近。

Diffusion Policy 能保留整个位置轨迹分布，因此可以利用绝对位置控制的抗累积误差优势，同时避免模式平均。

---

## 4. 为什么位置控制与 action chunk 更匹配

在执行长度为 ($T_a$) 的动作块期间，高层策略不重新规划。

若动作块是速度：
$$
(v_t,\ldots,v_{t+T_a-1}),  
$$

其误差会连续积分。

若动作块是目标位置：
$$
(x_t^{\mathrm{des}},\ldots,  
x_{t+T_a-1}^{\mathrm{des}}),  
$$

每个命令都为底层伺服器提供新的绝对参考。

所以在分段开环的动作块执行中，位置命令通常更容易保持轨迹形状。

---

## 5. 这一结论并非普遍规律

位置控制并不总是优于速度控制。

在以下场景中，速度或力控制可能更合适：

- 高速动态任务；
    
- 接触力必须精确控制；
    
- 机器人位置伺服器较差；
    
- 外部环境运动很快；
    
- 绝对位置目标可能产生过大瞬时误差；
    
- 需要高度柔顺的接触。
    

因此论文结论应理解为：
$$
\boxed{  
\text{在本文的行为克隆、动作块和底层控制设置中，位置控制与 Diffusion Policy 协同得更好}  
}  
$$
而不是位置控制在所有机器人任务中都优于速度控制。

---

# 十九、为什么联合动作序列比逐步多模态预测更一致

设未来动作序列为：
$$
\mathbf A
=
(a_0,a_1,\ldots,a_{H-1}).  
$$
逐步独立模型近似：
$$
p(\mathbf A\mid O)  
\approx  
\prod_{i=0}^{H-1}  
p(a_i\mid O).  
$$
该分解忽略了不同时间动作之间的联合依赖。

假设每一步都有：

$$
p(a_i=L\mid O)=0.5,  
\qquad  
p(a_i=R\mid O)=0.5.  
$$
长度为 (H) 的序列共有：

$$
2^H  
$$
种组合。

但真正合理的可能只有两种：


$$
(L,L,\ldots,L),  
$$


$$
(R,R,\ldots,R).  
$$

独立模型赋予完全一致轨迹的总概率只有：
$$
2\left(\frac12\right)^H.  
$$
当 ($H$) 较大时，这个概率迅速趋近于零。

Diffusion Policy 则直接建模联合分布：

$$
p(a_0,\ldots,a_{H-1}\mid O),  
$$

可以将概率集中在两条完整轨迹上，而不给：

$$
(L,R,L,R,\ldots)  
$$

这种时间不一致序列较高概率。

---

# 二十、为什么动作序列能够缓解 idle action 问题

假设某一观测附近，示范数据中同时出现：
$$
(o_t,a_t\approx0)  
$$
和：
$$
(o_t,a_t\neq0).  
$$


原因可能是示范者在相似状态下有时短暂停顿，有时继续运动。

单步 MSE 策略学习：


$$
f^*(o)
=
\mathbb E[a\mid o],  
$$
可能得到幅值较小的动作。

执行后机器人状态变化很小，下一帧仍然看到相似观测，于是再次输出小动作：
$$
o_t\approx o_{t+1}  
\Rightarrow  
a_t\approx a_{t+1}\approx0.  
$$

这形成一个吸引性停滞状态。

动作序列模型学习：

$$
p(a_t,\ldots,a_{t+H}\mid O_t).  
$$

它可以区分两种序列模式：


$$
(0,0,0,\text{继续运动},\ldots)  
$$


和：

$$
(\text{持续运动},\ldots).  
$$


也就是说，暂停不再被解释成永远停住，而是完整时间模式中的一部分。

不过，序列预测不能从根本上消除数据歧义。如果相同观测历史对应完全相同的长期停顿和继续行为，且没有额外任务阶段信息，那么模型仍然无法唯一判断。它只是比单步预测利用了更多时间上下文。

---

# 二十一、Diffusion Policy 的高维扩展能力应如何理解

论文说 DDPM 能够扩展到高维输出空间，但这不意味着输出维度增加没有代价。

输出维度：

$$
D=T_p d_a  
$$

增加时，仍会带来：

- 网络参数和激活增加；
    
- 训练数据需求增加；
    
- 远期动作不确定性增加；
    
- 采样误差可能增加；
    
- 推理计算增加。
    

论文的准确含义是：

> 与需要显式枚举模式、设计高维混合分布或在高维空间中进行候选动作搜索的方法相比，扩散模型提供了一种较自然、可扩展的联合连续分布参数化。

例如 GMM（高斯混合模型） 需要指定：
$$
M  
$$


个模式，并为每个模式输出高维均值、协方差。

IBC 若通过有限候选采样寻找：
$$
\arg\min_AE(O,A),  
$$

则随着 ($D$) 增大，有限候选点覆盖空间会迅速变差。

扩散模型不需要显式列举模式数，而是通过一个高维 score 向量场表示分布结构。

---

# 二十二、IBC 训练不稳定性的严格推导

能量模型定义：

$$
p_\theta(a\mid o)
=
\frac{  
e^{-E_\theta(o,a)}  
}{  
Z_\theta(o)  
},  
$$

其中：
$$
Z_\theta(o)
=
\int  
e^{-E_\theta(o,a')}  
,da'.  
$$
对专家动作 ($a^+$)，负对数似然为：
$$
-\log p_\theta(a^+\mid o)
=
E_\theta(o,a^+)  
+  
\log Z_\theta(o).  
$$
对参数求梯度：

$$
\nabla_\theta[-\log p_\theta(a^+\mid o)]
=
\nabla_\theta E_\theta(o,a^+)  
+  
\nabla_\theta\log Z_\theta(o).  
$$


而：
$$
\nabla_\theta\log Z_\theta(o)
=
-\mathbb E_{a\sim p_\theta(\cdot\mid o)}  
[  
\nabla_\theta E_\theta(o,a)  
].  
$$
因此：
$$
\boxed{  
\nabla_\theta\mathcal L
=
 \nabla_\theta E_\theta(o,a^+)
+
\mathbb E_{a\sim p_\theta}  
[  
\nabla_\theta E_\theta(o,a)  
]  
}  
$$
第一项降低专家动作的能量。

第二项提高模型当前错误偏好的动作的能量。

**问题是第二项需要从当前模型分布**：
$$
p_\theta(a\mid o)  
$$
中采样，而这本身就需要在复杂能量面上进行推理。

---

## 1. InfoNCE 的有限负样本近似

IBC 使用有限负样本：

$$
\tilde a_1,\ldots,\tilde a_{N_{\mathrm{neg}}}  
$$

近似模型分布的其他动作区域。

如果某个错误动作区域：
$$
\mathcal B  
$$

具有很低能量，但负样本从未落入该区域，那么损失无法发现它。

于是可能出现：
$$
E(o,a^+)\text{ 很低},  
$$
同时：
$$
E(o,a^-_{\mathrm{false}})\text{ 也很低}.  
$$

训练损失仍然看似正常，但推理优化可能被错误低能量区域吸引。

这就是“训练能量分类损失下降，但实际动作优化失败”的一种来源。

---

# 二十三、为什么 score matching 消除了配分函数

动作 score 为：
$$
\nabla_a\log p_\theta(a\mid o).  
$$
代入：
$$
\log p_\theta(a\mid o)
=
-E_\theta(o,a)-\log Z_\theta(o),  
$$

得到：
$$
\nabla_a\log p_\theta(a\mid o)
=
 -\nabla_aE_\theta(o,a)
-
\nabla_a\log Z_\theta(o).  
$$
由于：
$$
Z_\theta(o)  
$$
不依赖动作 (a)，所以：
$$
\nabla_a\log Z_\theta(o)=0.  
$$
因此：
$$
\boxed{  
\nabla_a\log p_\theta(a\mid o)
=
-\nabla_aE_\theta(o,a)  
}  
$$
不需要知道：
$$
Z_\theta(o).  
$$
论文正文有一处文字写成“估计 ($Z(a,\theta)$)”，严格来说应当是：
$$
Z(o,\theta),  
$$
因为条件配分函数依赖观测和参数，而不是被积分掉的动作变量。

---

## 1. 噪声预测与 score 的准确比例

论文式（8）简写为：
$$
\nabla_a\log p(a\mid o)  
\approx-\epsilon_\theta(a,o).  
$$

严格地说，在第 ($k$) 个噪声水平：
$$
\boxed{  
\nabla_{a^k}  
\log p_k(a^k\mid o)  
\approx  
-\frac{  
\epsilon_\theta(o,a^k,k)  
}{  
\sqrt{1-\bar\alpha_k}  
}  
}  
$$
所以：
$$
\epsilon_\theta  
$$
不是数值上直接等于负 score，而是与负 score 成一个依赖 (k) 的比例。

---

## 2. 为什么它比负样本训练更稳定

扩散训练通过对真实动作加入已知高斯噪声：
$$
a^k
=
\sqrt{\bar\alpha_k}a^0  
+  
\sqrt{1-\bar\alpha_k}\epsilon  
$$
构造训练输入。

目标噪声：
$$
\epsilon  
$$
是精确已知的，因此使用：
$$
||\epsilon-\epsilon_\theta||^2  
$$
进行监督学习。

它不需要在整个高维动作空间中寻找“困难负样本”。

所以训练问题从：
$$
\text{全局区分专家动作与所有错误动作}  
$$
转化为：
$$
\text{在多个噪声尺度上恢复被扰动的专家动作}.  
$$
这通常更接近标准回归问题。

但必须强调：
$$
\boxed{  
\text{不需要配分函数}  
\neq  
\text{扩散模型必然稳定}  
}  
$$
扩散策略仍可能受以下因素影响：

- 噪声调度；
    
- 动作归一化；
    
- 网络容量；
    
- 学习率；
    
- 推理步数；
    
- 训练数据覆盖；
    
- 条件编码质量。
    

论文证明的是经验上比其 IBC 实现更稳定，而不是所有 score 模型对所有 EBM 的普遍稳定性定理。

---

# 二十四、控制理论例子的完整推导

## 1. 线性系统与专家控制器

系统为：
$$
s_{t+1}
=
As_t+Ba_t+w_t,  
$$
其中：
$$
w_t\sim\mathcal N(0,\Sigma_w).  
$$
专家策略是线性反馈：
$$
a_t^*=-Ks_t.  
$$
因此闭环动力学为：
$$
s_{t+1}
=
(A-BK)s_t+w_t.  
$$
定义：
$$
F=A-BK.  
$$
则：
$$
s_{t+1}=Fs_t+w_t.  
$$


---

## 2. 单步预测 ($T_p=1$)

**专家动作是确定的**：
$$
a^*=-Ks.  
$$
在第 ($k$) 个扩散噪声水平，假设加入标准差为 ($\sigma_k$) 的噪声：
$$
\tilde a
=
-Ks+\sigma_k\epsilon,  
\qquad  
\epsilon\sim\mathcal N(0,I).  
$$
**噪声预测训练目标**是：
$$
\mathcal L
=
\mathbb E  
\left[  
\left| \left|   
\epsilon-  
\epsilon_\theta(s,\tilde a,k)  
\right|\right|^2  
\right].  
$$
对于 MSE，最优函数为条件期望：
$$
\epsilon_\theta^*(s,\tilde a,k)
=
\mathbb E[  
\epsilon  
\mid  
s,\tilde a,k  
].  
$$
由于：
$$
\tilde a=-Ks+\sigma_k\epsilon,  
$$
可以直接解出：
$$
\epsilon
=
\frac{\tilde a+Ks}{\sigma_k}.  
$$
因此：
$$
\boxed{  
\epsilon_\theta^*(s,a,k)
=
\frac{a+Ks}{\sigma_k}  
}  
$$
这不是近似，而是在专家动作确定、噪声模型正确且网络容量无限时的总体最优解。

---

## 3. 与条件 score 的关系

带噪动作条件分布为：
$$
q_k(a\mid s)
=
\mathcal N  
(-Ks,\sigma_k^2I).  
$$
其对数密度为：
$$
\log q_k(a\mid s)
=
-\frac1{2\sigma_k^2}  
|a+Ks|^2+C.  
$$
score 为：
$$
\nabla_a\log q_k(a\mid s)
=
-\frac{a+Ks}{\sigma_k^2}.  
$$
而最优噪声预测为：
$$
\epsilon_\theta^*
=
\frac{a+Ks}{\sigma_k}.  
$$
所以：
$$
\boxed{  
\epsilon_\theta^*
=
-\sigma_k  
\nabla_a\log q_k(a\mid s)  
}  
$$
这正好验证了噪声预测与负 score 之间的比例关系。

---

## 4. 对应的能量函数

该条件高斯分布的能量可以写为：
$$
E_k(s,a)
=
\frac1{2\sigma_k^2}  
|a+Ks|^2.  
$$
其梯度为：
$$
\nabla_aE_k(s,a)
=
\frac{a+Ks}{\sigma_k^2}.  
$$

唯一全局最小点满足：
$$
a+Ks=0,  
$$
即：
$$
\boxed{  
a=-Ks  
}  
$$
因此，当去噪器精确时，反向去噪过程会把动作引向专家线性反馈控制律。

---

## 5. “DDIM 收敛到全局最小点”的条件

论文的结论依赖理想化条件：

- 去噪器是总体最优解；
    
- 数据确实来自精确线性反馈；
    
- 噪声调度和 DDIM 更新正确；
    
- 模型没有近似误差；
    
- 数值推理步数足够。
    

实际神经网络只近似：
$$
\epsilon_\theta^*.  
$$
因此，在真实训练中并不存在无条件的严格收敛保证。

论文这里主要是在做 sanity check：

> 如果真实策略是简单线性控制律，Diffusion Policy 的最优解不会产生奇怪行为，而会恢复该控制律。

---

# 二十五、多步轨迹预测的完整推导

闭环系统：
$$
s_{t+1}=Fs_t+w_t,  
\qquad F=A-BK.  
$$
递推得到：
$$
s_{t+2}
=
F^2s_t+Fw_t+w_{t+1}.  
$$
一般地：
$$
\boxed{  
s_{t+j}
=
F^js_t  
+  
\sum_{i=0}^{j-1}  
F^{j-1-i}w_{t+i}  
}  
$$

专家未来动作：


$$
a_{t+j}
=
-Ks_{t+j}.  
$$


因此：
$$
a_{t+j}
=
 -KF^js_t
-
K\sum_{i=0}^{j-1}  
F^{j-1-i}w_{t+i}.  
$$
假设：
$$
\mathbb E[w_t]=0  
$$

且过程噪声与当前状态条件独立，则：


$$
\mathbb E[  
a_{t+j}\mid s_t  
]
=
-KF^js_t.  
$$


代回 ($F=A-BK$)：

$$
\boxed{  
\mathbb E[  
a_{t+j}\mid s_t  
]
=
-K(A-BK)^js_t  
}  
$$

这就是论文给出的未来动作表达式。

---

## 1. 过程噪声并没有“消失”

论文说所有涉及 ($w_t$) 的项在期望中为零，指的是：
$$
\mathbb E[w_t]=0.  
$$

但过程噪声仍然会造成未来动作不确定性。

未来状态协方差为：

$$
\operatorname{Cov}  
(s_{t+j}\mid s_t)
=
\sum_{i=0}^{j-1}  
F^i\Sigma_w(F^i)^\top.  
$$

未来动作协方差为：

$$
\operatorname{Cov}  
(a_{t+j}\mid s_t)
=
K  
\operatorname{Cov}  
(s_{t+j}\mid s_t)  
K^\top.  
$$
所以论文给出的：
$$
-KF^js_t  
$$
是条件均值，而不是每次随机 rollout 中的精确动作实现值。

---

# 二十六、为什么动作序列预测意味着隐式学习动力学

为了从当前状态 ($s_t$) 预测未来动作：
$$
a_{t+j},  
$$
策略需要实现：
$$
s_t  
\longrightarrow  
s_{t+j}  
\longrightarrow  
a_{t+j}.  
$$
在线性例子中，它必须编码：
$$
F^j=(A-BK)^j.  
$$
因此，动作序列预测网络不能只学习当前静态映射：
$$
s_t\mapsto a_t.  
$$
它还必须学习：
$$
s_t  
\mapsto  
(a_t,a_{t+1},\ldots,a_{t+T_p-1}).  
$$
这要求模型理解：

- 执行动作后状态如何变化；
    
- 专家下一步会如何根据新状态响应；
    
- 这些闭环变化如何累积。
    

这就是“隐式学习任务相关动力学”的含义。

---

## 1. 它不一定学习完整的 (A) 和 (B)

模型不需要分别恢复：
$$
A,\qquad B,\qquad K.  
$$

它只需要学习能够正确预测专家未来动作的组合：

$$
A-BK.  
$$

不同的系统参数组合可能产生相同闭环映射。

因此所谓“动力学模型”不是完整、可解释、可用于任意控制器的物理模型，而是：

$$
\boxed{  
\text{足以预测专家动作序列的任务相关闭环动力学表示}  
}  
$$

---

# 二十七、非线性是否必然导致多模态

论文指出，如果被控对象或策略非线性，未来动作预测可能变得更加困难，并再次涉及多模态。

需要更严格地理解这一表述。

非线性本身并不自动意味着多模态。

例如：
$$
s_{t+1}=s_t^3,  
\qquad  
a_t=-\tanh(s_t)  
$$

虽然是非线性的，但若当前状态完全可知且系统确定，未来动作仍然是唯一的。

多模态通常还需要以下因素之一：

- 部分可观测性；
    
- 当前视觉观测对应多个潜在状态；
    
- 专家存在多个有效策略；
    
- 接触模式分支；
    
- 随机动力学；
    
- 多个任务阶段在视觉上难以区分；
    
- 不同子目标顺序均可行。
    

因此更准确地说：
$$
\boxed{  
\text{非线性提高了未来映射复杂度；当它与不确定性或多解结构结合时，容易形成多模态动作分布}  
}  
$$

---

# 控制理论分析没有证明什么

没有证明：

- 学习后的真实机器人闭环一定稳定；
    
- 状态始终保持在安全集合内；
    
- 分布外状态能够恢复；
    
- 动作块执行满足约束；
    
- 非线性系统具有 Lyapunov 稳定性；
    
- 学习误差不会积累。
    

在线性系统中，专家闭环稳定通常还需要：

$$
\rho(A-BK)<1,  
$$


其中 ($\rho$) 是谱半径。

即使专家稳定，学习策略：
$$
\hat a=-Ks+\delta(s)  
$$
仍会引入逼近误差。

闭环变为：
$$
s_{t+1}
=
(A-BK)s_t+B\delta(s_t)+w_t.  
$$
要证明稳定性，还需要对：
$$
\delta(s)  
$$

的幅度或 Lipschitz 常数进行约束，并进行鲁棒稳定性分析。

论文没有进行这类证明。

所以第 4.5 节的准确定位是：

$$
\boxed{  
\text{线性高斯场景下的表示合理性检查，而不是完整闭环稳定性保证}  
}  
$$
---

# 二十九、本节的完整逻辑关系

第 3–4 节可以压缩成下面的结构。

首先，Diffusion Policy 需要实现：


$$
\epsilon_\theta  
(\mathbf O_t,\mathbf A_t^k,k).  
$$
CNN 版本使用：

$$
\text{时间卷积}  
+  
\text{FiLM 条件化},  
$$
优点是稳定、容易调参，但可能对快速动作变化过度平滑。

Transformer 版本使用：
$$
\text{动作 token self-attention}  
+  
\text{观测 cross-attention},  
$$
更适合复杂、快速变化的动作，但训练更敏感。

视觉部分使用：
$$
\text{ResNet-18}  
+  
\text{Spatial Softmax}  
+  
\text{GroupNorm},  
$$
分别负责提取图像特征、保留空间位置、降低小 batch 和 EMA 带来的归一化问题。

扩散过程使用：
$$
\text{平方余弦噪声调度}  
$$

在不同 SNR 尺度上学习动作分布，再使用：

$$
\text{DDIM}  
$$

减少真实控制中的推理步数。

这些设计最终使模型能够联合建模
$$
p(\mathbf A_t\mid\mathbf O_t),  
$$
并获得：
$$
\text{多模态表达}  
+  
\text{时间一致性}  
+  
\text{位置控制协同}  
+  
\text{相对稳定训练}.  
$$
在最简单的线性反馈系统中，其最优去噪器满足：
$$
\epsilon_\theta^*(s,a,k)
=
\frac{a+Ks}{\sigma_k},  
$$
反向去噪的唯一固定点是：
$$
a=-Ks.  
$$
多步动作预测则要求模型隐式编码：
$$
(A-BK)^j,  
$$
说明动作序列策略必须具备一定的闭环动力学预测能力。

因此，这几节最重要的结论不是某一个网络结构，而是：

$$
\boxed{  
\text{Diffusion Policy 是“条件概率建模、时间序列建模、视觉空间表征和滚动闭环控制”的联合设计。}  
}  
$$