CS236 Deep Generative Models Lecture 7
课程主页:https://deepgenerativemodels.github.io/
课件资料:https://github.com/Subhajit135/CS236_DGM,https://github.com/deepgenerativemodels/notes
视频地址:https://www.bilibili.com/video/av81625948?from=search&seid=4636291486683332935
这里回顾CS236 Lecture 7的课程内容,这一讲介绍了Normalizing Flow Models。
Normalizing Flow Models
Simple Prior to Complex Data Distributions
- 理想的概率分布应该有如下特点:
- 解析的概率密度
- 易于采样
- 不幸的是,数据的分布往往更复杂
- 关键思想:利用变量变换的方法将简单分布映射到复杂分布
Change of Variables formula
一维情形:如果$X=f(Z)$并且$f$单调,反函数为$Z=f^{-1}(X)=h(X)$,那么:
一般情形:假设$Z$和$X$的可逆映射为$\mathbf{f}: \mathbb{R}^{n} \mapsto \mathbb{R}^{n}$,$X=\mathbf f (Z), Z= \mathbf f^{-1} (X)$,那么
备注:$X,Z$的维度要相同
Normalizing flow models
考虑观测变量$X$和隐变量$Z$的有向隐变量模型
在normalizing flow model中,$Z$和$X$的之间的映射$\mathbf{f}_{\theta}: \mathbb{R}^{n} \mapsto \mathbb{R}^{n}$是确定性的可逆映射:$X=\mathbf{f}_{\theta}(Z),Z=\mathbf{f}_{\theta}^{-1}(X)$
利用变量变换,$p(x)$的概率分布为:
A Flow of Transformations
- Flow:可逆变换可以复合
Planar flows
Planar flow是可逆变换
该变换的参数为$\theta=(\mathbf{w}, \mathbf{u}, b)$,其中$h(.)$为非线性函数
雅克比矩阵为
注意上述行列式要保证非零,例如$h=\tanh ()$
Learning and Inference
- 在数据集$\mathcal D$通过最大似然法学习
Triangular Jacobian
注意计算逆矩阵需要需要$O(n^3)$的时间复杂度,所以一个自然的想法是优化这点,这样就要选择特殊的结构。
假设$x_{i}=f_{i}(\mathbf{z})$只依赖于$\mathbf{z} _{\leq i}$,那么
在该情形下,雅克比矩阵为下三角阵,这样计算逆矩阵只要$O(n)$的时间复杂度。
上三角情形同理。