扩散模型(Diffusion Model)

         扩散模型(diffusion model)是一种运用了物理热力学扩散思想的生成模型。扩散模型有很多不同的变形,本文主要介绍最知名的去噪扩散概率模型(Denoising Diffusion Probabilistic Model,DDPM)。如今比较成功的用扩散模型做的图像生成的系统,比如DALL-E、谷歌的Imagen、Stable Diffusion 基本上都是用类似的方法来作为其扩散模型。

        接下来介绍下扩散模型运作方法。我们来看它是怎么生成一张图片的。如图1所示,在 生成图片的第一步,要去采样一个都是噪声的图片,就是从高斯分布里面采样出一个向量。这 个向量里面有的数字,这个向量的维度跟要生成的图片大小是一模一样的。假设要生成一张 256×256 的图片,从正态分布采样出来的向量的维度就要是256×256,就把采样到的256×256 的向量排成一张图片。接下来就有一个去噪的模块,去噪的网络。输入一张都是噪声的图,输 出它就会把噪声滤掉一点,就可能看到有一个猫的形状,再做去噪,猫的形状就逐渐出来。去 噪越做越多,期待最终就看到一张清晰的图片,去噪的次数是事先定好的。通常会给每一个 去噪的步骤一个编号,产生最终图片的那个编号比较小。一开始从完全都是噪声的输入开始, 做去噪的编号比较大,所以这边就从1999一直排到2,排到1,这个从噪声到图片的步骤称 为逆过程(reverse process)。在概念上,其实就像是米开朗基罗说的:“塑像就在石头里,我只 是把不需要的部分去掉”,扩散模型做的事情是相同的。

图1 扩散模型生成图片的过程

        接下来呢就要讲这个去噪的模型。这边是把同一个去噪的模型反复进行使用,但是因为 在这边每一个状况,输入的图片差异非常大,在这个状况输入的东西就是一个纯噪声。在这 个状况输入的东西噪声非常小,它已经非常接近完整的图。所以如果是同一个模型,它可能 不一定能够真的做得很好。所以这个去噪的模型,除了“吃”要被去噪的那张图片以外,还会多 “吃”一个输入,该输入代表现在噪声严重的程度,如图2 所示。1000 代表刚开始去噪的时 候,这个时候噪声的严重程度很大。1代表说现在去噪的步骤快结束了,这个是最后一步去噪 的步骤。显然噪声很小,这个去噪的模型希望它可以根据我们现在输入在第几个步骤的信息 做出不同的回应。这个是去噪的模型,所以确实只有用一个去噪的模型。但是这个去噪的模型 会“吃”一个额外的数字,告诉它说现在是在去噪的哪一个步骤。

图2 扩散模型进行去噪时需要结合具体步数

        去噪的模型里面实际内部做的事情是什么呢? 如图3 所示,在去噪的模组里面有一个 噪声预测器(noise predictor),其会预测图片里面的噪声。这个噪声预测器就“吃”这个要被 去噪的图片,跟“吃”一个噪声现在严重的程度,也就是我们现在进行到去噪的第几个步骤的代 号,就输出一张噪声的图。它就是预测说在这张图片里面噪声应该长什么样子,再把它输出的噪声去剪掉这个要被去噪的图片,就产生去噪以后的结果,所以这边去噪的模型并不是输入 一张有噪声的图片。输出就直接是去噪后的图片,它其实是产生一个这个输入的图片的噪声, 再把噪声扣掉输入的图片来达到去噪的效果。

图3 扩散模型去噪模块内部结构

        接下来的问题就是怎么训练这个噪声预测器呢?一个去噪的模型是根据一个噪声的图片 和去噪的步数的ID,产生去噪的结果。去噪的模型里面是一个噪声预测器,它是要“吃”这张 图片“吃”一个 ID,产生一个预测出来的噪声。但是要产生出一个预测出来的噪声,需要有标 准答案。在训练网络的时候,要有成对的数据才能够训练。需要告诉噪声预测器这张图片里面 的噪声长什么样子,它才能够学习怎么把噪声输出来。如何制造出这样子的数据呢。噪声预测 器的训练数据是人为创造的,怎么创造呢?创造方法如图4所示,从数据集里面拿一张图片 出来,随机从高斯分布里面采样一组噪声出来加上去,产生有点噪声的图像,能再采样一次 再得到更噪声的图片,以此类推,最后整张图片就看不出来原来是什么东西。加噪音的过程 称为前向过程,也称为扩散过程。做完这个扩散过程以后,就有噪声预测器的训练数据了。对 噪声预测器,其训练数据就是这一张加完噪声的图片跟现在是第几次加噪声,是网络的输入, 而加入的这个噪声就是网络应该要预测的输出,就是网络输出的标准答案。

