56 lines
1.7 KiB
Markdown
56 lines
1.7 KiB
Markdown
---
|
||
title: "Self-Conditioning"
|
||
created: 2026-05-13
|
||
updated: 2026-05-13
|
||
type: concept
|
||
tags: [diffusion, conditioning, iterative-generation]
|
||
sources:
|
||
- https://arxiv.org/abs/2605.10938
|
||
---
|
||
|
||
# Self-Conditioning
|
||
|
||
Self-conditioning 是一种不需要外部条件信号的扩散模型条件化技术:将模型自身的**中间预测**作为下一步的条件输入。
|
||
|
||
## 机制
|
||
|
||
### 训练
|
||
|
||
以 50% 概率执行双次前向 pass:
|
||
1. **第一次 pass**:`x̂' = net_θ(z_t, ∅, t)` — 无条件的初步预测
|
||
2. **第二次 pass**:`x̂ = net_θ(z_t | x̂', t)` — 以 x̂' 为条件
|
||
|
||
另 50% 概率执行标准无条件前向 pass:`x̂ = net_θ(z_t, ∅, t)`。
|
||
|
||
在 ELF 中,条件通过 concatenation `[z_t, x̂']` 注入网络。
|
||
|
||
### 推理
|
||
|
||
推理时无需额外前向 pass:每一步的条件来自**上一步的预测**,形成自回归式的迭代细化:
|
||
|
||
```
|
||
step 0: z_0 ~ N(0,I), condition = 0
|
||
step i: x̂_i = net(z_i | x̂_{i-1}, t_i), z_{i+1} = z_i + dt·v̂_i
|
||
```
|
||
|
||
## 在 ELF 中的角色
|
||
|
||
Self-conditioning 为 [[classifier-free-guidance-language|CFG]] 提供条件信号 c = x̂':
|
||
|
||
```
|
||
v_cfg = ω · v(z_t | x̂') + (1-ω) · v(z_t | ∅)
|
||
```
|
||
|
||
这使得 ELF 可以在无条件生成任务中(无 class label / prompt)使用 CFG。
|
||
|
||
## 与自回归的区别
|
||
|
||
- **自回归**:条件信号是之前生成的 token
|
||
- **Self-conditioning**:条件信号是之前时间步对**完整序列**的预测嵌入——提供了全局上下文信息
|
||
|
||
## 相关概念
|
||
|
||
- [[classifier-free-guidance-language]] — 使用 self-conditioning 作为条件信号
|
||
- [[embedded-language-flows]] — 使用此技术的模型
|
||
- [[x-prediction-parameterization]] — self-conditioning 预测的是 x̂(干净嵌入)
|