Generative Modeling by Estimating Gradients of the Data Distribution阅读笔记

news2024/11/24 10:47:21

目录

  • 概述
  • 传统score-based generative modeling介绍
    • score matching
    • Langevin dynamics
  • 传统score-based generative modeling存在的问题
    • 流型假设上的问题
    • 低密度区域的问题
  • Noise Conditional Score Network
    • 噪声条件分数网络(Noise Conditional Score Networks)
    • annealed Langevin dynamics
  • 参考

概述

论文提出了一种生成模型,并将其用于图像生成任务。
论文先介绍了传统score-based generative modeling方法,然后分析传统score-based generative modeling存在的问题,最后提出解决问题的算法noise conditional score network。

传统score-based generative modeling介绍

假设数据集中的数据服从 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)分布。
generative modeling的目标是学习一个生成模型来生成服从 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)分布的新样本。
定义score function为对概率密度函数 p ( x ) p(\mathbf{x}) p(x)求导 ∇ x log ⁡ p ( x ) \nabla_\mathbf{x}\log p(\mathbf{x}) xlogp(x)
定义score network是一个参数为 θ \theta θ的神经网络 s θ s_\theta sθ,其试图近似score function。
score-based generative modeling通过学习score function,加上Langevin dynamics采样,来生成符合分布的新样本,步骤如下图所示:
在这里插入图片描述

score matching

使用score matching算法,我们可以直接训练一个分数网络 s θ ( x ) s_\theta(\mathbf{x}) sθ(x)来估计 ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log p_{data}(\mathbf{x}) xlogpdata(x)而无需训练模型估计 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)。好处是可以避免概率密度函数中的归一化常数,详见score matching算法介绍。
score matching算法的优化目标如下:
1 2 E p d a t a [ ∥ s θ ( x ) − ∇ x log ⁡ p d a t a ( x ) ∥ 2 2 ] \frac{1}{2}\mathbb{E}_{p_{data}}[\|\mathbf{s}_\theta(\mathbf{x})-\nabla_\mathbf{x}\log p_{data}(\mathbf{x})\|^2_2] 21Epdata[sθ(x)xlogpdata(x)22]上面的公式需要计算 ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log p_{data}(\mathbf{x}) xlogpdata(x),这是一个非参数估计问题,并不好计算。值得高兴的是,上面的公式在相差常数上等价为 E p d a t a [ tr ( ∇ x s θ ( x ) ) + 1 2 ∥ s θ ( x ) ∥ 2 2 ] \mathbb{E}_{p_{data}}[\text{tr}(\nabla_\mathbf{x}\mathbf{s}_\theta(\mathbf{x}))+\frac{1}{2}\|\mathbf{s}_\theta(\mathbf{x})\|^2_2] Epdata[tr(xsθ(x))+21sθ(x)22]最小化上面的公式可以求出 s θ ( x ) \mathbf{s}_\theta(\mathbf{x}) sθ(x)。在现实中,期望可以用样本的平均代替。
但是,高维数据计算 tr ( ∇ x s θ ( x ) ) \text{tr}(\nabla_\mathbf{x}\mathbf{s}_\theta(\mathbf{x})) tr(xsθ(x))复杂度很高。Denoising score matching和Sliced score matching是针对高维大数据的两种常用的改进方法。

Langevin dynamics

Langevin dynamics是一种只需要score function ∇ x log ⁡ p ( x ) \nabla_\mathbf{x}\log p(\mathbf{x}) xlogp(x)就可以从概率密度函数 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)中采样的方法,它是一种Markov chain Monte Carlo (MCMC)方法。
给一个初始分布 x ~ 0 ∼ π ( x ) \tilde{\mathbf{x}}_0\sim \pi(\mathbf{x}) x~0π(x),和固定的步长 ϵ > 0 \epsilon>0 ϵ>0,Langevin方法循环地重复下面的步骤:
x ~ t = x ~ t − 1 + ϵ 2 ∇ x log ⁡ p ( x ~ t − 1 ) + ϵ z t \tilde{\mathbf{x}}_t=\tilde{\mathbf{x}}_{t-1}+\frac{\epsilon}{2}\nabla_\mathbf{x}\log p(\tilde{\mathbf{x}}_{t-1})+\sqrt{\epsilon}\mathbf{z}_t x~t=x~t1+2ϵxlogp(x~t1)+ϵ zt其中 z t ∼ N ( 0 , I ) \mathbf{z}_t\sim\mathcal{N}(0,\mathbf{I}) ztN(0,I)。当 ϵ → 0 \epsilon\rightarrow0 ϵ0 T → ∞ T\rightarrow\infin T时, x ~ T \tilde{\mathbf{x}}_T x~T的分布是 p d a t a ( x ) p_{data}(\mathbf{x}) pdata(x)

