Variational Autoencoders and Nonlinear ICA: A Unifying Framework
概
本文讨论identifiability的问题, 即
\]
在何种情况下能够成立, 或者近似成立.
主要内容
假设观测数据\(x\)和隐变量\(z\)满足联合分布:
\]
因为隐变量是未知的, 所以我们接触到的实际上只有边际分布
\]
在实际估计参数\(\theta\)的时候, 很有可能发生:
\]
即两个不同的联合分布\(p_{\theta}(x, z), p_{\tilde{\theta}}(x, z)\)但是却对应着同一个边际分布, 这就identifiability的问题.
在经典的VAE框架中, 已经有工作指出, 无监督下, 即仅凭观测数据\(x\), 是无法保证identifiability的.
本文的模型
本文需要用到一些额外的信息\(u\), 考虑如下分布:
\]
注: \(x \in \mathbb{R}^d, z \in \mathbb{R}^n, u \in \mathbb{R}^m\).
其中,
\]
\]
即假设先验\(z|\mu\)满足的是指数族的分布.
套用VAE的框架:
- encoder:
\]
- decoder:
\]
既估计的后验分布为\(q_{\phi}(z|x,\mu)\), 则ELBO:
\]
Identifiability
\(\sim\)定义: 定义\(\sim\)等价关系如下:
\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\)还是个可逆矩阵, 则
\]
显然, 如果
\]
那么可以说是在线性变换允许范围内是identifiable的.
接下来给出的定理说明了什么时候\(\theta, \tilde{\theta}\)是\(\sim_A\)-identifiable的.
定理: 在前述定义的模型下, 对于\(\theta = (f, T, \lambda)\), 以及任意\(\tilde{\theta} =(\tilde{f}, \tilde{T}, \tilde{\lambda})\)满足
\]
若一下条件成立, 则\(\theta \sim_A \tilde{\theta}\):
若\(\varphi_{\epsilon}\)为\(p_{\epsilon}\)的特征函数(这里即为对于的傅里叶变换), 且\(\varphi_{\epsilon} \not = 0, \: a.e.\).
\(f\)是一个单射.
\(T_{i, j}\)几乎处处可微, 且\((T_{ij})_j(x)\)线性独立, 即
\]
对于\(i=1,\ldots, n\)均成立.
- 存在不同的点\(u^0, \cdots, u^{nk}\), 使得
\]
可逆.
证明流程:
利用条件1, 2证明
=p_{\tilde{T},\tilde{\lambda}}(f^{-1}(x)|u) \mathrm{vol} J_{\tilde{f}^{-1}}(x).
\]
利用条件4证明
\]
利用条件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\), 则
\]
由定义知\(\mathcal{X}_i\)的测度为0.
注: 本文还有一些别的identifiability的讨论, 这里不多赘述.
Variational Autoencoders and Nonlinear ICA: A Unifying Framework的更多相关文章
- Understanding Variational Autoencoders (VAEs)
Understanding Variational Autoencoders (VAEs) 2019-09-29 11:33:18 This blog is from: https://towards ...
- (译) Conditional Variational Autoencoders 条件式变换自编码机
Conditional Variational Autoencoders --- 条件式变换自编码机 Goal of a Variational Autoencoder: 一个 VAE(variati ...
- [Bayesian] “我是bayesian我怕谁”系列 - Variational Autoencoders
本是neural network的内容,但偏偏有个variational打头,那就聊聊.涉及的内容可能比较杂,但终归会 end with VAE. 各个概念的详细解释请点击推荐的链接,本文只是重在理清 ...
- 条件式变分自编码机(Conditional Variational Autoencoders)
Conditional Variational Autoencoders 条件式变换自编码机 摘要: Conditional Variational Autoencoders --- 条件式变换自编码 ...
- 基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)
基于图嵌入的高斯混合变分自编码器的深度聚类 Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedd ...
- Improving Variational Auto-Encoders using Householder Flow
目录 概 主要内容 代码 Tomczak J. and Welling M. Improving Variational Auto-Encoders using Householder Flow. N ...
- Variational Auto-Encoders原理
目录 AE v.s. VAE Generative model VAE v.s. GAN AE v.s. VAE Generative model VAE v.s. GAN
- PP: Time series anomaly detection with variational autoencoders
Problem: unsupervised anomaly detection Model: VAE-reEncoder VAE with two encoders and one decoder. ...
- (zhuan) Variational Autoencoder: Intuition and Implementation
Agustinus Kristiadi's Blog TECH BLOG TRAVEL BLOG PORTFOLIO CONTACT ABOUT Variational Autoencoder: In ...
随机推荐
- OC中的结构体
一.结构体 结构体只能在定义的时候进行初始化 给结构体属性赋值 + 强制转换: 系统并不清楚是数组还是结构体,需要在值前面加上(结构体名称) +定义一个新的结构体,进行直接赋值 + ...
- 测试数据库并发压力的shell脚本
本节内容:一例用于测试数据库并发压力的shell脚本代码. 例子: #!/bin/bash #********************************# #并发后台运行fun # #for w ...
- Google Guava 常用集合方法
/** * Author: momo * Date: 2018/6/7 * Description: */ public class ListTest { public static void mai ...
- maven 是什么?
在了解maven的概念之前,我一直都在项目中使用maven,但是对于maven的了解,只能说连个皮毛都算不上,一直到项目中,自己机械化的deploy项目的时候,发现报错,赶紧报告开发组长,这私服是不是 ...
- Appium获取toast消息(二)
刚接触appium进行移动端设备的UI自动化,在遇到toast消息的时候很是苦恼了一阵,最后通过强大的搜索引擎找到了个相对解决方法,废话不多说,直接贴代码↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ...
- 莫烦python教程学习笔记——validation_curve用于调参
# View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...
- 玩转 Mockjs,前端也能跑的很溜
mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查.在生成数据时,我们就需要能够熟练使用 mock.js 的语法. Mockjs 的语法规范包括两部分:数据模板定 ...
- JavaOOP对象和封装
对象: 前言: 在程序员眼中,世界万物皆为对象.世界上有两种人,一种是懂二进制的人,一种就是不懂二进制的人. 面向对象设计的过程就是抽象的过程. 步骤: 第一步:发现类 第二步:发现类的属性 第三步: ...
- 关于Too many levels of symbolic links和 /usr/bin/env: node: 没有那个文件或目录
由于node装了两遍在运行bower install的时候就会报错Too many levels of symbolic links要卸载其中一个nodejs,卸载的方法: 1. 卸载node npm ...
- 铁人三项(第五赛区)_2018_rop
拿到程序依旧老样子checksec和file一下 可以看到是32位的程序开启了nx保护,将程序放入ida进行查看 shift+f12 看到没有system和binsh等字样,考虑用泄露libc来做这道 ...