4.扩散模型的似然函数最大化(1)

news2024/10/7 17:35:35
1.似然函数最大化

        扩散模型的训练目标是负的对数似然的一个变分下界(VLB)。在本节中,我们总结并调查最近关于扩散模型的似然最大化的工作。首先我们介绍似然函数最大化的意义,然后重点讨论3种类型的方法:噪声调度优化逆向方差学习精确的对数似然估计。需要注意的是,目前扩散模型的似然提高方法是通过改善负对数似然的VLB 实现的,不能像归一化流(NormalizingFlow)那样直接改善似然函数值
        在生成模型中,我们认为真实世界的一个个数据是某个随机变量一个一个实现的。为了生成趋于真实的数据,我们希望能够学习到真实数据的分布q,然后通过模拟这个分布来生成新样本。所以我们会建立深度学习模型来对分布q进行参数化和学习。似然函数指的是,数据点在模型中的概率密度函数值即p(x,\Theta)所组成的函数,其中x是数据点,\Theta是参数,p(·,\Theta)是模型在参数\Theta下的生成样本的分布。似然函数是一个关于模型参数0的函数,当选择不同的参数0时,似然函数的值是不同的,它描述了在当前参数\Theta下,使用模型分布p(x,\Theta)产生数据集中所有样本的概率。一个朴素的想法是,在最好的模型参数\Theta下,产生数据集中的所有样本的概率是最大的。但在计算机中,多个概率的乘积结果并不方便计算和储存,例如,在计算过程中可能发生数值下溢的问题,即对比较小的、接近于0的数进行四舍五入后成为0。我们可以对似然函数取对数来缓解该问题,即L\Theta=log[L\Theta],并且仍然求解最好的模型参数\Thetaml,使对数似然函数最大:\Thetaml \epsilon argmaxl\Theta。可以证明这两者是等价的。在统计学中,参数\Theta往往有明确的含义,所以,人们希望知道参数的取值及其置信区间。通过数学推导可以证明,假设数据真实分布是p(x,\Theta*),那么在一定的正则条件下\Thetaml是\Theta*的相合估计,即√n(\Thetaml-\Theta*)有渐进正态性,并且是渐进最优(渐进有效)的。

        但是对于深度学习来说,参数\Theta并不一定是可识别的,并且因为深度学习中参数往往没有具体含义,所以我们常常不关心\Theta具体的取值。但我们仍然希望能够让似然函数以某种形式最大化,这是因为似然函数的最大化可以视作对模型的分布p和真实的数据分布q做匹配。但是直接计算是非常复杂的,经过一系列等价做近似计算。有的人可能会注意到q的真实分布是我们不知道的,所以没办法显式地计算这个KL散度,但是在数据量较大的情况下可以通过蒙特卡罗方法来模拟。这也是扩散模型最常用的损失函数,不仅如此,基于能量的模型、VAE、归一化流的训练方式都采用的最大化似然方式。GAN的训练方式也是在匹配模型分布和数据分布,但不是通过最大化似然的方式,而是使用GAN的判别器(test function)来评判两个分布的区别。这就导致 GAN 会出现模式崩溃的情况,即产生的样本单一。而最大化似然的方式就不会出现这个问题,因为它强制模型考虑到所有数据点。下面我们介绍如何提高扩散模型的似然值从而获得高质量、多样性的样本。
