扩散模型diffusion model

一 什么是扩散模型

1.1 现有生成模型

在这里插入图片描述

已经有大量的方法证明深度生成模型能够模拟人类的想象思维,生成人类难以分辨真伪的内容,主要方法如下:

1、GAN:用神经网络训练生成器和判别器

  • GAN 的主要思想:
    GAN 就是一个互搏的过程,要训练两个网络,一个是生成器,一个是判别器
    生成器就是给定一个随机噪声,生成一些东西,我们希望其能生成一个比较逼真的图片,把生成的图片和真实的图片给到判别器,让判别器来看哪些是真图片和假图片,就是 0/1 的判断
    通过两个网络互相学习,互相提高,最后能生成比较真实的图片
  • 缺点:
    可解释性较差:GAN 不是概率模型,是通过网络完成的,是隐式的,所以不知道它到底学到了什么,不知道其遵循了什么分布
    训练时不稳定:因为要同时训练两个网络,就有需要平衡的问题,训练不好的话容易模型坍塌
    多样性较差
  • 优点:
    GAN 的目标函数是用来以假乱真的,所以保真度和细节都非常好

2、AE、DAE、VAE、VQVAE:

  • Auto-Encoder (AE):
    给定输入 x,经过编码器 encoder 就能得到特征,特征维度会变小,然后在使用解码器,得到一个图像,训练的目标函数是希望解码器的输出能尽可能的重建输入,也正是因为是自己重建自己,所以是自编码器

  • Denoising Auto-Encoder (AE):先对原图输入进行扰乱,后续过程和 AE 一样,依然希望输入能够重建原始的未经过扰乱的输入,这个扰动很有用,会让训练出来的模型非常稳健,不容易过拟合。图片数据本来就是冗余的,所以添加一些扰动后,模型仍然能够学习到很好的特征。

  • AE 和 DAE 或者 MAE 其实都是为了学习中间那个 bottleneck 特征 z,学习好了后用于分类、检测等任务,并不是做生成的,其原因在于这里的 z 是专门用来重建的特征,并不是随机噪声,并不能用于采样来生成图像

  • 所以就有了 VAE,也就是变分自编码器,VAE 和 AE 是很不同的,虽然结构看起来很像,但很重要的区别是,中间不再是学习一个 bottleneck 的特征,而是学习了一个分布,假设分布是高斯分布,可以用均值和方差来描述,就是从 encoder 得到特征后,加一些 FC 层,来预测均值和方差,得到后用公式采样一个 z 出来,VAE 就可以用来做生成了,因为在训练好后,可以扔掉 encoder,这里的 z 就是能随机抽样出的样本,然后就能生成图片了
    VAE 这里生成的是一个分布,从贝叶斯角度来看,前面的过程是一个后验概率 p(z|x),就是给定 x 得到 z 的过程,学到的 z 就是一个先验分布,后面的过程是一个先验概率 p(x|z),就是给定 z 预测 x 的过程,其实就是最大似然,这里做的就是 maximize likelihood。
    VAE 因为是学习的概率分布,是从分布中抽样的,生成的图片的多样性比 GAN 好的多,后面还有一些 VQVAE 和 DALLE 1 都是在 VAE 的基础上做的。
    VAE 其实结构和扩散模型很像,且有较好的理论可解释性,但 Encoder 使用很大的步长来学习数据分布并进行加噪,Decoder 也使用很大的步长来去噪,导致学习的不够细致,很粗糙。

3.Flow-Based对概率密度函数的直接建模,这使得它们在数据生成和推断方面具有优势,并且在潜在空间中的操作更加直观。但是,它们可能在处理复杂数据分布时受限,因为需要设计适合数据分布的逆变换

  • 与其他生成模型原理区别:
    Flow-based模型:这种模型通过学习数据的概率密度函数来进行生成。它们学习了数据的分布,并利用这种分布来生成新的样本。
    VAE:变分自编码器利用潜在变量的分布来建模数据。它通过编码器将输入数据映射到潜在空间中,并通过解码器从潜在空间中的采样重建输入数据。
    GAN:生成对抗网络通过生成器生成假样本,同时使用鉴别器来区分真实和假的样本。生成器和鉴别器相互竞争,以提高生成器生成逼真样本的能力。

1.2 扩散模型

