20260514:增加新内容
This commit is contained in:
55
concepts/self-conditioning.md
Normal file
55
concepts/self-conditioning.md
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
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̂(干净嵌入)
|
||||
Reference in New Issue
Block a user