李宏毅-2023春机器学习 ML2023 SPRING-学习笔记:4/7 Diffusion Model 原理剖析(optional)

  • 基本概念
    在这里插入图片描述

  • 与VAE比较
    在这里插入图片描述

  • Diffusion Model算法
    在这里插入图片描述

详细说明每行的意思
Training
1:循环执行2-5
2:sample一张干净的图片(一般用x0表示一张干净的图,就是资料库里的图
3:从1到T中取一个整数作为t
4:从平均值(mean)=0,方差(variance)=1的normal distribution中sample出ε,大小与image一致,是一张全是噪音的图片
5:红框:x0与ε做梯度下降(其中weight是事先定好的从α1到αT),得到带有噪音的图片(α越大得到的图片带有的噪音占比越大);εθ(…):预测生成的噪音图片;ε:目标噪音;ε-εθ(…):目标与预测之间的差距
在这里插入图片描述
第5行式子详细展开
在这里插入图片描述
真实Training的过程与之前想象的过程不太一样
在这里插入图片描述
为什么不一样可以看下一节的数学推导(数学警告!!!),不知道也不影响,只是要知道真实训练是什么样的。
Sampling:
1:先从normal distribution中sample一张全是噪音的图像xT
2:循环T次,denoise
3:从normal distribution中sample一张噪音图像z
4:带入计算得到下一次循环的图像xt-1;εθ(…):预测生成的噪音图片;xt:上一张图像
Q:为什么还要加上σtz这一项?
A:下一节详细说明
在这里插入图片描述
第4行式子详细展开
在这里插入图片描述

  • 影像生成模型本质上的共同目标:从distribution中sample一个向量,输入神经网络,输出图像x,无数x构成一个生成图像的分布,而我们的目标就是找一个分布,越接近真实图像分布的越好
    在这里插入图片描述
    同理由文字生成图像
    在这里插入图片描述
    文字只是相当于加入了一个条件限制(condition)

Q:这么衡量真实的与寻找的distribution之间的相似度呢?
A:最大似然估计Maximum Likelihood Estimation
在这里插入图片描述
θ*的详细计算(数学警告!)
在这里插入图片描述
补充:
倒数第二行增加了与θ无关的一项,为了能将式子合并;
kl divergence:KL散度,用来衡量两个概率分布之间的差异,KL越大,分布差异越大,可以理解为最大似然估计=最小KL散度(Maximum Likelihood=Minimize KL Divergence)

先看一下VAE是怎么计算Pθ(x)的
(我有一篇写过VAE,请见:https://blog.csdn.net/Transfattyacids/article/details/130473587)
在这里插入图片描述
在这里插入图片描述

  • DDPM(Denoising Diffusion Probabilistic Models)的计算
    在这里插入图片描述
    同理可得DDPM的下界
    在这里插入图片描述
    现在开始对演算公式进行详细说明
    下图为前向扩散的示意图
    在这里插入图片描述
    在这里插入图片描述
    即,下一个生成图像=高斯分布(随机变量,均值,方差)
    其中β是一个已经设定好的超参数序列,从1到T,逐渐增大(DDPM中,β1=0.0004,βT=0.02)

我们会发现,噪声只由β序列和xt-1所决定(固定的而非可学习的过程),且生成xt-1时只依赖于xt,可以得出在添加噪声的过程中,是一个马尔科夫链过程,进而得出在计算xt时不需要逐步计算至xt,只需知道x0和β序列即可得出xt(下图中两次生成的噪音是相互独立的:Ind.)
在这里插入图片描述

红框内两个噪音可以合并为一个
在这里插入图片描述

以此类推,从x0到xt是可以通过一次sample,一步到位的
在这里插入图片描述

我们的目标是求lower bound的最大值
在这里插入图片描述

对其进行变换,附计算过程(看看就好)
在这里插入图片描述
论文地址:https://arxiv.org/pdf/2208.11970.pdf

最后得到真正的lower bound
在这里插入图片描述

共有3项,其中与神经网络相关的有第1和3项(第1项计算过程类似3),所以目标转为maximum第3项

Q:蓝框中的式子怎么计算?
在这里插入图片描述

我们只知道前向传播的计算,即下述3项的计算
在这里插入图片描述

q(xt-1|xt,x0)的含义:已知x0和xt(中间过程不知道),求xt-1
通过上述3项得出q(xt-1|xt,x0)
在这里插入图片描述

得出式子
在这里插入图片描述

里面的3个q(…)的distribution都是已知的,开始进行计算(数学警告!带入硬推)
在这里插入图片描述

论文地址:https://arxiv.org/pdf/2208.11970.pdf

可得xt-1的Gaussian distribution的mean和variance
在这里插入图片描述

接下来计算KL散度(红框内容)
在这里插入图片描述

可以带入公式,也可以简化计算(目标:求KL散度的最小值)
思想:KL越小两个分布越接近,其中一个分布是固定的,另一个可以改变其mean值(variance不变),使两个分别越接近越好
在这里插入图片描述

所以我们就只需要训练Denoise Model,让两个distribution越接近越好
在这里插入图片描述

具体步骤:
Sample出x0,通过公式计算出xt
在这里插入图片描述

将xt与t输入Denoise,输出xt-1的mean的预测值
在这里插入图片描述

对mean的式子进行推算整理(替换x0)
在这里插入图片描述

注意,在得到的式子中只有ε是需要通过神经网络来预测的(其他的参数都是已经定好的或是可以推算出来的)
同时,我们也可以看到,得到的式子与上一节论文中给出的推演算法是一样的(红框内容)
补充:
Q:为什么不预测β(α=1-β)
A:论文在一开始有说明,训练β并不会带来更好的结果

在这里插入图片描述

Q:增加σtz(加入variance)的目的?(为什么不直接取mean?)
在这里插入图片描述
A:(论文中没有给出很明确的解答,以下为李宏毅老师的猜测)增加σtz相当于增加随机性,这样会使denoise的效果好

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器学习(Machine Learning, ML)是一种应用人工智能(AI)领域的科学技术,它使得计算机系统能够从数据中自动学习和改进,而无需显式编程。在机器学习的过程中,算法会通过识别和挖掘数据中的模式来构建一个模型,这个模型可以用于做出预测、分类、聚类、回归以及其他复杂的数据驱动决策。 机器学习的主要类型包括监督学习、无监督学习和半监督学习。在监督学习中,算法根据已知标签的数据集进行训练,以便对未知数据进行预测,例如分类任务(判断邮件是否为垃圾邮件)或回归任务(预测房价)。无监督学习则是在没有标签的情况下,仅凭数据本身的特征发现其中隐藏的结构或模式,如聚类分析(将用户分组到不同的客户细分群体中)。半监督学习介于两者之间,它部分数据有标签,部分数据无标签。 机器学习算法涵盖众多方法,包括但不限于逻辑回归、决策树、随机森林、支持向量机、K近邻算法、神经网络以及深度学习技术等。随着计算能力的增强和大数据时代的到来,机器学习已经在诸多领域展现出强大的功能,如图像识别、语音识别、自然语言处理、推荐系统、金融风控、医疗诊断等。 此外,机器学习的发展与统计学习、逼近论、凸优化、概率论等诸多数学和计算机科学领域紧密相关,且不断地推动着新算法和理论框架的创新与发展。同时,现代机器学习尤其是深度学习模型的内部工作机制有时难以完全解释,因此常被称为“黑箱”决策过程,这也是当前研究中的一个重要挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值