前向扩散:在输入 x0 上逐步加噪声,一共加 T 次,最终变成一个真正的噪声,各向同性正态分布
逆向去噪:从最终的 xT 逐步恢复原图的过程,使用的是共享参数的 U-Net 结构

  • 扩散模型发展历程:
    DDPM → improved DDPM → Diffusion beats GAN → GLIDE → DALLE2 → Imagen
  • 扩散模型的理论来源
    扩散模型背后的直觉来源于物理学:
    在物理学中,气体分子从高浓度区域扩散到低浓度区域
    这与由于噪声的干扰而导致的信息丢失是相似的
    通过引入噪声,然后尝试去噪来生成图像,模型每次在给定一些噪声输入的情况下学习生成新图像。
    扩散模型(Diffusion Model)起源于非均衡热动力学(non-equilibrium thermodynamics),是一类基于概率似然(likelihood)的生成模型。
  • 扩散模型的使用场景
    扩散模型可以用到哪些任务上:
    计算机视觉,语言模型,声音模型,AI for science
  • 扩散模型的应用场景:
    图文生成,视频生成,分子结构生成,AI 绘画,AI 制药,…
  • 扩散模型的基本结构
    扩散模型的工作原理:
    学习由于噪声引起的信息衰减,然后使用学习到的模式来生成图像
  • 扩散模型的结构:
    扩散模型定义了一个扩散步骤的马尔可夫链,慢慢地向数据中添加随机噪声,也就是熵增的过程,然后学习逆向扩散过程,从噪声中构建所需的数据样本
    前向扩散过程 q:为输入图像 x0 引入一系列的随机噪声,也就是对样本点分 T 步添加高斯噪声,随着噪声的引入, x0 最终会失去区分特性
    逆向恢复过程 p:从高斯先验出发,从有大量随机噪声的图中学习恢复原图
  • 扩散模型相比 GAN 或 VAE 的缺点:
    速度慢:扩散模型是基于马尔科夫过程来实现的,在训练和推理的时候都需要很多步骤
  • 当前对扩散模型的研究主要围绕三种主流的实现:
    去噪扩散概率模型(Denoising Diffusion Probabilistic Models / DDPMs)
    基于分数的生成模型(Score-based Generative Models / SGMs)
    随机微分方程(Stochastic Differential Equations / Score SDEs)
  • 随机微分方程(SDEs)
    SDEs是描述扩散模型中噪声添加过程的数学工具。就像是一个详细的步骤图,展示了噪声是如何随着时间逐步添加到数据中的。这个框架非常重要,因为它赋予了扩散模型处理不同类型数据和应用的灵活性,使它们能够为各种生成任务量身定制:
  • 分数生成模型(SGMs)
    该部分是模型学习理解和逆转噪声添加过程的地方。这个过程就像是让模型学会了一种特殊的逆向思维。举个简单的例子,如果一张图片被加了一堆乱七八糟的噪声,最后变得啥也看不清了,那我们怎么把它变回原来的样子呢?分数生成建模就是教模型怎么从这些乱七八糟的噪声中,一步步地把清晰的图像找回来。这就像是在一堆混乱中找到秩序,最后从一堆噪音里变出一张清晰的图片。这对于我们从一堆随机的噪声中创造出看起来真实的图像来说,是非常关键的。
  • 去噪扩散概率模型(DDPMs)
    去噪扩散概率模型(DDPMs)就像是数据的清洁专家。在训练的时候,它们就像是在观察一个过程:数据是怎么一步步被噪声弄脏的,然后它们学会了怎么一步步地把这些噪声清理掉,让数据恢复到原来的样子。这个过程就像是在玩一个猜谜游戏,用概率来猜在噪声出现之前,数据本来长什么样。这样的方法让模型不仅能把噪声去掉,还能让数据看起来和原来几乎一模一样,这对于那些需要精确数据重建的任务来说特别重要。
  • 当前最流行的扩散模型包括:
    在这里插入图片描述

二 扩散模型介绍

2.1 符号和定义

1、State:状态
State 是能够描述整个扩散模型过程的一系列数据:
初始状态:starting state x0
prior state:离散时为 xT ,连续时为 x 1
中间状态:intermediate state xt

2、Process 和 Transition Kernel
Forward/Diffusion 过程 F:将初始状态转换到有噪声的状态
Reverse/Denoised 过程 R:和前向过程方向相反,从有噪声的图像中逐步复原原图的过程
Transition Kernel:在上面的两个过程中,每两个 state 的变换都是通过 transition kernel 来实现的,

Ft 和 Rt 分别是 t时刻从状态 t-1 转换成状态 xt 的前向 transition kernel 和逆向 transition kernel
σt 是噪声尺度
最常用的 transition kernel 是 Markov kernel,因为其具有较好的任意性和可控性

2.2 前向过程

推导过程来自:https://zhuanlan.zhihu.com/p/624617160
加噪过程:不断地往输入数据中加入噪声,直到其就变成纯高斯噪声,每个时刻都要给图像叠加一部分高斯噪声。其中后一时刻是前一时刻增加噪声得到的。
在这里插入图片描述

