本文主要针对流模型中的RealNVP模型论文进行记录。

论文地址:DENSITY ESTIMSTION USING REAL NVP

非常不错的博客:苏剑林. (2018, Aug 26). 《细水长flow之RealNVP与Glow:流模型的传承与升华 》[Blog post]. Retrieved from https://kexue.fm/archives/5807

一、论文概述

摘要部分:

1、给出RealNVP的全称:real-valued non-volume preserving ,可以翻译为真实值非体积保持。这是一种转换方式,而且是稳定可逆的、可学习的。通过这种转换方式,可以实现对似然函数的准确计算,准确的采样,对潜在变量精确的推断,可以利用的潜在空间。

引言部分:

2、生成模型不仅有创造新内容的能力,而且有广泛的与重建有关的应用,如图像插值、图像去噪、图像着色和超分辨率等。

这句话的英语原文感觉特别好,Not only do generative probabilistic models have the ability to create novel content, they also have a wide range of reconstruction related applications including inpainting, denoising, colorization, and super-resolution.

3、data of interest 感兴趣的数据。

因为感兴趣的数据通常是高维并且高度结构化的,所以在这个领域具有的挑战性的的问题就是如何构建一个可以捕捉其复杂性并且可以训练的模型。

4、hierarchical 分层。

相关工作部分:

5、大量的工作重点放在通过最大似然训练模型。其中一类是通过概率无向图(probabilities undirected graphs)来进行描述,如,受限玻尔兹曼机(Restricted Boltzmann Machines,RBM),深度玻尔兹曼机(Deep Boltzmann Machines,DBM)等。

这里需要注意,受限玻尔兹曼机RBM、深度玻尔兹曼机DBM和深度置信网络DBN不同。个人理解是玻尔兹曼机发展成RBM,一个DBN由若干个RBM堆叠而成,DBN是无向和有向的结合。而DBM也是多个RBM堆叠而成,但是DBM是完全无向的模型。

这些模型通过利用二分结构的条件独立性来对潜在变量进行准确或近似的后验推断。

6、简单介绍几种分布。联合分布(joint distribution)就是同时对多个随机变量的概率分布,可以表示为

条件分布(conditional distribution)是在其中一个随机变量取值固定时,另外的随机变量的概率分布,可以表示为。相当于在y条件下x的概率分布。

边缘分布(marginal distribution)是在有多个随机变量时,只考虑一个随机变量的概率分布,与其它随机变量取什么值的概率无关,可以表示为。通常来说,就是累加该随机变量在各个条件下的概率,不太严谨的公式表示如下:

模型定义部分

7、相比之前的NICE模型,RealNVP在公式上进行了变化,不再是简单的加法耦合,将加法和乘法结合在一起,成为更一般的仿射耦合层。文章的公式如下:

雅克比矩阵可以表示为

这也就使得雅克比矩阵的对角线不再全是1,行列式的值为。也正是因为行列式的值不再为1,从而使得体积不再保持,这也就是真实值非体积保持(Real valued non-volume preserving)的来源。

8、diag()代表了除了对角线其余都为零的对角矩阵。

9、因为通过耦合层计算雅克比行列式的值时并没有涉及到s和t,因此s和t可以是任意复杂的函数,可以使用深度卷积神经网络进行表示。

10、映射函数的逆可以表示如下:

因为在反转耦合层的时候不需要计算s和t的逆函数,因此s和t可以是任意复杂的函数。这样相当于从编码和解码两个角度证明s和t可以为任意复杂的函数,整个模型具有足够的非线性能力。

11、masked convolution,没有想到什么好的翻译,但这一小节主要讲了如何对输入x进行分组,而且是在卷积层面上进行的讲解。

首先,用卷积的前提是图像在空间维度上具有局部相关性。本身一般的图像都是可以使用卷积的,但是在流模型中,需要对x进行分组,打乱顺序输入,这样会破坏局部相关性。在一张图片中,有三个维度存在,高度、宽度、通道。前两个属于空间维度,因此要想能够使用卷积网络,能分割或打乱的就是第三个维度,通道。

在文章中,提出了两种方式:空间棋盘模式(spatial checkerboard patterns)和通道方向遮挡方式(channel-wise masking)。具体而言,棋盘mask在空间维度上对坐标轴和为奇数的标注为1,为偶数的标注0。应该就是(1,1)为偶数,(2,1)为奇数这样来标注,交错对x进行分组。通道mask则是对半分,前半部分为1,后半部分为0。通道mask的公式可以表示如下:

12、为了更加充分混合信息,相对于NICE是交错方式,将交换位置混合信息,RealNVP采用重新随机排序的方法,将每次得到的拼接成新的向量,然后重新分解输入。

13、squeezing operation,简单来讲就是reshape操作,为channel-wise mask提供前提条件,确保有足够的channel进行分割。例如将一张图片先分成2 x 2 x c大小的块,然后reshape成1 x 1 x 4c的大小,这样增加了通道数。同时,因为是因为每一块进行的reshape所以依然保留的局部相关性。要是直接reshape就整张图片打乱进行reshape,很难保证保留局部相关性。

