首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么之Classifier-free diffusion guidance

解决扩散模型去噪过程中,需要分类器去指导模型朝着条件生成,同时保持模型生成的多样性

1【为什么需要分类器】扩散模型(Diffusion Models)是一类生成模型,它们的基本思想是通过逐步加入噪声(扩散过程)来破坏数据(比如图像),然后再通过逆向过程去除噪声,从而生成新数据。换句话说,扩散模型是通过将数据“破坏”成噪声,并学习如何从噪声恢复出真实的样本。在没有任何条件的情况下,扩散模型通常会生成多样化的、无特定指向的图像。例如,你可以让模型生成一个随机的图像,但这个图像可能没有特别明确的内容或结构。因此需要一个分类器指导模型朝着条件去生成内容,例如某种特定条件(比如类别、风格等)。

2【传统分类器怎么指导模型生成的】传统的方式是通过训练一个分类器(比如神经网络)来识别特定类别,然后在生成过程中使用这个分类器的输出作为指导。即在每一步生成过程中,分类器会预测当前图像的类别。如果分类器认为生成的图像更像“狗”而不是“猫”,那么生成模型就会根据分类器的反馈调整图像,朝着“猫”的方向生成,但是这带来两个问题,分类器需要单独训练,增加了计算成本,分类器本身可能会限制生成图像的多样性和创意。

3【Classifier-free guidance怎么指导模型生成的】利用模型本身进行条件引导,不需要外部分类器。具体来说,它通过修改损失函数,利用“无条件”和“有条件”两个生成过程的加权差异来引导生成。这样,生成过程既保留了生成多样性,又能确保生成图像符合给定条件。这种加权方法允许模型在不依赖分类器的情况下,通过条件信息来控制生成内容。监督信号是添加的噪声

def compute_loss(model, x, t, condition, lambda_cf=0.5): # 无条件去噪损失 x_unconditional = model(x, t, condition=None) # 有条件去噪损失 x_conditional = model(x, t, condition=condition) # 计算损失:可以是L2损失或其他合适的损失函数 loss_unconditional = F.mse_loss(x_unconditional, x) loss_conditional = F.mse_loss(x_conditional, x) # classifier-free guidance:加权无条件和有条件的损失 loss = lambda_cf * loss_unconditional + (1 - lambda_cf) * loss_conditional return loss

4 【为什么 Classifier-free guidance 比 Classifier guidance 更好】

4.1. 避免了分类器的训练和复杂性

4.2. 更高的灵活性与泛化能力

Classifier guidance 依赖于一个好的分类器;

Classifier-free guidance 根据输入的条件信息自我学习如何生成符合条件的图像。潜力得到了最大化

4.3. 更高的多样性

classifier guidance 过度约束生成过程,减少生成图像的多样性;

classifier-free guidance 没有过多的外部约束,它能够探索更多样的输出空间,并在保留条件一致性的同时增加生成图像的多样性。

4.4. 更好的条件控制

classifier guidance 中,分类器对于类别判断还行,但是对于复杂的条件可能就无法反映其精细关系。

Classifier-free guidance 通过更直接的方式引导生成过程,生成器本身的损失函数就包含了条件信息,从而实现了更精细的控制。

知识点:文生图模型训练,样本训练对为文字描述+图像,中间去噪的gt为噪声,最终生成的结果是图像,classifier guidance 希望扩散模型在生成的时候,不仅仅去噪,同时朝着文字描述的条件生成,因此需要一个厉害的分类器实现这个条件的判断,让模型不要瞎生成内容。classifier-free guidance 则是希望不要单独整个分类器,直接在生成的时候,每一步有一个生成,分布是带条件的输入和不带条件的输入,让网络自己学会根据条件输入朝着目标图像生成,同时无条件输入确保多样性。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Og4SS0YiuwH4Rvpae29M8g2A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
首页
学习
活动
专区
圈层
工具
MCP广场