重参数化的技巧:简单来说就是,如果想要从一个任意的均值μ方差σ^2的高斯分布中采样。可以首先从一个标准高斯分布(均值0,方差1)中进行采样得到ε,然后μ + σ·ε就等价于从任意高斯分布中进行采样的结果。

推导过程:
根据DDPM的到公式
根据重参数化,得到xt和xt-1的关系
根据推导,得出xt和x0的关系
在这里插入图片描述

2.3 后向过程

去噪过程:由一个纯高斯噪声出发,逐步地去除噪声,得到一个满足训练数据分布的图片。
在这里插入图片描述

推导过程:
第一步:根据P(A|B)=P(AB)/P(B)
第二步:巧妙的将后向过程全部变成了前向过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 训练与采样

训练:
首先每个迭代就是从数据集中取真实图像x0,并从均匀分布中采样一个时间步t,然后从标准高斯分布中采样得到噪声ε,并根据公式计算得到xt。接着将xt和t输入到模型让其输出去拟合预测噪声ε,并通过梯度下降更新模型,一直循环直到模型收敛。而采用的深度学习模型是类似UNet的结构

采样(生成):
模型训练好之后,在真实的推理阶段就必须从时间步T开始往前逐步生成图片,算法描述如下:
一开始先生成一个从标准高斯分布生成噪声,
然后每个时间步t,将上一步生成的图片xt输入模型模型预测出噪声。
接着从标准高斯分布中采样一个噪声,根据重参数化技巧,后验概率的均值和方差公式,计算得到xt-1,直到时间步1为止。

训练损失
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

49.乐理基础-拍号的类型-单拍子、复拍子

当前写的东西,如果只是想要看懂乐谱的话,它是没什么意义的,就像我们要把 0,1,2,3,4,5。。。称为自然数,1,2,3,4,5称为正整…

H5 云商城 file.php 文件上传致RCE漏洞复现

0x01 产品简介 H5 云商城是一个基于 H5 技术的电子商务平台,旨在为用户提供方便快捷的在线购物体验。多平台适配:H5 云商城采用 H5 技术开发,具有良好的跨平台适配性。无论是在电脑、手机还是平板等设备上,用户都可以通过网页浏览器访问和使用云商城,无需安装额外的应用程…

销量?模糊销量?精准销量?如何获取淘宝商品销量数据接口

淘宝爬虫商品销量数据采集通常涉及以下几个步骤: 1、确定采集目标:需要明确要采集的商品类别、筛选条件(如天猫、价格区间)、销量和金额等数据。例如,如果您想了解“小鱼零食”的销量和金额,您需要设定好价…

vueday1

1.作用&#xff1a;利用表达式进行插值&#xff0c;渲染到页面中 三元表达式、点语法、数组对应项&#xff0c;方法、点语法方法 1.使用的时候需要存在&#xff0c;需要在data里面声明&#xff0c;如果没有声明会报错 2.ifelse不能用 3.不能在标签属性中使用{{}}插值 <!DO…

【前端】打砖块游戏:实现细节介绍

打砖块游戏:实现细节介绍 在本文中,我将详细介绍如何使用HTML、CSS和JavaScript技术构建一个简单的打砖块游戏。我们将重点讨论游戏的三个核心技术方面:碰撞检测、画图和事件监听。 完整代码我放在:github可以直接拉取代码测试。 游戏概览 打砖块游戏中,玩家通过控制底…

静态住宅IP优缺点总结

在进行海外 IP 代理时&#xff0c;了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和&#xff0c;并提供选择建议&#xff0c;帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

涨点神器:即插即用特征融合模块!超低参数,性能依旧SOTA

在写论文时&#xff0c;一些通用性模块可以在不同的网络结构中重复使用&#xff0c;这简化了模型设计的过程&#xff0c;帮助我们加快了实验的迭代速度。 比如在视觉任务中&#xff0c;即插即用的特征融合模块可以无缝集成到现有网络中&#xff0c;以灵活、简单的方式提升神经…

7.STL中string的一些超常用函数 (附习题)

目录 1.find 2.atoi 3.to_string 4.getline 【leetcode 习题】 387.字符串中的第一个唯一字符 125. 验证回文串 1.find 1.查找第一次出现的目标字符串&#xff1a;说明&#xff1a;如果查找成功则输出查找到的第一个位置&#xff0c;否则返回-1&#xff1b; s1.find(s2…

宇宙(科普)

宇宙&#xff08;Universe&#xff09;在物理意义上被定义为所有的空间和时间&#xff08;统称为时空&#xff09;及其内涵&#xff0c;包括各种形式的所有能量&#xff0c;比如电磁辐射、普通物质、暗物质、暗能量等&#xff0c;其中普通物质包括行星、卫星、恒星、星系、星系…

