• 【深度学习】UNIT-DDPM核心讲解



    参考文章:
    https://blog.csdn.net/ssshyeong/article/details/127210086
    这篇文章对整个文章 UNIT-DDPM: UNpaired Image Translation with Denoising Diffusion Probabilistic Models进行了从头到尾的讲解,可以看一下。在此写一下自己的理解。

    大致介绍:

    这篇论文提出了一种新的图像翻译方法,即无配对的图像翻译,基于Denoising Diffusion Probabilistic Models(DDPM)。传统的无配对图像翻译方法通常使用对抗生成网络(GAN)或变分自编码器(VAE)来模拟两种语言之间的映射,但这些方法通常需要大量配对的数据来训练模型。而本文提出的方法则不需要配对的数据,因为它使用DDPM来学习两种语言之间的映射。DDPM是一种基于概率模型的去噪方法,可以通过对噪声进行多次迭代来生成清晰图像。本文将DDPM应用于无配对图像翻译,通过对两种语言图片进行多次迭代训练,可以获得较好的翻译效果。

    具体来说,本文的方法分为两个步骤:训练阶段和生成阶段。在训练阶段,将DDPM应用于两种语言的图片数据集上,训练出两个DDPM模型。在生成阶段,通过交替对两个DDPM模型进行迭代,将一个语言的图片转换成另一个语言的图片。

    本文的方法相对于传统方法的优点是不需要配对的数据,而且生成的图片具有一定的多样性和清晰度。但缺点是训练时间相对较长,因为DDPM模型需要进行多次迭代训练。

    总之,本文提出了一种新的无配对图像翻译方法,通过应用DDPM模型实现了两种语言之间的图片转换,为跨语言翻译和相关领域的研究提供了新思路。

    图解:
    在这里插入图片描述
    可以看到,本文使用两个扩散过程(源域和目标域的扩散),以及两个转换函数(将源域转到目标域和将目标域转到源域),也就是图像翻译。
    为了使两个域之间能够转换,本文将最p过程进行了修改,使其带有条件。

    扩散损失:

    首先训练扩散过程中的参数:
    在这里插入图片描述
    依次排列括号里面的公式:A在t时刻的扩散图像;首先将A域图像转到B上,然后使用A域的扩散得到扩散图像,时刻t (先翻译,后扩散)
    B在t时刻的扩散图像;首先将B域图像转到A上,然后使用B域的扩散得到扩散图像;时刻t。

    转换损失:

    接下来训练翻译函数,固定A和B的扩散参数:
    在这里插入图片描述
    依次罗列括号里面的公式:
    先将B域图像转到A域,然后得到t时刻的扩散图像(A域上);B域图像在t时刻的扩散图像(B域上);时刻t。
    B域图像在t时刻的扩散图像(B域上);首先将B域图像转到A上,然后使用B域的扩散得到扩散图像(B域上);时刻t。
    后面一个类似。

    循环一致性损失:

    在这里插入图片描述
    最终的损失函数:
    在这里插入图片描述

    推理过程:

    在这里插入图片描述
    之后使用DDPM里面的公式对其一步一步推导即可。
    在这里插入图片描述

    优缺点:

    模型图:在这里插入图片描述
    扩散模型采样步骤很费时间,可以使用DDIM等方法进行缩减;还可以通过其他trick进行改进生成质量(如注意力机制或者NL等方法)。

  • 相关阅读:
    前端面试合集(二)
    命令行编译C#报错
    HPM6750系列--第二篇 搭建Ubuntu开发环境
    C语言图钉画表白程序,给自己的偶像制作一个吧
    kubernetes-Pod
    【随机过程】马克可夫链-关于简单随机游走的状态判定
    滴滴笔试——算式转移
    less和sass的区别[简洁易懂]
    【NOI2020】制作菜品(构造,结论,背包DP,bitset优化)
    SpringCloud的服务发现框架 — Eureka入门
  • 原文地址:https://blog.csdn.net/aaatomaaa/article/details/133636510