4.2 加噪策略优化
        在扩散模型中,我们希望优化生成样本分布的对数似然,也就是Eq0logp0,其中q0是真实样本的分布,p0是生成的样本的分布。这等价于最小化q0与p0之间的 KL散度Dkl(p0||q0)。但直接计算KL散度是很难处理的,因为在扩散模型中样本是迭代生成的,一般一个样本就需要几百甚至上千次计算。所以为了提高计算效率,我们转而优化Dkl(p\pi||q\pi),这里p\pi是整个前向加噪过程的分布,q\pi是整个逆向去噪过程的分布。根据 KL 散度的性质,可以证明Dk(p\pillq\pi)是Dkl(p0||q0)的一个上界,即可以通过减小Dkl(p\pillq\pi)近似优化生成样本的似然。在经典的扩散模型(如DDPM)中,前向过程中的噪声进程是手工调试的,没有可训练的参数。也就是说,唯一能做的事就是学习p\pi的分布使其与qπ匹配。如果q\pi选择得不好,比如加噪的进度过快导致信息丢失过多,那么会导致p\pi难以通过学习的方式匹配q\pi。从最优传输的角度来看,q\pi和p\pi是匹配数据分布q0和先验分布的一座桥梁,而事实上能够匹配数据分布q0和先验分布的随机过程有无限多个。所以我们会期望能够优化或者学习前向过程q\pi,从而使学习p\pi更简单,二者的KL散度更小。通过优化前向噪声的进程和扩散模型的其他参数,人们可以进一步最大化 VLB,以获得更高的对数似然值。
        iDDPM的工作表明,经典 DDPM 中的线性噪声在加噪的后期加噪程度过快,导致信息快速丢失,逆向去噪过程就会难以复原丢失的信息。而某种余弦加噪策略可以让信息丢失的速率更平缓,容易复原,从而改善模型的对数似然值。
        在变分扩散模型(Variational Diffusion Model,VDM)中,Kingma等人提出通过联合训练加噪策略和其他扩散模型参数来最大化 VLB,从而提高连续时间扩散模型的似然函数值。VDM 使用单调神经网络\gamma \eta(t)对加噪策略进行参数化,其中\eta表示单调神经网络中可学习的参数。此外,Kingma等人还证明了在连续时间的情形下(T趋于正无穷),数据点x的VLB可以简化为只取决于信噪比。VDM对前向过程的学习也可以表示为对信噪比的学习。

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

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

相关文章

20年408数据结构

第一题: 解析:这种题可以先画个草图分析一下,一下就看出来了。 这里的m(7,2)对应的是这图里的m(2,7),第一列存1个元素,第二列存2个元素,第三列存3个元素,第四列存4个元素,第五列存5个元素&#…

胤娲科技:00后揭秘——AI大模型的可靠性迷局

当智能不再“靠谱”,我们该何去何从? 想象一下,你向最新的GPT模型提问:“9.9和9.11哪个大?”这本应是个小菜一碟的问题,却足以让不少高科技的“大脑”陷入沉思, 甚至给出令人啼笑皆非的答案。近…

卡码网104.建造最大岛屿

题目 104. 建造最大岛屿 (kamacoder.com) 代码&#xff08;ACM 首刷看解析&#xff09;&#xff1a; #include<iostream> #include<vector> #include<unordered_map> #include<unordered_set> using namespace std;int dir[4][2] {1,0,-1,0,0,1,0,-…

C++ 算法学习——1.8 悬线法

1.问题引入&#xff1a;对于一个矩形图&#xff0c;图中放置着不少障碍&#xff0c;要求出最大的不含障碍的矩形。 2.分析&#xff1a;显然一个极大矩形是左右上下都被障碍挡住&#xff0c;无法再扩大的矩形&#xff0c;此时障碍也包括边界。 3.方法&#xff1a;悬线法考虑以…

计算机组成原理实验三 数据寄存器组R0..R3, MAR, ST, OUT

实验目的和要求 目的&#xff1a;了解模型机中各种寄存器结构、工作原理及其控制方法。 要求&#xff1a;利用CP226 实验系统上的K16..K23 开关做为DBUS 的数据&#xff0c;其它开关做为控制信号&#xff0c;将数据写入寄存器&#xff0c;数据寄存器组R0..R3&#xff0c;地址…

【大数据】Flink CDC 实时同步mysql数据

目录 一、前言 二、Flink CDC介绍 2.1 什么是Flink CDC 2.2 Flink CDC 特点 2.3 Flink CDC 核心工作原理 2.4 Flink CDC 使用场景 三、常用的数据同步方案对比 3.1 数据同步概述 3.1.1 数据同步来源 3.2 常用的数据同步方案汇总 3.3 为什么推荐Flink CDC 3.4 Flink …

进程间通信(匿名管道 创建管道及分配任务代码)

文章目录 一.进程间通信进程为什么要通信&#xff1f;进程如何通信 二.管道匿名管道pipe写端慢写入&#xff0c;读端等待写端写入&#xff0c;读端不读 && 管道的大小写端关闭&#xff0c;读端不会读取写端写入&#xff0c;读端关闭字节流 总结安全问题 三.进程池创建管…

VADv2 论文学习

VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning 解决了什么问题&#xff1f;相关工作感知运动预测规划自动驾驶领域的大语言模型 提出了什么方法&#xff1f;场景编码器概率规划训练分布损失冲突损失场景 Token 损失 推理 实验实验设定指标消融实…

AI类课程的笔记

信息论、导论、模式识别&#xff08;数据挖掘&#xff09;、语义网络与知识图谱、深度学习、强化学习 &#xff08;零&#xff09;信息论 详见另一篇博文 信息论自总结笔记(仍然在更新)_信息论也更新了-CSDN博客https://blog.csdn.net/sinat_27382047/article/details/12690…

【Unity踩坑】Unity导出的UWP项目编译失败

在Unity中导出了UWP平台的项目后&#xff08;Xaml或D3D&#xff09;&#xff0c;使用Visual Studio编译时发生错误&#xff1a; Error: Unity.IL2CPP.Building.BuilderFailedException: Lump_libil2cpp_vm.cpp 查找后发现是Visual Studio 与Unity兼容的问题 原贴&#xff1a;…

数据分析案例-机器学习工程师薪资数据可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

bus中设备驱动的probe触发逻辑和device、driver的添加逻辑

注&#xff1a;以下的代码皆摘自于linux 4.9.88版本的内核源码&#xff0c;不同版本可能有所出入。 往期内容&#xff1a; 驱动中的device和device_driver结构体bus总线的相关结构体和注册逻辑 1. driver的probe触发方式 在 Linux 设备模型中&#xff0c;probe() 函数是驱动…

自动驾驶系列—智能驾驶中的“换挡革命”:线控换挡技术详解

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Java垃圾回收简述

什么是Java的垃圾回收&#xff1f; 自动管理内存的机制&#xff0c;负责自动释放不再被程序引用的对象所占用的内存。 怎么触发垃圾回收&#xff1f; 内存不足时&#xff1a;JVM检测到堆内存不足时&#xff0c;无法为新的对象分配内存时&#xff0c;会自动触发垃圾回收。手动…

UDP协议【网络】

文章目录 UDP协议格式 UDP协议格式 16位源端口号&#xff1a;表示数据从哪里来。16位目的端口号&#xff1a;表示数据要到哪里去。16位UDP长度&#xff1a;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的长度。16位UDP检验和&#xff1a;如果UDP报文的检验和出错&…

【电路】1.2 电流和电压的参考方向

1.2 电流和电压的参考方向 参考方向就是一个假设的方向&#xff08;类似中学物理的正方形&#xff09;&#xff0c;选参考方向的原因是电路结构略显复杂&#xff0c; 无法直接看出支路电压、电流的实际方向&#xff0c;参考方向可以任意选择&#xff0c;任意支路电压、电流只有…

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【272-284】

272. 包基本介绍 272.1 看一个应用场景 272.2 包的三大作用 272.3 包的基本语法 273. 包原理 274. 包快速入门 在不同的包下面创建不同的Dog类 275. 包命名 276. 常用的包 一个包下,包含很多的类,java 中常用的包有: java.lang.* //lang 包是基本包&#xff0c;默认引入&…

【英语】5. 考研英语语法体系

文章目录 前言句字的成分一、常规句型简单句&#xff08;5 种&#xff09;1. 定义&#xff1a;句子中只包含 *一套主谓结构* 的句子。&#xff08;一个句子只能有一个谓语动词&#xff09;2. 分类 并列句&#xff08;由关联词组成&#xff09;&#xff08;3 种&#xff09;基本…

Unity Shader Graph基础包200+节点及术语解释

目录 Master Stack: Vertex block&#xff1a; Fragment block​编辑 Alpha Clip Threshold Dither transparency Graph Inspector Texture 2d Array/Texture 3d Virtual Texture Sampler State Keywords Boolean keyword 右键显示所有节点 简化测试系列节点&#x…

[SpringBoot] 苍穹外卖--面试题总结--上

前言 1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解-CSDN博客 2--苍穹外卖-SpringBoot项目中员工管理 详解&#xff08;一&#xff09;-CSDN博客 3--苍穹外卖-SpringBoot项目中员工管理 详解&#xff08;二&#xff09;-CSDN博客 4--苍穹外码-SpringBoot项目中分类管理 详…