[论文阅读] 2019 NeurIPS - Generative modeling by estimating gradients of the data distribution

📑[阅读笔记]Generative modeling by estimating gradients of the data distribution

本文创造性的使用积分函数来学习训练数据的分布,并提出sliced score matching解决了传统score matching中存在的性能问题。

🙋‍♂️张同学 📧zhangruiyuan@zju.edu.cn 有问题请联系我~

⚽️一、生成式模型应用

  • 🚗已经大量应用,比如人脸生成模型中,生成的人脸已经和真实的人脸相差无几。

  • 🚕自然语言处理,一个语言模型本质上就是一个基于语言的生成式模型。

🏀二、生成式模型介绍

  • 🚗一般的生成模型

    • 🚜从一个数据集中来训练,这个数据集中有很多数据样本

    • 🚛生成模型是一个概率分布的集合

    • 🚚给定一个训练集,我们的目的是找到一个最佳的分布的模型

    • 🚐得到这个模型之后,我们可以进行源源不断的采样来获得一个新样本

      image-20211215185453459

🏈三、生成模型的分类

生成式模型是一种对数据分布的表示,根据不同的表示,可以有以下生成式模型的分类:

  • 🚗隐式的生成式模型:GUN

    生成一个随机噪声,将这个噪声通过一个神经网络映射到一个样本上,比如可以是一张图片。

    image-20211215194815932
    • 🚜从噪声生成样本的过程就是一个从分布中进行采样的过程
    • 🚛优点
      • 灵活的结构
      • 比较高质量的样本质量
    • 🚚缺点
      • 很难训练一个模型:对抗训练难以调整、也不是很稳定
      • 没法去计算似然函数,所以没法比较不同隐式模型的好坏
  • 🚕显式的生成式模型

    通过直接表示这个分布的概率密度函数来表示分布:显示分布

    image-20211215195617731

    贝叶斯模型、等

    • 🚜优点
      • 可以用似然函数大小来比较不同模型好坏 # 这个似然函数是个什么概念?
    • 🚛缺点
      • 需要模型本身是归一化的 # 模型本身的归一化指的是什么?
      • 模型在训练的时候需要很快的计算似然函数,这个同时也制约了模型的表示能力。

⚾️四、本文主要工作

🍏本文提出一种全新的分布表示方法:

这个和显式的分布有什么区别?

模型要使用概率密度的导数进行表示
KaTeX parse error: Undefined control sequence: \grad at position 2: \̲g̲r̲a̲d̲_xlog(p(x)) =>…
image-20211215200649614

颜色表示概率密度函数,用向量场来表示积分函数。

结论 => 概率密度函数和积分函数,可以在可微的情况下表示同一种分布。 # 可微是为啥?

🍎为啥要使用积分函数:

作者认为

  • 概率密度函数表示的程度较低、没有积分函数灵活;
  • 使用积分函数就不需要计算归一化函数了
image-20211215201216456

通过训练一个积分函数的模型,

训练的损失函数是要求我们的向量场和数据分布的向量场一样

所以就需要计算两个向量场之间的距离 fisher divergence(这个距离不容易直接计算?依赖未知的积分函数对应的分布??听不懂)

=> score matching不依赖于未知的积分函数的分布,但是这个不容易计算(尤其是在神经网络的模型中)

!= 但是不能用于大规模维度的计算

image-20211215201726722

🍐如何解决score matching算法低效的问题

sliced score matching: 将高维的向量场变成一个低维的标量场。

提出目标函数:sliced fisher divergence

=> 作者的工作实现了只进行一次反向即可完成训练。

image-20211215204715690

sliced score matching的实验结果极其迅速!且效果相当。

image-20211220100404042

效果相似

image-20211215205241863

🎾五、生成模型实验及展示效果

使用积分函数构建模型来构建新样本

image-20211215205329229

从积分函数中生成样本

image-20211215205536790

在数据较多的地方积分场比较好,在数据量比较少的地方积分场比较差:

image-20211215205759740

可以通过在原始数据中添加随机数来进行扰动
为什么要添加噪声呢?
添加噪声之后可以方便score matching计算,可以填补数据量少的地方。
所以最终的结果是使用多级噪声的原始数据进行训练。
采样时采用的是拉直满采样。

image-20211215205851731

展示效果

image-20211215211224364

🏐参考文献

  • 原文献:Song Y, Ermon S. Generative modeling by estimating gradients of the data distribution[J]. arXiv preprint arXiv:1907.05600, 2019.

  • 原作者的分享视频:https://www.techbeat.net/talk-info?id=509

  • GitHub源代码:https://github.com/ermongroup/ncsn?utm_source=catalyzex.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值