生成式 AI - Diffusion 模型的数学原理(5)

来自 论文《 Denoising Diffusion Probabilistic Model》(DDPM)
论文链接: https://arxiv.org/abs/2006.11239
Hung-yi Lee 课件整理

在这里插入图片描述
讲到这里还没有解决的问题是,为什么这里还要多加一个噪声。Denoise模型算出来的是高斯分布的均值,做sample的时候考虑需要加上一个噪声,代表说考虑高斯分布的方差这一项。为什么不直接取均值呢?
在这里插入图片描述
同样的问题你也可以问,为什么语言模型在产生问句的时候,一定要做sample,为什么我们先产生一个有可能的分布,再从这个分布中sample出文字呢?取概率最大的就行,有人说做sample的好处是你每次问同一个问题,chatgpt的答案都不一样,当你问某个人有没有打疫苗,chatgpt有时候会说有有时候会说没有,就可以制造很多假新闻。
为什么一定要这样呢,为什么不能固定住去概率最大的呢?让模型每次都回答概率最大的句子,为什么需要有随机性?

在这里插入图片描述
这个问题之前就有人提出来了,这篇文章发现如果取概率最大的句子和词汇,那么输出的结果会是不断重复的句子,机器就会不断地跳帧,讲重复的话,虽然做sampling机器会说一些奇怪的话,和跳帧比起来sample的结果更好,为什么呢?他做了一个分析。
在这里插入图片描述
我们来看看人写的句子吧,橙色的线代表的是人写的句子,右边是人写的一篇文章,用我们的语言模型来计算人写的每一个单词的概率,发现人写出来的文章用字遣词并不是选概率最大的词汇。
我们让机器每一步都产生概率最大的词汇,发现它一直在不断地讲重复的话。
在做生成模型的时候概率最大的结果未必是最好的结果。
这是在文字上的观察。

在这里插入图片描述
实际上在语音合成模型上也有类似的规律。
在语音合成模型的推理阶段使用dropout效果很好,这个和我们想象的不太一样,我们一般是在训练阶段过拟合的时候才加dropout。
这篇文章里写到,为了引入输出结果的多变性,在推理的某一层加了dropout。

在这里插入图片描述
diffusion 模型其实是一种自回归模型,自回归的模型是一次到位,这样通常产生的结果不够好,我们把它改成N次到位,这就是diffusion模型的概念。
所以在做Denoise的时候就好比是自回归里面的一个step,在做自回归的时候每个step我们都要加一点噪声,加一点随机性结果才会好,所以在做Denoise的时候我们要加一点随机性,这样结果才会好。
在这里插入图片描述
李教授找助教做实验验证了,如果像论文里一样加噪声会生成小女孩头像这样正常的图片,把噪声去掉就只会产生一张黄色的图片。

在这里插入图片描述
到这里就是diffusion模型的全部玄机了。
训练的时候为什么不是一次一次地加噪声,顺便讲了什么sampling的时候需要加噪声。

在这里插入图片描述
diffusion模型不是只用在图像上,在语音合成任务上也可以。
这里没有什么好讲的,和图像几乎是一样的,图像的输入是2维的,在语音上变成了1维的,从一个完全高斯的杂训一步一步做Denoise,把它变成一段声音。
其中比较知名的方法就是WavGrad
基本上和DDPM没有什么差别。
在这里插入图片描述
但是把diffusion模型直接用在文字上就很困难了,我们没办法直接在文字上加噪声,文字是描述性的,没把法在描述性的东西上加噪声让它看不出来是什么。
有一些提法是把噪声加在word embedding上,就这样。
有几篇论文这样做的,比如diffusion-LM。
在这里插入图片描述
还有这篇论文 DiffuSeq,它是一个seq2seq的模型,是在latent representation上加噪声。

在这里插入图片描述

还有这篇论文,假设加高斯噪声是不行的,能不能加其他类型的噪声加到文字上?
这篇论文里面的噪声分布全部都是 [ m a s k ] [mask] [mask],然后再慢慢把有 [ m a s k ] [mask] [mask]的地方填充回来。

写在最后
diffusion模型最大的成功是把自回归的一步到位改为了N步到位。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NeurIPS 2023 Spotlight | VoxDet:基于3D体素表征学习的新颖实例检测器

本文提出基于3D体素表征学习的新颖实例检测器VoxDet。给定目标实例的多视图,VoxDet建立该实例的三维体素表征。在更加杂乱的测试图片上,VoxDet使用体素匹配算法检测目标实例。实验表明,VoxDet中的三维体素表征与匹配比多种二维特征与匹配要更…

【深入理解设计模式】适配器设计模式

适配器设计模式 适配器设计模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口,从而使得原本由于接口不兼容而不能一起工作的类能够一起工作。适配器模式通常用于以下场景: 现有接口与需求不匹配:当需要…

IP对讲终端SV-6002(防水)

SV-6002(防水)是一款IP对讲终端,具有10/100M以太网接口,其接收网络的音频数据,解码后播放,外部DC12~24V电源供电端子,提供单路2W的音频输出。基于TCP/IP网络通信协议和数字音频技术,…

【Java EE初阶二十三】servlet的简单理解

