为什么时间步需要嵌入(Embedding)
在扩散模型中,时间步 t 是模型生成过程中的一个重要参数,代表了扩散过程所在的进展。对于每一个时间步 t ,模型需要知道当前扩散到了哪一步,去噪操作也是如此。但是我们不能简单地将 t 作为一个标量直接输入模型,而是需要通过Time Embedding(类似于Positional embeddings)进行嵌入处理,通过将 t 编码进网络中,更多的原因如下:
1、模型可能难以从这个单一的标量数值中提取足够的特征,而通过时间嵌入将 t 转换为一个高维向量,能够更好地捕捉不同时间步的特征,并让模型识别不同的扩散阶段。
2、在扩散模型中,不同的时间步有不同的噪声水平和恢复难度。例如,早期时间步的噪声较少,晚期时间步的噪声更多。模型需要通过时间步高维嵌入来捕捉这种变化,从而做出合适的去噪决策。
3、通过对时间步进行嵌入,模型能够在不同的时间步上学习到不同的特征表示,增强了模型的表达能力。它可以帮助模型了解扩散过程的当前阶段,并相应调整生成策略。
时间步嵌入方法为什么使用正余弦编码
1、周期性和连续性:
正弦和余弦函数具有周期性,可以很好地捕捉到时间步的顺序和周期关系。正余弦编码通过不同的频率为模型提供了不同的尺度信息,能够帮助模型区分相邻时间步和远离时间步的关系。
2、多尺度表示:
不同维度 ( i ) 对应不同频率的正弦和余弦函数。高频部分能够捕捉较短时间步之间的细微变化,低频部分则捕捉较大时间步上的全局变化。通过这样的设计,模型可以从多个尺度上理解时间步的信息。