流模型(flow)--《NICE: Non-linear Independent Components Estimation》

NICE模型是一种通过学习非线性双射变换实现数据分布建模的方法。它将数据映射到一个易于因子化的空间,并通过直接最大化log-likelihood进行训练。与VAE不同,NICE避免了使用可变下界,减少了生成过程中的非结构化噪声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 相关工作

本文根据2015年《NICE: Non-linear Independent Components Estimation》翻译总结的。流模型的最初论文。流模型(flow)也是一种生成模型。

1)像deep Boltzmann machines (DBM,2009)无向图模型,其用采用Markov chain Monte Carlo (MCMC)而很慢。

2)variational auto-encoders (VAE)(2014)使用随机encoder q(h|x)和不完美的decoder p(x|h),成本上需要一个重构项,保证decoder近似反转encoder。这注入了噪声到auto-encoder循环中,因为h是从q(h|x)采样的,其是对真正后验p(h|x)一个可变近似。训练的目标就是数据log-likelihood的可变下界(variational lower bound)。有向图提供的一般化的快速的原始采样技术使得VAE模型非常吸引人。但是使用lower bound对于真正的log-likelihood是次优的。如此次优的方案也许会在生成过程中注入显著的非结构化噪声。

NICE模型是学习一个非线性双射转换(bijective transformation),其将训练数据映射到另一个空间,在该空间上分布是可以因子化的,整个模型架构依靠直接最大化log-likelihood来完成。

2 简介

非监督学习的主要问题之一是如何捕捉复杂的数据分布,其结构未知。深度学习方法(bengio,2009)依靠数据表达的学习,其捕捉变量最重要的因子。这就带来一个问题:什么是一个好的表达(representation)?我们认为一个好的表达是其数据分布很容易建模。

在这里插入图片描述

利用change of variable方法。

对于h=f(x),我们假定f是可逆的,h的维度和x的一样。

在这里插入图片描述

在这里插入图片描述

本文的主要创新就是f,其有两个属性,一个是雅可比矩阵的容易行列式,一个是容易可逆。其容许我们有足够的容量学习复杂的变换。

在这里插入图片描述

3 学习连续概率的双射变换

使用maximum likelihood。

在这里插入图片描述

在这里插入图片描述

同时这个先验分布如果各维度独立,可以因子化,故可以写成下式,从而获得了我们的non-linear independent components estimation (NICE)
在这里插入图片描述

我们可以将NICE视为学习数据集的可逆预处理变换。

在以前的variational auto-encoder (Kingma and Welling, 2014; Rezende et al., 2014; Mnih and Gregor, 2014; Gregor et al., 2014), 我们可以称f为encoder,f的逆为decoder。

4 结构

4.1 三角形结构

针对f,我们采用三角形雅可比矩阵。

4.2耦合层

我们描述一个双射变换(bijective transformation),其拥有三角形雅可比矩阵,所以是易计算的。
一般的耦合层:
在这里插入图片描述

其实就是第2章提到的函数m,即耦合函数m构造耦合层。
其中g可以是任何形式的,我们采用加法形式,g(a;b)=a+b.
耦合层一般至少3层,才能容易所有的维度互相影响。我们采用了4层。

4.3 先验分布

可以采用高斯分布:
在这里插入图片描述

或者逻辑分布:
在这里插入图片描述

我们倾向于使用逻辑分布,其倾向于提供更好的梯度。

5 实验

可以看到NICE表现更好。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值