1. 初识servlet Servlet 是一个比较古老的编写网站的方式,早起Java 编写网站,主要使用 Servlet 的方式,后来 Java 中产生了一个Spring(一套框架),Spring 又是针对 Servlet 进行了进一步封装,从而让我们编写网站变的更简单了;Sprin…

都有金蝶了,也能开发报表,为什么要用BI?

很多企业在一开始时都会有这样的困惑:我都有金蝶ERP了,也能自己开发报表,为什么还要买BI? 答案是显而易见的,金蝶ERP毕竟不是专业的数据分析系统,它的主要任务是在企业管理流程上,虽然很多企业…

Linux内核网络

文章目录 前言网络协议栈图解功能 发送Linux内核网络数据包图解流程 接收Linux内核网络数据包图解流程 最后 前言 你好,我是醉墨居士,因为Linux内核涉及的内容极多,我们初学者如果一上来就开始深挖细节,很有可能会在Linux内核代码…

MySQL - 事务日志

目录 1. redo日志 1.1 为什么需要REDO日志 1.2 REDO日志的好处、特点 1. 好处 2. 特点 1.3 redo的组成 1.4 redo的整体流程 1.5 redo log的刷盘策略 1.6 不同刷盘策略演示 1. 流程图 ​编辑2. 举例 1.7 写入redo log buffer 过程 1.8 redo log file 1. 相关参数…

[云原生] 二进制安装K8S(中)部署网络插件和DNS

书接上文,我们继续部署剩余的插件 一、K8s的CNI网络插件模式 2.1 k8s的三种网络模式 K8S 中 Pod 网络通信: (1)Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享…

批量解决opencv cv2.imread读取32位抠图png图像后,出现隐藏背景无法去除的问题

一、问题展示 1.原始png含蒙版抠图信息:位深度为32位,4通道图像信息,含蒙版背景信息 2.使用opencv读取保存后图像信息:位深度为24位,3通道图像信息,显示了扣除的背景 二、问题分析 1.用cv模块无法识别深度…

Stable Diffusion 绘画入门教程(webui)-ControlNet(线稿约束)

上篇文章介绍了openpose,本篇文章介绍下线稿约束,关于线稿约束有好几个处理器都属于此类型,但是有一些区别。 包含: 1、Canny(硬边缘):识别线条比较多比较细,一般用于更大程度得还原照片 2、ML…

C++ : string类

目录 介绍: string类的七种构造函数: string类的第三个构造函数 string类的第四个构造函数 string类的第五个构造函数 string类的第六个构造函数 string类常用的构造 string类对象的访问遍历操作 第一种遍历方式: 第二种遍历方…

使用Node.js开发RESTful API

在当今信息时代,不管是企业级应用还是个人项目,都离不开RESTful API的使用。RESTful API 是现代 web 应用的基石,通过它,我们可以实现前后端的高效沟通和数据传输。而在开发 RESTful API 的过程中,Node.js 的强大功能和…

AR应用的开发流程

增强现实(Augmented Reality,AR)是一种技术,它将虚拟信息叠加在真实世界中,通过计算机生成的视觉、听觉、触觉等感官反馈,将虚拟元素与现实世界进行交互。这种技术使得用户可以与现实世界中的虚拟对象进行互…

vue插件——vue-print-nb 实现打印功能

之前写过好多关于打印的功能,通过windowprint组合键来实现打印。 今天遇到一个需求,就是使用vue插件来实现打印功能。 最终效果图如下: 下面介绍解决步骤: 解决步骤1:安装vue-print-nb插件——npm install vue-p…

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件 最近看到了一个插件,实现一个可滑动关闭组件。滑动关闭组件即手指向下滑动,组件随手指移动,当移动一定位置时候,手指抬起后组件滑出屏幕。 一、GestureDetect…

配置多个后端 API 代理

在开发 React 应用时,通常会涉及到与后端 API 的交互。而在开发过程中,我们经常需要在开发环境中使用代理来解决跨域请求的问题。Create React App 提供了一种简单的方式来配置代理,即通过创建一个名为 setupProxy.js 的文件来配置代理规则。…

力扣链表篇

以下刷题思路来自代码随想录以及官方题解 文章目录 203.移除链表元素707.设计链表206.反转链表24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链…

一个具有强大PDF处理能力的.Net开源项目

PDF具有跨平台、可读性强、不可修改性、无需特定阅读软件、内容安全等好处,在工作中经常都会用到。 所以,我们在项目开发中,经常需要生成PDF的文件,或者把Html、Xml等文件转化为PDF格式。 今天给大家推荐一个具有PDF处理能力的.…

计算机设计大赛 深度学习大数据物流平台 python

文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 &#x1f5…

vue - - - - Vue3+i18n多语言动态国际化设置

Vue3i18n多语言动态国际化设置 前言一、 i18n 介绍二、插件安装三、i18n配置3.1 创建i18n对应文件夹/文件3.2 en-US.js3.3 zh-CN.js3.4 index.js 四、 mian.js 引入 i18n配置文件五、 组件内使用六、使用效果 前言 继续【如何给自己的网站添加中英文切换】一文之后&#xff0c…