李宏毅——Flow-based Generative Model

导语

已经介绍的生成模型

李宏毅——Flow-based Generative Model
之前的生成模型的问题
component-by-component问题:什么是最好的顺序;生成的慢
VAE问题:优化的是lower bound,不是最终的目的
GAN问题:训练不稳定

李宏毅——Flow-based Generative Model
generator的问题
G是一个网络,定义了一个概率分布
比如:z是来自于Normal Distribution,但是得到了p是个其他的分布
我们希望这个Pg和真实数据的分布越接近越好
可以用最大似然函数的方式让它接近。
李宏毅——Flow-based Generative Model
Pg通常比较复杂,可以用flow-based model来直接优化目标。
李宏毅——Flow-based Generative Model

数学背景

jacobian Matrix

右下角表示两者的关系。
李宏毅——Flow-based Generative Model

Determinant

李宏毅——Flow-based Generative Model
determinant的含义:高维空间中的体积
李宏毅——Flow-based Generative Model

change of Variable Theorem

z的分布是上图,z的分布是下图
探究他们之间的关系,就是研究generator
李宏毅——Flow-based Generative Model
例子:z的分布是这样的
x=2z+1,那么px的分布是下面这样的。
p(x)=1/2*pie(z)
李宏毅——Flow-based Generative Model
在更复杂的情况下:
在deltaz的情况下,因为非常小,可以视为uniform的分布。
蓝色方块和绿色方块有相同的面积。
要加绝对值,因为dz/dx可能为正也可能为负
李宏毅——Flow-based Generative Model
在二维的情况下
李宏毅——Flow-based Generative Model
李宏毅——Flow-based Generative Model

flow-based generative model

假设做image的生成,输入的z也应该是1001003的,但是不能保证G可逆,G的能力是有限的。
李宏毅——Flow-based Generative Model
一个G不够,可以加更多吗?
李宏毅——Flow-based Generative Model
如何训练呢?
训练时,训练G-1,实际生成时使用G。
pie是Normal分布,所以使得zi最小,值最大。但是如果z总是0的话,JG-1就总是0,后面的项就会非常大
李宏毅——Flow-based Generative Model
使用coupling layer,被用在两个知名的flow-base模型NICE和NVP中
把z拆成两组,前d维和后面的部分,x的前d维等于z的前d维直接复制过去。
用一个functionF把前d维变化成后面的维数,另一个function也变成后面的维数
李宏毅——Flow-based Generative Model
求inverse也比较简单,看红线就知道
李宏毅——Flow-based Generative Model
求jacobian的determinant可以看图,非常巧妙。
左上角的是I,右上角,因为浅绿色和浅蓝色的没有关系,所以是0,左下角的没意义,因为求determinant时右上角是O,可以视为左上角和右下角的乘积。右下角的是对角线的。
因为只有对角线的有关系,其他的没有关系。
李宏毅——Flow-based Generative Model
把coupling layer叠起来,编程一个完整的网络
但是有个问题,如果前半段如果都是直接复制的话,等于最终什么都没有做。
所以要做一些手脚,比如下面的做法。
李宏毅——Flow-based Generative Model
如果做的是图像的生成的话,拆法有两种,一是根据横轴和纵轴来分,二是根据层来拆。
李宏毅——Flow-based Generative Model
或者用convolution的方法,比如GLOW。
w可以shuffle不同的channel。w可以视为一个G。
李宏毅——Flow-based Generative Model
李宏毅——Flow-based Generative Model
得到的jacobian是下面的
李宏毅——Flow-based Generative Model
demo
李宏毅——Flow-based Generative Model
李宏毅——Flow-based Generative Model
李宏毅——Flow-based Generative Model
glow的更多做法
语音合成
李宏毅——Flow-based Generative Model