Files
myWiki/concepts/self-conditioning.md

56 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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̂干净嵌入