传统score-based generative modeling存在的问题

流型假设上的问题

流型假设指出,现实世界中的数据倾向于集中在嵌入高维空间(也称为环境空间)中的低维流形上。

The manifold hypothesis states that data in the real world tend to concentrate on low dimensional manifolds embedded in a high dimensional space (a.k.a., the ambient space).

在流型假设下,score-based generative models存在两个问题:

  1. ∇ x log ⁡ p d a t a ( x ) \nabla_\mathbf{x}\log p_{data}(\mathbf{x}) xlogpdata(x)在低维流型上没有定义。
  2. 只有在数据分布是整个空间时,score估计量才具有一致性(consistent)。

低密度区域的问题

在这里插入图片描述

  1. 在数据的低密度区域,并没有足够的数据样本去准确地学习score function。
  2. 当数据分布的两个峰(mode)被低密度区域分隔时,Langevin dynamics将无法在合理的时间内正确恢复这两个峰的相对权重,并且可能不会收敛到真实分布。例如,假设 p d a t a ( x ) = π p 1 ( x ) + ( 1 − π ) p 2 ( x ) p_{data}(\mathbf{x})=\pi p_{1}(\mathbf{x})+(1-\pi)p_{2}(\mathbf{x}) pdata(x)=πp1(x)+(1π)p2(x),并且 p 1 p_{1} p1 p 2 p_{2} p2没有相交的支撑集,在求导后,权重 π \pi π将不会影响score function。

Noise Conditional Score Network

为了解决上面的问题,作者对传统score-based generative modeling进行了改进。
作者提出通过 1) 使用各种噪声水平来扰动数据;2)用一个条件分数网络(conditional score network)同时估计所有噪声水平对应的分数。
在条件分数网络训练结束后,使用Langevin dynamics来生成样本时,最开始使用高噪声对应的分数,然后逐渐降低噪音。 这有助于将高噪声的好处平稳地转移到低噪声。而低噪声干扰的数据与原始数据几乎无法区分。

噪声条件分数网络(Noise Conditional Score Networks)

{ σ i } i = 1 L \{\sigma_i\}_{i=1}^L {σi}i=1L是一系列噪声水平,满足条件 σ 1 σ 2 = ⋯ = σ L − 1 σ L > 1 \frac{\sigma_{1}}{\sigma_{2}}=\cdots=\frac{\sigma_{L-1}}{\sigma_{L}}>1 σ2σ1==σLσL1>1 q σ ( x ) q_\sigma(\mathbf{x}) qσ(x)是噪声扰动后的数据分布。我们要学习一个噪声条件分数网络 s θ ( x , σ ) s_\theta(\mathbf{x},\sigma) sθ(x,σ)来估计噪声数据的分数,也就是 s θ ( x , σ ) ≈ ∇ x log ⁡ q σ ( x ) s_\theta(\mathbf{x},\sigma)\approx\nabla_\mathbf{x}\log q_\sigma(\mathbf{x}) sθ(x,σ)xlogqσ(x)。注意这里的分数网络是条件分数网络,输入相较于传统的 s θ ( x ) s_\theta(\mathbf{x}) sθ(x)多了一个 σ \sigma σ
作者考虑的是图像生成的问题,所以 s θ ( x , σ ) s_\theta(\mathbf{x},\sigma) sθ(x,σ)的结构作者选择的是U-Net。

