正向扩散:
x t = α ˉ x 0 + 1 − α ˉ t ε x_t=\sqrt{\bar{\alpha}}x_0+\sqrt{1-\bar{\alpha}_t}\varepsilon xt=αˉ x0+1−αˉt ε
逆向扩散:计算太复杂,练习网络来模仿
练习过程:为每个图像随机选择时间步长 t ,将高斯噪声应用于图像,将时间步长转换为嵌入向量。
练习步骤:随机选择一个时间步长编码,通过扩散公式向图像中添加噪声,将添加噪声后的图片输入,练习U-Net,比较预测的噪声和实际的差距,重复步骤。
采样
采样就是把噪声图像还原。
步骤:
采样一个高斯噪声,T确定。
利用练习的 U-Net 预测图像的噪声,利用如下公式一步一步推导出原图像:
x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ε θ ( x t , t ) ) + β t ε x_{t-1}=\frac{1}{\sqrt{\alpha _t}}\left( x_t-\frac{1-\alpha _t}{\sqrt{1-\bar{\alpha}_t}}\varepsilon _{\theta}\left( x_t,t \right) \right) +\sqrt{\beta _t}\varepsilon xt−1=αt 1(xt−1−αˉt 1−αtεθ(xt,t))+βt ε
计算相似性
S i m i = Q u e r y i ⋅ K e y i Sim_i=Query_i\cdot Key_i Simi=Queryi⋅Keyi
计算 a i a_i ai
a i = s o f t m a x ( S i m i ) = e S i m i ∑ j = 1 L x e S i m j a_i=softmax(Sim_i)=\frac{e^{Sim_i}}{\sum_{j=1}^{L_x}{e^{Sim_j}}} ai=softmax(Simi)=∑j=1LxeSimjeSimi
计算 A t t e n t i o n Attention Attention
A t t e n t i o n = ∑ i = 1 L x a i V a l u e i ( K e y i = V a l u e i = h i ) Attention=\sum_{i=1}^{L_x}a_iValue_i (Key_i=Value_i=h_i) Attention=i=1∑LxaiValuei(Keyi=Valuei=hi)
h i h_i hi是Encoder里面的隐含层。