图4 扩散模型的前向过程

        所以在做完这个扩散过程以后,就有训练数据了。噪声预测器看到这张图,看到第二个步骤,输入2这个数字,要输出是什么,标准答案就是一个长这个样子的噪声。接下来就跟 训练一般的网络一样训练下去就结束了。但是我们要的不只是生图而已。刚才只是从一个噪 声里面生出图,还没有考虑文字。如果要训练一个图像生成的模型,他是“吃”文字产生图片, 如图5 所示。其实还是需要图片跟文字成对的数据。ImageNet中每一张图片有一个类别的 标记,还不是那个图片的描述,不是像“一只在猫在雪里”这样图片的描述,它只是每一张图有 一个标记,它有100 万张图片。Midjourney、Stable Diffusion 或 DALL-E 的数据往往来自 于LAION,LAION 有 58.5 亿张的图片,所以难怪今天这一些模型可以产生这么好的结果, LAION 有一个搜索的Demo的平台,里面内容很全面,比如猫的图片,它不是只有猫的图片 跟英文文字的对应,还有跟中文、英文的对应。所以之所以图像生成模型不是只看得懂英文、 中文它大多数都看得懂,是因为它的训练数据里面也有中文跟其他的语言,里面有很多名人 的照片,随便一找就一大堆。因此Midjourney能画得出很多名人,是因为他就是知道名人的 模样。所以这个是需要准备的训练数据。有了这个文字跟图像成对的数据以后。

图 5 文生图示例

        如图6 所示,把文字加到去噪的模组就结束了。所以去噪的模组不是只看输入的图片 做去噪,它是根据输入的图片加上一段文字的描述去把噪声拿掉,所以在每一个步骤去噪的 模组都会有一个额外的输入。这个额外的输入就是,要它根据这段文字的描述产生什么样的 图片。这个去噪模块里面的噪声预测器要怎么改呢?直接把这段文字给噪声预测器就结束了, 要让噪声预测器多一个额外的输入也就是这段文字,如图7所示,就结束了。

图6  文生图的去噪过程

图7 去噪模块加文字描述

        训练的部分要怎么改呢,如图8所示,每一张图片都有一段文字,所以先把这张图片做 完扩散过程以后,在训练的时候,不只要给噪声预测器加入噪声后的图片,还有现在步骤的 ID,多给一个就是文字的输入。噪声预测器会根据这3样东西产生适当的噪声,产生要去消 掉的噪声,产生这个标准答案。

图 8 加入文字描述的前向过程

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

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

相关文章

Notepad++回车不自动补全

问题 使用Notepad时,按回车经常自动补全,但我们希望回车进行换行,而不是自动补全,而且自动补全使用Tab进行补全足够了。下文介绍设置方法。 设置方法 打开Notepad,进入设置 - 首选项 - 自动完成,在插入选…

Windows上MSYS2的安装和使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载二、安装三、使用1.打开命令行2.搜索软件3.安装软件4.卸载软件5.更新环境6.其他四、MSYS2和Cygwin的差别总结前言 MSYS2这个工具我是越用越喜欢,很多东西放在Linux上如鱼得水但是放在…

禁止文件外发 | 如何禁止员工外发文件?严守企业机密,禁止员工外发敏感文件!

近期,我们注意到一些敏感项目资料有外泄的风险,这对公司的核心竞争力构成了严重威胁! 我们必须立即采取行动,严守企业机密,确保每一份文件都安全无虞。 从今天起,我们要全面升级信息安全措施,…

2024世界机器人大会盛大开幕,卓翼飞思携无人智能领域产品集中亮相 !

开放创新 聚享未来!万众瞩目的2024世界机器人大会暨博览会于8月21日在北京亦创国际会展中心盛大开幕。大会聚焦机器人技术与产业前沿趋势,展示机器人创新应用赋能千行百业的多元场景,全球顶尖的机器人科学家、行业领袖、创新精英汇聚一堂&…

React学习day04-useEffect、自定义Hook函数