对于噪声条件分数网络的训练,作者选择的噪声分布是 q σ ( x ~ ∣ x ) = N ( x ~ ∣ x , σ 2 I ) q_\sigma( \tilde {x} |x)=\mathcal{N}( \tilde{x} |x, \sigma^{2}\mathbf{I}) qσ(x~x)=N(x~x,σ2I)
对于一个给定的噪声 σ \sigma σ,优化的目标是:
l ( θ , σ ) = 1 2 E p d a t a E x ~ ∼ N ( x , σ 2 I ) [ ∥ s θ ( x ~ , σ ) + x ~ − x σ 2 ∥ 2 2 ] \mathcal{l}(\theta,\sigma)=\frac{1}{2}\mathbb{E}_{p_{data}}\mathbb{E}_{\tilde\mathbf{x} \sim \mathcal{N}(x, \sigma^{2}\mathbf{I})}[\| s_\theta(\tilde\mathbf{x},\sigma) + \frac{\tilde\mathbf{x}-\mathbf{x}}{\sigma^2} \|_2^2] l(θ,σ)=21EpdataEx~N(x,σ2I)[sθ(x~,σ)+σ2x~x22]将所有的噪声融合在一个式子中有:
L ( θ ; { σ i } i = 1 L ) ≜ 1 L ∑ i = 1 L λ ( σ i ) l ( θ , σ i ) \mathcal{L}(\theta;\{\sigma_i\}_{i=1}^L)\triangleq\frac{1}{L}\sum_{i=1}^L\lambda(\sigma_i)\mathcal{l}(\theta,\sigma_i) L(θ;{σi}i=1L)L1i=1Lλ(σi)l(θ,σi)

annealed Langevin dynamics

在噪声条件分数网络 s θ ( x ; σ ) s_\theta(\mathbf{x};\sigma) sθ(x;σ)训练完成之后,作者提出annealed Langevin dynamics算法来生成样本, 如算法1所示。
在这里插入图片描述

参考

Yang Song’s blog《Generative Modeling by Estimating Gradients of the Data Distribution》
NIPS 2019《Generative Modeling by Estimating Gradients of the Data Distribution》

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

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

相关文章

Kafka 架构、核心机制和场景解读

摘要 Kafka 是一款非常优秀的开源消息引擎,以消息吞吐量高、可动态扩容、可持久化存储、高可用的特性,以及完善的文档和社区支持成为目前最流行的消息队列中间件。 Kafka 的开发社区一直非常活跃,在消息引擎的领域取的不俗成绩之后&#xf…

组装式应用新基建——小程序容器技术

近年来,面对不断变化的业务环境和快速迭代的业务需求,“组装式应用”凭借其灵活性、复用性等优势,成为了重要战略技术趋势。 一直以来,传统应用程序开发面临着诸多挑战:一是没有足够的开发能力;二是选错技…

sql中的!=操作符的天坑(务必警觉)(=在处理null时也是同样有坑)

最近在测试数据,偶尔需要写sql进行数据比对,例如这样的语句: if( column_a ! column_b, 1, 0),万万没想到就是这样的sql语句差点要了我的命。 其实对一般的数据,这条校验语句是没有问题的,最后再筛选一下1的…

Stm32旧版库函数10——A4988 单个步进电机 16拍

#include "stm32f10x_lib.h" #include "motor.h" u8 Step; void GPIO_Key(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin GPIO_Pin_0|GPIO_Pin_1; // 选中管脚9 GPIO_InitStructure.GPIO_Mode …

使用java实现 分布式任务调度平台XXL-JOB 部署及使用

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 详细的特性和优点参考官网地址:https://www.xuxueli.com/xxl-job/ 一、任务调度 0.下载官方源…

为什么微服务一定要有网关呢

一、什么是服务网关 服务网关 路由转发 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去; 2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过…

Anaconda环境GDAL库基于whl文件的配置方法

本文介绍在Anaconda环境下,基于.whl文件安装Python中高级地理数据处理库GDAL的方法。 在文章Anaconda下Python中GDAL模块的下载与安装方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/124307748)中,我们介绍了基于…

