Khemakhem I., Kingma D. P., Monti R. P. and Hyv"{a}rinen A. Variational autoencoders and nonlinear ICA: a unifying framework. In International Conference on Artificial Intelligence and Statistics (AISTATS), 2020.

本文讨论identifiability的问题, 即

\[p_{\theta}(x) = p_{\tilde{\theta}}(x) \Rightarrow \theta = \tilde{\theta}
\]

在何种情况下能够成立, 或者近似成立.

主要内容

假设观测数据\(x\)和隐变量\(z\)满足联合分布:

\[p_{\theta^*}(x, z) = p_{\theta^*}(x|z) p_{\theta^*}(z),
\]

因为隐变量是未知的, 所以我们接触到的实际上只有边际分布

\[p_{\theta^*}(x) = \int_z p_{\theta^*}(x, z)\mathrm{d}z.
\]

在实际估计参数\(\theta\)的时候, 很有可能发生:

\[p_{\theta}(x) = p_{\tilde{\theta}}(x) \approx p_{\theta^*}(x), \: \theta \not = \tilde{\theta}.
\]

即两个不同的联合分布\(p_{\theta}(x, z), p_{\tilde{\theta}}(x, z)\)但是却对应着同一个边际分布, 这就identifiability的问题.

在经典的VAE框架中, 已经有工作指出, 无监督下, 即仅凭观测数据\(x\), 是无法保证identifiability的.

本文的模型

本文需要用到一些额外的信息\(u\), 考虑如下分布:

\[p_{\theta}(x, z|u) = p_f(x|z) p_{T,\lambda}(z|u), \: \theta = (f, T, \lambda).
\]

注: \(x \in \mathbb{R}^d, z \in \mathbb{R}^n, u \in \mathbb{R}^m\).

其中,

\[x = f(z) + \epsilon \Rightarrow p_{f}(x|z) = p_{\epsilon}(x - f(z)).
\]
\[p_{T, \lambda}(z|u) = \prod_{i}\frac{Q_i(z_i)}{Z_i(u)}\exp [\sum_{j=1}^k T_{i,j}(z_i) \lambda_{i,j}(u)],
\]

即假设先验\(z|\mu\)满足的是指数族的分布.

套用VAE的框架:

  1. encoder:
\[\hat{T}, \hat{\lambda} = h(x, u;\phi), z \sim p_{\hat{T}, \hat{\lambda}}(z|u).
\]
  1. decoder:
\[\hat{x} = f(z) + \epsilon.
\]

既估计的后验分布为\(q_{\phi}(z|x,\mu)\), 则ELBO:

\[\mathbb{E}_{q_{\mathcal{D}(x,u)}}[\mathbb{E}_{q_{\phi}(z|x,u)}[\log p_{\theta}(x, z|u) - \log q_{\phi}(z|x,u)]].
\]

Identifiability

\(\sim\)定义: 定义\(\sim\)等价关系如下:

\[(f, T, \lambda) \sim (\tilde{f}, \tilde{T}, \tilde{\lambda}) \Leftrightarrow \\
\exist A, c, \: \mathrm{s.t.} \: T(f^{-1}(x)) = A\tilde{T}(\tilde{f}^{-1}(x)) + c, \forall x \in \mathcal{X},
\]

其中\(A \in \mathbb{R}^{nk \times nk}\). 若\(A\)还是个可逆矩阵, 则

\[(f, T, \lambda) \sim_{A} (\tilde{f}, \tilde{T}, \tilde{\lambda}).
\]

显然, 如果

\[p_{\theta}(x|u) = p_{\tilde{\theta}}(x|u) \Rightarrow \theta \sim_A \tilde{\theta},
\]

那么可以说是在线性变换允许范围内是identifiable的.

接下来给出的定理说明了什么时候\(\theta, \tilde{\theta}\)是\(\sim_A\)-identifiable的.

定理: 在前述定义的模型下, 对于\(\theta = (f, T, \lambda)\), 以及任意\(\tilde{\theta} =(\tilde{f}, \tilde{T}, \tilde{\lambda})\)满足

\[p_{\theta}(x|u)= p_{\tilde{\theta}}(x|u), \: a.e.,
\]

若一下条件成立, 则\(\theta \sim_A \tilde{\theta}\):

  1. 若\(\varphi_{\epsilon}\)为\(p_{\epsilon}\)的特征函数(这里即为对于的傅里叶变换), 且\(\varphi_{\epsilon} \not = 0, \: a.e.\).

  2. \(f\)是一个单射.

  3. \(T_{i, j}\)几乎处处可微, 且\((T_{ij})_j(x)\)线性独立, 即

\[\sum_j^k \alpha_{ij} T_{i, j}(x) = c_{i}, \forall x, \Rightarrow c_i = 0, \alpha_{ij} = 0, \forall j,
\]

对于\(i=1,\ldots, n\)均成立.

  1. 存在不同的点\(u^0, \cdots, u^{nk}\), 使得
\[L = (\lambda(u_1) - \lambda(u_0), \cdots, \lambda(u_{nk}) - \lambda(u_0)) \in \mathbb{R}^{nk \times nk}.
\]

可逆.

证明流程:

利用条件1, 2证明