11、useEffect(一个React Hook函数) (1)作用:用于在React组件中创建不是由事件引起而是由渲染本身引起的操作,比如发送AJAX请求,更改DOM等(即:视图渲染完后会触发一些事…

前端开发,太难啦!

声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/#1 《黑神话:悟空》作为一款国产3A游戏,其前端开发的游戏界面和交互设计复杂度极高,这要求开发团队与设计师之间进行紧密合作&#xf…

嵌入式Qt移植之tslib部署到Busybox根文件-思维导图-学习笔记-基于正点原子阿尔法开发板

嵌入式Qt移植之tslib部署到Busybox根文件 烧写Busybox根文件系统到开发板 准备好一个固化系统 以TF卡为例子 TF 卡用读卡器插到 Ubuntu 虚拟机 会出现两个分区 boot分区是存放内核和设备树这些 rootfs分区是存放文件系统的 eMMC、NADA FLASH或者其他方式挂载也可&#xf…

中国严肃游戏开发的最佳实践

严肃游戏产业在中国迅速发展,将娱乐与教育、培训和宣传活动融为一体。旨在实现特定学习成果或行为改变的严肃游戏在从企业培训到医疗保健和教育的各个领域越来越受欢迎。然而,为中国市场开发成功的严肃游戏需要深入了解当地文化、用户偏好和技术趋势。以…

[000-01-001].第04节:Shell中的内置命令

5、Shell内置命令:alias设置别名 目标 1.理解内置命令的含义 2.能够使用alias内置命令进行给命令定义别名 内置命令介绍 Shell 内置命令,就是由 Bash Shell 自身提供的命令,而不是文件系统中的可执行脚本文件。 使用type 来确定一个命令…

恶意代码防范技术原理

恶意代码概述 定义与分类 恶意代码:指违背目标安全策略的程序代码,会造成目标系统信息泄露、资源滥用,破坏系统的完整性及可用性。 传播途径:经过存储介质或网络进行传播,在计算机系统之间传播,未经授权…

【Word与WPS如何冻结首行首列及窗口】

1.Word如何冻结首行首列及窗口 microsoft word 中锁定表头是一项实用的功能,可让您在滚动文档时保持表头可见。这在处理大型文档或包含大量数据的表格时非常有用。php小编柚子将为您详细介绍 word 锁定表头位置的方法,帮助您轻松掌握这项实用技巧。 1.…

认知杂谈43

今天分享 有人说的一段争议性的话 I I 年轻:潜力如海,挑战重重,绝非轻易挥霍的资本 I 咱都觉得年轻好像一张白纸,能在上面画出精彩人生呢。可实际上,年轻可不是啥简单的好事儿,它更像是个宝库&#xff0…

x264 编码器 AArch64汇编系列:DCT 变换相关汇编函数

DCT变换 在x264_dct_init函数中初始化具体的 dct 实现函数。 4x4 块DCT 变换 c 语言版本实现 4x4DCT 变换函数:sub4x4_dct。pixel_sub_wxh 函数: 这个函数的作用是从两个像素块中减去一个像素块,得到差分值,这些差分值将用于DCT变换。参数: diff:指向存储结果差分值的数组…

OHIF Viewers 项目介绍

项目结构 项目架构 │ ├── extensions │ ├── default # 默认功能 │ ├── cornerstone # 使用 Cornerstonejs 处理 2D/3D 图像 │ ├── cornerstone-dicom-sr # 结构化报告 (DICOM SR) │ ├── measurement-tracking # 测量追…

FTP服务器(服务名vsftpd,端口tcp/20和tcp/21)

目录 前言 配置文件 FTP服务器的配置 FTP服务的下载 配置防火墙 编辑配置文件 常用字段: 常用字段(匿名用户): 常用字段(系统用户): 指定系统用户访问: 编辑名单/etc/vsf…

leetcode_001_两数之和解析

两数之和解析 题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序…

代码随想录(day8)—环形链表

题目 预备知识点: for和while的区别 while语句属于循环语句,在判断是,如果条件为true,则会继续判断,直到false为止,即会进行多次判断(除非一开始条件就是错的)。 if语句属于条件判…

【Material-UI】Slider中的 Continuous Sliders 与 Sizes 详解

文章目录 一、Slider 组件概述1. 组件介绍2. 使用场景 二、Continuous Sliders 的详解1. Continuous Sliders 的作用2. Continuous Sliders 的基本用法3. 禁用状态下的 Continuous Sliders4. Continuous Sliders 的实际应用5. Continuous Sliders 的优缺点 三、Slider 的尺寸控…

005-CircuitBreaker断路器-Resilience4J

文章目录 1 CircuitBreaker1.1 实现原理1.2 一句话 2 Resilience4J2.1 是什么2.2 能干嘛2.3 怎么用 3 熔断(CircuitBreaker)(服务熔断服务降级)3.1 断路器三大状态3.2断路器3大状态之前的转换3.3断路器所有配置参数参考3.4 熔断降级案例需求说明3.5 COUNT_BASED(计数的滑动窗口…

科讯档案管理系统存在SQL注入漏洞(0day)

漏洞描述 安徽科迅教育装备20年来来始终坚持智慧校园集成方案产品的开发和部署应用,我们有完善的智慧校园和数字校园建设方案,根据不同的学校不同的实际情况量身定做系统集成方案。产品主要是为了实现校园的智慧网络、智慧OA、智慧教学、智慧学习、数字医…