【目标检测】YOLOv5|YOLOv8模型QT界面可视化部署

YOLO-Deploy-QT_Interface 最近笔者做了YOLO系列算法的部署工作,现做一个总结。主要工作是做了用于部署YOLOv5和YOLOv8的可视化QT界面,可实现图片、文件夹、视频、摄像头的ONNX与OpenVino部署,具体效果如下: 代码链接:https://github.com/Zency-Sun/YOLO-Deploy-QT_Inte…

Centos7 配置 DNS服务器

Centos 7 配置DNS服务器 环境描述&#xff1a; 一台服务器和一台用于测试的客户机 服务器IP&#xff1a;192.168.200.132 客户机IP&#xff1a;192.168.200.143 服务器配置 yum install bind bind-utils -y #安装软件包vim /etc/named.conf //编辑named主配置文件listen-on p…

【Linux】解析键盘组合键产生信号的完整过程:从硬件中断到信号发送

前言 每一个了解Linux的都知道这样一个知识&#xff0c;CtrlC组合键能够终止一个进程。 个人了解进程相关知识之后知道&#xff0c;一个进程被终止只会有有三种情况&#xff1a; 代码运行完毕&#xff0c;结果正确代码运行完毕&#xff0c;结果不正确代码运行异常&#xff…

huggingface 笔记:pipeline

1 介绍 pipeline() 是使用预训练模型进行推理的最简单和最快速的方式。可以针对不同模态的许多任务直接使用 pipeline() 2 举例&#xff1a;情感分析 2.1 创建pipeline实例 from transformers import pipelineclassifier pipeline("sentiment-analysis") #首先创…

SystemC学习使用记录

一、概述 对于复杂的片上系统&#xff0c;在进行RTL编码前&#xff0c;需进行深入的系统级仿真&#xff0c;以确认设计的体系结构是否恰当、总线是否能满足吞吐量和实现性要求以及存储器是否浪费&#xff0c;所进行的这些仿真要求在芯片的仿真模型上运行大量的软件&#xff0c…

跨境必看|TikTok账号运营的八大秘籍

国内的传统生意都是可以在抖音上做&#xff0c;那么也可以在TikTok 上重新做一遍。那该如何才能把握住这片巨大的蓝海&#xff0c;TikTok 账号的运营就成为了主要的关键了&#xff0c;对于TikTok账号运营的八大秘籍&#xff0c;大家一起看看是如何做的&#xff1f; 一、固定节…

为什么需要使用SOCKS5代理?

SOCKS代表Socket Secure&#xff0c;是一种网络协议&#xff0c;能够在网络上进行数据传输。SOCKS5是SOCKS协议的第五个版本&#xff0c;它提供了更加安全和灵活的数据传输方式&#xff0c;因此在网络安全和隐私保护方面被广泛应用。在我们的日常生活中&#xff0c;为什么需要使…

VMware虚拟机安装详细教程

VMware下载安装好后&#xff0c;下载好我们要安装的操作系统的镜像文件后&#xff0c;此处安装的为centos7版本&#xff0c;就可以开始安装了。 1点击下一步 image 2、勾选【我接受条件款协议中的条款】&#xff0c;然后点击【下一步】。 image 3、取消勾选&#xff0c;然后点…

富在术数,不在劳身 财富的积累更多依赖于智慧和策略,而不是单纯的体力劳动 GPT-4o免费用

"富在术数&#xff0c;不在劳身"这句话的意思是财富的积累更多依赖于智慧和策略&#xff0c;而不是单纯的体力劳动。这句话强调了智慧和技巧在获取财富过程中的重要性&#xff0c;提示人们在追求财富时&#xff0c;应注重策略和方法的运用&#xff0c;而不仅仅依靠辛…

prompt工程策略(三:使用 LLM 防护围栏创建系统提示)

原文&#xff1a;我是如何赢得GPT-4提示工程大赛冠军的 原文的原文&#xff1a; How I Won Singapore’s GPT-4 Prompt Engineering Competition &#xff01;&#xff01;本内容仅适用于具有 System Prompt&#xff08;系统提示&#xff09;功能的 LLM。具有这一功能的最著名 …

工业无风扇计算机的优点

无风扇计算机往往采用紧凑且密封的外形&#xff0c;使其坚固耐用&#xff0c;使其能够在需要现场工程师进行维护之前承受恶劣的环境数年。机载移动部件较少或没有移动部件会降低组件无法按预期运行的可能性&#xff0c;或者更糟糕的是发生故障和损坏。采用工业组件和较低的散热…