课程主页: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)$的时间复杂度。

上三角情形同理。