Georgeqi's Blog

Archives · 2022

Home

About

Archives

loading..
Diffusion

Diffusion学习4-效果和性能提升

下述效果的具体代码见: qzq2514/Diffusion 效果提升 这里简单实验和讨论了在训练DDPM过程中使用的损失函数(L1或L2损失),并且实验了Improved DDPM 中提到的Cosine Beta Schedule带来的效果提升。 Cosine Beta Schedule 首先回顾下DDPM在前向过程中的一个重要公式-利用重采样技巧从直接得到,即Diffusion学习2-理论推导中的公式(3): 而且在原DDPM论文中使用的线性Beta采样,即: torch.linspace(start=0.0001, end=0.02, steps=100) Improved DDPM则进一步分析了这种Beta设计的缺点,取出论文中的图3和图5: Linear和Cosine的Beta方式对..

Read more
loading..
Diffusion

Diffusion学习3-代码实践

先放一张在人脸数据集上训练好后去噪的可视化过程 DDPM可视化去噪 各数据集参数配置及效果 训练: CUDA_VISIBLE_DEVICES=0 python train_solver.py --data_name "Flower102" 在config.yaml中各个数据集使用默认的Training Setting,每个数据集特有的配置见config.yaml下的Train_Data. 生成效果 生成效果如下: 数据集 去噪过程可视化 最终去噪效果 插值 Mnist Fashion_Mnist Cifar10 Flower102 StyleGAN2人脸 上述训练数据集和已经训练好的模型放在这里. 去噪过程可视化中,如果在..

Read more
loading..
Diffusion

Diffusion学习2-理论推导

概述 生成模型总览(原图来自lilianweng.blog) Diffusion属于生成模型的一种,相比较于GAN等其他生成模型,Diffusion模型最大的不同之处就在于其latent code是和原输入图相同尺寸的。Diffusion模型其实也可以看成是一个隐变量模型,并且与VAE,GAN的单隐变量不同,其可以看成存在多个隐变量(即加噪过程中的每个加噪结果都可以看成一个隐变量)。Diffusion模型总体包括前向加噪和逆向去噪两个过程: 前向过程-加噪扩散:对给定的真实图像不断添加高斯噪声,经过中间状态最终变成纯高斯噪声 逆向过程-去噪生成:从完全的纯噪声不断去噪,经过中间状态最终变成其对应的真实图像 上面两个过程示意图可以表示如下: Diffusion的前向和逆向过程(原图来自Ho et..

Read more
loading..
Diffusion

Diffusion学习1-预备知识

Diffusion模型打响了AIGC的第一枪,我之前一直是做GAN这一块的图像生成,但是奈何Diffuison模型效果好的离谱,也趁着空闲时间抱着学习的态度看看到底是他是靠着什么"吊打"GAN的,但是在推Diffusion公式的时候,牵扯到很多比较细碎的小知识点,有一些因为不常用也都忘记了,这里正好补充在这里,方便后续快速查询。 关于Diffusion相关的论文推导后面会单独开一个新的文章进行介绍,如果有时间和精力应该还会补充代码的实践~ 马尔科夫链 总体思想: 过去的所有信息都被保存在了现在的状态中,只使用现在状态就能预测到之后的状态,换句话说就是某个时刻的状态转移概率只依赖于它的前一个状态。 公式化表达: 举例: 股市涨跌:当前股市的涨、跌、平的状态概率分别为[0.3,0.4,0.3],且转移概率矩..

Read more