OpenAI Glow模型天生样本样例,在隐空间掌握图像渐变
理解基于流的天生模型(flow-based)前,先回顾目前主流的两类天生模型GAN和VAE,David 9文章早已先容过:
VAE与GAN构造比较
GAN大略粗暴,用两个深度网络(判别器D和天生器G)交替学习使得天生器G可以仿照现实天生样本,但是毛病也是明显的:GAN不能直接了当地给出一个样本的隐分布的表征(你可以天生一个明星,但是你无法立时天生一个“微笑的”或“年轻的”明星),即,你很难用隐变量随意操纵天生的样本,你只知道天生的是任意样本(除非你重新设计GAN,像我们以前谈到的cGAN或者FaderNetworks等等。。)
VAE思路就完备不同,它继续了古老的贝叶斯理论,相信统统的创造可以用抽样后验概率来缔造。
你想创造新样本?好的,但是真实分布空间X 太繁芜了,我们先意淫一个后验空间Z吧:
来自论文:DENSITY ESTIMATION USING REAL NVP
只要X空间和Z空间是可以相互映射转换,从一个大略Z空间中抽样随机变量z,就能从z天生在X空间中的真实样本x 。把稳:VAE不仅是encoder和decoder的大略组合,终极的样本表征不是用深度网络层直接拿出一层隐层,而是用随机变量z去抽样,使随机变量z的空间分布仿照这个隐层分布。这样,VAE的encoder隐层就授予了Z空间分布的表征意义。但是VAE的表征意义仅仅是针对单个样本的,z没有包含高层语义(比如我要掌握天生“微笑的”明星),其余VAE模型本身也难以优化。
知道了GAN和VAE的毛病,再来理解基于流的天生模型(Glow,RealNVP和NICE)就更自然。
基于流的天生模型两大卖点是:
隐变量z的丰富语义能力,以及随意马虎进行打算并行(parallel)。
详细磋商之前,首先我们须要理解什么是基于流的天生模型,“流”或者“flow”是什么意思?
flow-based天生模型与传统的后验模型(如VAE)相似,以隐空间Z的隐变量z抽样为模型核心,以随意马虎打算的log-likelihood丢失函数为辅导。与VAE不同的是,终极隐变量z的抽样办法更奥妙,flow-based模型通过一系列可逆函数f 对隐变量z进行多次转换:
来自:Glow论文
这里的f1,f2,fK便是可逆函数,h1,h2,z 都是隐变量,隐变量就像在管道流中“流动”一样,下面是来自论文Improving Variational Inference with Inverse Autoregressive Flow的类似构造:
来自论文:Improving Variational Inference with Inverse Autoregressive Flow
越是后几层导出的隐变量z,越是有较高等的语义属性 。为什么?
从信息论角度David 9认为,可以理解每个可逆转换函数f 蕴含映射X空间 <–> Z空间 的信息,函数f 越多,拥有的空间转换能力越强,终极可以导致:如果隐变量z蕴含较高语义的布局样式等信息,可逆函数f也能成功还原出图像(不仅是像素级别的还原)。
其余, 可逆的转换函数f 之以是可逆,空间转换依赖了求解雅可比(jacobian)行列式:
个中
是雅可比(jacobian)行列式 。
论文RealNVP的附加实验也进一步解释了这一点:
个中第一列是原图,后面几列是高层隐变量的还原图像,并且从左向右,把隐变量信息逐步删减(依次保留100%, 50%, 25%, 12.5% 到 6.25%),模型依旧能还原图像的轮廓等高层信息。
OpenAI 的新模型Glow天生样本样例,在隐空间掌握图像渐变,也解释高层特色在流模型中是随意马虎操纵的(Glow在流模型中的其他技巧我们先不细讲):
那么如何阐明流模型随意马虎进行打算并行(parallel)?这个有很多种办法比较随意马虎理解,首先对图像的抽样可以用类似带步长卷积,把图像分割成多个通道(但这些通道不影响X空间 <–> Z空间的映射):
来自论文RealNVP
隐变量z可以并行在这些通道上打算,乃至有些通道可以不做可逆变换,直接采纳类高斯抽样:
来自论文RealNVP
图像在维度上的抽样灵巧性可以担保你总能找到一些方法使得模型整体加速。当然基于流的天生模型还有许多技巧有待挖掘,比如Glow中11卷积的运用,David 9期待不才次和大家分享研读心得。
参考文献:
Glow: Generative Flow with Invertible 1×1 ConvolutionsDensity estimation using Real NVPImproving Variational Inference with Inverse Autoregressive Flow独家 | GAN大盘点,聊聊这些年的天生对抗网络 : LSGAN, WGAN, CGAN, infoGAN, EBGAN, BEGAN, VAEhttps://zhuanlan.zhihu.com/p/39973479https://blog.openai.com/glow/https://github.com/openai/glowNICE: Non-linear Independent Components Estimation转自:http://nooverfit.com/wp/gan%E5%92%8Cvae%E9%83%BDout%E4%BA%86%EF%BC%9F%E7%90%86%E8%A7%A3%E5%9F%BA%E4%BA%8E%E6%B5%81%E7%9A%84%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B%EF%BC%88flow-based%EF%BC%89-glow%EF%BC%8Crealnvp%E5%92%8Cnice/