李宏毅——Flow-based Generative Model

导语

已经介绍的生成模型

在这里插入图片描述
之前的生成模型的问题
component-by-component问题:什么是最好的顺序;生成的慢
VAE问题:优化的是lower bound,不是最终的目的
GAN问题:训练不稳定

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

数学背景

jacobian Matrix

右下角表示两者的关系。
在这里插入图片描述

Determinant

在这里插入图片描述
determinant的含义:高维空间中的体积
在这里插入图片描述

change of Variable Theorem

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

flow-based generative model

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

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值