\[p_{T,\lambda}(f^{-1}(x)|u) \mathrm{vol} J_{f^{-1}}(x)
=p_{\tilde{T},\tilde{\lambda}}(f^{-1}(x)|u) \mathrm{vol} J_{\tilde{f}^{-1}}(x).
\]

利用条件4证明

\[T(f^{-1}(x)) = A\tilde{T}(\tilde{f}^{-1}(x)) + c, \: A = L^{-T}\tilde{L}^T.
\]

利用条件3证明\(A\)可逆.

注: 显然条件四一定程度熵说明了为什么无监督不行(因为其相当于\(\lambda(u)\)为常数).

注: 关于引理2的证明我有疑问, 我认为应当这般证明:

令\(\mathcal{X}_i = \{x \in \mathbb{R}, T_i'(x) = 0\}\), 取\(\theta_i\not=0, \theta_j = 0, j\not=i\), 则

\[\langle T'(x), \theta \rangle = 0, \forall x \in \mathcal{X_i} \Rightarrow \langle T(x), \theta \rangle = \mathrm{const},
\]

由定义知\(\mathcal{X}_i\)的测度为0.

注: 本文还有一些别的identifiability的讨论, 这里不多赘述.

Variational Autoencoders and Nonlinear ICA: A Unifying Framework的更多相关文章

  1. Understanding Variational Autoencoders (VAEs)

    Understanding Variational Autoencoders (VAEs) 2019-09-29 11:33:18 This blog is from: https://towards ...

  2. (译) Conditional Variational Autoencoders 条件式变换自编码机

    Conditional Variational Autoencoders --- 条件式变换自编码机 Goal of a Variational Autoencoder: 一个 VAE(variati ...

  3. [Bayesian] “我是bayesian我怕谁”系列 - Variational Autoencoders

    本是neural network的内容,但偏偏有个variational打头,那就聊聊.涉及的内容可能比较杂,但终归会 end with VAE. 各个概念的详细解释请点击推荐的链接,本文只是重在理清 ...

  4. 条件式变分自编码机(Conditional Variational Autoencoders)

    Conditional Variational Autoencoders 条件式变换自编码机 摘要: Conditional Variational Autoencoders --- 条件式变换自编码 ...

  5. 基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)

    基于图嵌入的高斯混合变分自编码器的深度聚类 Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedd ...

  6. Improving Variational Auto-Encoders using Householder Flow

    目录 概 主要内容 代码 Tomczak J. and Welling M. Improving Variational Auto-Encoders using Householder Flow. N ...

  7. Variational Auto-Encoders原理

    目录 AE v.s. VAE Generative model VAE v.s. GAN AE v.s. VAE Generative model VAE v.s. GAN

  8. PP: Time series anomaly detection with variational autoencoders

    Problem: unsupervised anomaly detection Model: VAE-reEncoder VAE with two encoders and one decoder. ...

  9. (zhuan) Variational Autoencoder: Intuition and Implementation

    Agustinus Kristiadi's Blog TECH BLOG TRAVEL BLOG PORTFOLIO CONTACT ABOUT Variational Autoencoder: In ...

随机推荐

  1. android Paint 详解

    /**     * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体 ...

  2. Ibatis中SqlMapClientTemplate和SqlMapClient的区别

    SqlMapClientTemplate是org.springframework.orm.ibatis下的 而SqlMapClient是ibatis的 SqlMapClientTemplate是Sql ...

  3. SpringBoot java配置类@Configuration 的两种写法

    首先在Springboot项目中,件一个java类,使用注解@Configuration  ,则这个类是SpringBoot bean的创建的配置文件类,,这种配置文件类有两种写法 1.使用包扫描 , ...

  4. Spring组合注解与元注解

    目录 注解说明 源代码 使用范例 注解说明 元注解:可以注解到别的注解上的注解,所以元注解首先基于条件@Target({ElementType.TYPE}) ,目标使用在类文件上 . 组合注解:连个元 ...

  5. 【Java】面向类与对象

    一.面向对象 对象封装:私有变量+公共方法 方法与构造方法 this变量 Animal.java public class Animal { String name; int age; void mo ...

  6. Jenkins 报错合集

    目录 一.启动项目显示,没有接受许可之前不能够自动安装 二.明明配置了jdk但还是说找不到 三.jenkins-RestAPI调用出现Error 403 No valid crumb was incl ...

  7. Nginx安全检查

    1.检查是否配置Nginx账号锁定策略 描述 1.执行系统命令passwd -S nginx来查看锁定状态 出现Password locked证明锁定成功 如:nginx LK ..... (Pass ...

  8. Pytorch入门上 —— Dataset、Tensorboard、Transforms、Dataloader

    本节内容参照小土堆的pytorch入门视频教程.学习时建议多读源码,通过源码中的注释可以快速弄清楚类或函数的作用以及输入输出类型. Dataset 借用Dataset可以快速访问深度学习需要的数据,例 ...

  9. 批处理文件 .bat 并行Arcpy脚本提高效率的思路-提升版

    目录 前言 Arcpy脚本 导入库 函数定义 循环实现 批处理(.bat)脚本 前言 我在之前的博客园博客里,阐述了如何编写Arcpy脚本,如何利用Windows bat批处理脚本同时打开多个cmd窗 ...

  10. java File 类对操作系统文件目录进行操作:增删查

    File类 1,概述 File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成. 2,构造方法 public File(Strin ...