• Diffusion Model


    一般生成影像的需要三个component:

    1. **Encoder:**对文字和图像做embedding
    2. **Generation Model:**Encoder的输入作为输出,然后输出作为中间结果
    3. **Decoder:**对中间结果做Decode

    Encoder:最常用的就是text encoder,其实就是NLP了,像gpt、bert等等(encoder对生成的图片质量影响很大)
    常用的encoder有CLIP(预训练模型),属于一对pair的text和image的向量相近,否则相反
    在这里插入图片描述

    Decoder:不需要标签数据,只需要原始图片即可
    Decoder根据中间产物进行训练
    ● 中间产物是小图片:我们就把原始图片缩小,然后组成一对pair丢给Decoder进行训练
    ● 中间产物是representation,我们做如下流程:
    image->encoder->representation->decoder->image(这个image和原始image距离越近越好)

    Diffusion Model运作流程(生成流程):

    1. 首先通过高斯噪音分布进行取样,得到一个完全噪音的图像表示
      在这里插入图片描述

    2. 通过denoise操作,较少噪音
      在这里插入图片描述

    3. 不断重复下去直到获得最终的图像

    Denoise操作并不是直接生成一张去噪后的图像,而是通过网络预测添加的噪音,然后再减去这个噪音
    在这里插入图片描述

    那么关键点就在于如何训练这个Noise Predicter了
    Noise Predicter训练过程:

    1. 从网络上得到图片,然后做diffusion process,这样我们就有了noise信息了
      在这里插入图片描述

    2. 我们利用( ϵ t , x t , t e x t , t \epsilon_{t}, x_{t}, text, t ϵt,xt,text,t )来进行训练
      在这里插入图片描述

    Diffusion Model的训练过程:
    在这里插入图片描述

    x 0 x_{0} x0是我们从世界图片样本 q ( x 0 ) q(x_{0}) q(x0)中抽样得到的图片;t也是1~T的一个数字; ϵ \epsilon ϵ是生成的高斯噪声,是我们要加在图片上的。
    我们训练的目标就是让我们预测的 ϵ 0 \epsilon_{0} ϵ0与实际 ϵ \epsilon ϵ更相近

    TODO:数学推导

  • 相关阅读:
    C#.NET ORM FreeSql 读取使用 US7ASCII 的 Oracle 数据库中文显示乱码问题
    【8.1】代码源 - 【第二大数字和】【石子游戏 III】【平衡二叉树】
    【含2023java面试题】分布式锁方案设计:防止取消订单误支付Bug
    学生请假管理系统
    SSM项目整合Redis
    谨防掉坑 Mysql where条件+order By + limit 导致慢查询
    科普一下MTU是什么,如何设置MTU
    NoSQL之Redis配置与优化(一)
    性能分析插件
    事务隔离级别
  • 原文地址:https://blog.csdn.net/wzy1414/article/details/132892906