[附源码]计算机毕业设计的实验填报管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

我是如何使用docker安装nginx并配置https服务的

文章目录前言一、前期准备1、备案好的域名2、安装nginx2.1 下载nginx的docker镜像2.2 新建用于映射的目录2.3 从容器中拷贝nginx配置2.4 启动 nginx二、配置步骤1、申请免费的证书2、下载证书3、把证书上传至服务器4、配置 .conf 文件4.1 后端接口服务 api.conf 配置4.2 前端项…

数据智仓功能介绍(四)

字段设置 使用场景介绍 字段设置,即在数据智仓中,对输入上一数据处理节点的字段进行显示和隐藏、排序、重命名等操作。 操作配置 对数据类型的转换,主要用户复杂数据的处理的情况下 ,例如某个字段是JSON ,那么通过数…

用 JS 解析 excel 文件需要分几步

八月长江万里晴,千帆一道带风轻。 大家好,我是嘿嘿,今天来聊一聊如何使用 JS 来解析 excel 文件,当然不是直接使用 exceljs、sheetjs 之类的库,那就没意思了,而是主要说一下 JS 解析 excel 表格是如何实现的…

STM32F4 IAP 跳转 APP问题

1. 概念 IAP 的作用,网上其他资料已经有很多介绍了,这里放一个链接,不进行深入的介绍。本文的关注重点是Bootloader在跳转APP程序中出现的问题。 IAP的实现原理讲解以及中断向量表的偏移 2. 程序 本人主要做应用层的开发,所有Boo…

深蓝学院-多传感器融合定位课程-第7章-基于滤波的融合方法I

专栏文章: 深蓝学院-多传感器融合定位课程-第1章-概述_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第3章-3D激光里程计II_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第…

自学100天,零基础转行软件测试,我要以更好的姿态奔赴下一场山海~

三年大专一场空 专业是电子商务,18年毕业,当时在报考时时觉得电子商务挺高大上的,觉得电商肯定会有前途,以后毕业肯定好找工作,跟大多数人一样,我开始幻想我以后毕业以后的纸醉金迷的生活,我以…

落地 DevOps,探索高效研发运营一体化解决方案

前言与概述 伴随着企业业务的快速发展,为了支撑业务发展,提高 IT 对业务的支撑能力建设。在研发工程协同方面,希望加强代码管理,实现持续构建、自动化测试、自动化部署、自动化运维,同时加强产品的安全和质量管理&…

华为路由器 静态路由

需求&#xff1a; 实现 PC1 与 PC2 互通 1、拓扑图 主机IP掩码网关PC1192.168.10.10255.255.255.0192.168.10.1PC2192.168.40.40255.255.255.0192.168.40.1PC3192.168.30.30255.255.255.0192.168.30.1 2、R1 路由器 <Huawei>undo ter mo Info: Current terminal monit…

c#调用c++捕获SEH异常

C代码&#xff1a; extern "C" __declspec(dllexport) int ExceptionTest() { int* pointer NULL;*pointer 100; return 100; }c#代码&#xff1a; class C_Sharp_Call_C__{[DllImport("testDll.dll", CallingConvention CallingConvention.Cdecl)]p…

SpringMVC:Spring与SpringMVC各自bean加载控制(2)

问题提出&#xff1a;学习Spring技术的时候在config目录下创建了一个配置类SpringConfig。现在学习SpringMVC技术在config目录下又创建一个SpringMvcConfig配置类。这两个配置类都需要加载资源&#xff0c;那么它们分别都需要加载哪些内容? 目录结构&#xff1a; config目录存…

[附源码]Python计算机毕业设计房屋租赁管理系统设计Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

完全可用的迁移docker目录方案(centos/redhat)

完全可用的迁移docker目录方一、前提二、具体操作如下&#xff1a;2.1 先模拟运行一个 docker mysql2.2 先停docker进程2.3 新建存储目录2.4 修改启动默认的目录2.4.1 使用软链接(推荐)2.4.2 修改/etc/docker/daemon.json &#xff08;推荐&#xff09;2.4.3 指定容器启动参数&…