14、多尺度框架(Multi-scale architetcure)

(1)在每一次scale(相当于一次flow运算)中,采用棋盘mask的三组耦合层 + squeezing 层 + 采用通道mask的三组耦合层 进行操作。

在最后的scale中采用棋盘mask的四组耦合层进行操作。

(2)为了减少计算量,在文章中采取了将输出分成一半,一部分直接输出,另一部分送入到下一步的flow运算的策略。相当于每一步都把输入变为了一半。

但是有一个细节需要注意,就是最后各个z的先验分布如何去取,多尺度结构相当于产生了一个组合式的条件分布。具体讲解,可以看一开始给出的博客。

15、批归一化层(batch normalization)BN论文和权重归一化层(weight normalization)WN论文。在Real NVP中使用了BN层和WN层来进行加速,BN层是对输入的数据进行归一化处理,WN层是对参数进行处理。具体两种方式的原理和用处,之后有时间再单独整理。

实验部分

16、在论文中主要使用了残差网络结构。在CIFAR-10、CelebA和LUSN数据集上进行了实验。

二、论文感想

RealNVP基本上完成了流模型的大体框架,加入了卷积层,可以更好地结合现在许多实用的技巧进行改进。在github上也有许多很不错的代码,接下来需要做的就是看一下Glow的论文,然后开始做实验。

论文笔记(五)【DENSITY ESTIMATION USING REAL NVP】相关推荐

  1. 【论文阅读】Density estimation using Real NVP

  2. 可逆网络 ICLR 2017 : Density Estimation Using Real NVP

    Density Estimation Using Real NVP https://arxiv.org/pdf/1605.08803.pdf 目录 Density Estimation Using R ...

  3. 论文解读《Crowd Density Estimation Using Fusion of Multi-Layer Features》T-ITS2020

    Crowd Density Estimation Using Fusion of Multi-Layer Features Xinghao Ding , Member , IEEE, Fujin He ...

  4. 论文笔记(二十)VisuoTactile 6D Pose Estimation of an In-Hand Object using Vision and Tactile Sensor Data

    VisuoTactile 6D Pose Estimation of an In-Hand Object using Vision and Tactile Sensor Data 文章概括 摘要 1. ...

  5. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

  6. 3d object是什么文件_[单目3D目标检测论文笔记] 3D Bounding Box Estimation

    本文是3D Bounding Box Estimation Using Deep Learning and Geometry的论文笔记及个人理解.这篇文章是单目图像3d目标检测的一个经典工作之一.其目 ...

  7. 论文笔记(三):PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes

    PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes 文章概括 摘要 1. ...

  8. 论文阅读笔记(五)——狐猴识别系统:一种便于狐猴个体识别的面部识别系统

    论文阅读笔记(五)--狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文简介 论文中文翻译:狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文名称:<LemurFaceID: a fac ...

  9. 论文笔记,物体六自由度位姿估计,DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion

    论文笔记,物体六自由度位姿估计,DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion 链接 摘要 1,引言 2,模型 2.1 ...

最新文章

  1. C# List集合转Json字符串示例代码
  2. linux 下查看应用版本信息,Linux下查看版本信息
  3. php跨域请求解决方案_swoft2 -跨域与中间件详解
  4. 百度地图移动端开发和ArcGIS for Android 开发入门
  5. java 16进制_JAVA十六进制数据接收与传输
  6. Deep Learning Papers
  7. 隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码
  8. Google 又有新动作了
  9. lnmp团队开发环境docker环境搭建PHP7.2 mac系统为例
  10. matlab 一阶惯性环节,一阶惯性环节
  11. 测试用例-1-微信发红包功能
  12. Serializer对象
  13. Petalinux配置
  14. 软件工程经济学期末复习
  15. 群论:群的定义与阿贝尔群
  16. 英特尔第十代处理器为什么不支持win7_Intel的7代酷睿CPU可以安装Win7系统吗?能不能完美支持呢?为什么有人说不能使用Win7系统...
  17. javaSE-day04--ArrayList基本用方法、类内定义方法和方法重载、静态方法static(类的方法)、工具方法(static)的定义和使用
  18. 起重吊装资质证书如何办理通过?经验之谈
  19. 悲剧艺术! finalize方法实现对象的自我拯救
  20. Java 北大青鸟 第一学期 第六章 循环结构(二) 上级练习+课后作业

热门文章

  1. 在荷载步之间改变材料属性例子
  2. Mysql实现查询一年内的考勤记录(行转列)
  3. STM32F103C8T6和C6T6的区别
  4. 腾讯、阿里、百度、小米、360深藏不露的投资秘籍!
  5. 【工具】阿里云网盘内测申请,更新网盘(云存储)功能需求,免费网盘需求,手机数据备份...
  6. 智能反射面(IRS)信道建模与仿真
  7. H5怎么关闭IOS键盘的首字母自动大写
  8. 计算机软考下午考试,2020年计算机软考下午考题解答技巧方法
  9. 北京尚学堂视频系列(Oracle)
  10. 排序算法:基数排序与计数排序