李宏毅 ML2021 学习笔记 - W6 Generative Model

目录

1. 生成式对抗网络

1. Network as Generator

1.1. 为什么需要输入一个分布?

1.2. Unconditional generation

2. Theory behind GAN

2.1. Objective

2.2. 如何计算两个distribution之间的divergence?

2.3. Discriminator

3. 训练GAN的技巧

3.1. WGAN

 4. generator效能评估与条件式生成

4.1. Evaluation of GAN

4.2. Conditional Generation

 4.3. Unpaired Data

2. 其他generative model

1. VAE

1.1. Auto-encoder

 1.2. VAE

1.3. Why VAE? 

1.4. Gaussian Mixture Model

1.5. Problems of VAE

2. Flow-based model


1. 生成式对抗网络

1. Network as Generator

1.1. 为什么需要输入一个分布?

1.2. Unconditional generation

generator把一个简单的distribution对应到一个复杂的distribution

2. Theory behind GAN

2.1. Objective

找一个Generator,使得生成数据的分布与目标数据的分布越接近越好

2.2. 如何计算两个distribution之间的divergence?

→ 只要能够从两个distribution中sample data,就可以估测divergence → Discriminator

2.3. Discriminator

*熵和交叉熵公式:

Entropy=\mathbb{E}_{x\sim P}[-log(P(x))]

Cross Entropy=\mathbb{E}_{x\sim P}[-log(Q(x))]

其中maximum objective value与JS divergence相关 

直觉上,两个分布接近(small divergence)时,判别器难以区别数据,V(D,G) 的最大值较小

 也可以使用其他divergence,需要重新定义objective function(ref: FGAN)

3. 训练GAN的技巧

3.1. WGAN

JSdivergence的问题:

对于没有重叠的distributions, JS divergence算出来都是log2,training loss不能给很多资讯

更直观来说,如果两个distribution不重叠,做binary classifier时正确率总是可以达到100%

 → Wasserstein distance

求解 \max_{D\in1-Lipschitz}{E_{y\sim P_{data}}[D(y)]-E_{y\sim P_{G}}[D(y)]},解得的值就是Wasserstein distance

实作中的一些方法:

 4. generator效能评估与条件式生成

4.1. Evaluation of GAN

  • Diversity-Mode Collapse

generator抓到discriminator的盲点。(还没有解决)(可以记录train point)

  • Diversity-Mode Dropping (还没有本质上的解决)

 Inception Score

用inception network量一下quality和Diversity

  • Frechet Inception Distance (FID)(越小越好)

拿Inception network 进入softmax之前的HiddenLayer的输出,假设分布是Gaussian

  •  To learn more

4.2. Conditional Generation

例如:Text to image

训练的时候只有positive和negative example出来的结果并不会很好,还需要一种不好的情况是好的图片 + 不匹配的标签,实做会打乱图片和标签

 

 4.3. Unpaired Data

例如:风格转换

理论上,没有办法保证输入和输出很接近。举一个极端的例子,G_{x\rightarrow y}可以学到翻转图片,G_{y \rightarrow x}可以学到再次翻转图片,所以cycle consistency并没有办法保证机器不会学到一些奇怪的转换。但是在实做上,通常输入输出很接近,即使没有使用cycle gan的结构。

2. 其他generative model

1. VAE

1.1. Auto-encoder

 1.2. VAE

exp(\sigma)表示variance,因为variance总是正值所以用exp

σ=0的时候 exp(\sigma)-(1+\sigma) 最小,exp(\sigma)=1 → variance为1,所以minimize这个值让variance不能太小。m_i^2L_2 Regularization,为了避免模型overfitting

1.3. Why VAE? 

加入noise后,又因为variance不会太小,红点所在位置会同时对应到满月和半月 ,但因为要满足mean square error,所以会生成介于满月半月之间的月亮。

1.4. Gaussian Mixture Model

 Even though z si from N(0,I), P(x) can be very complex

为了estimate\mu (z),\sigma (z), 我们maximize Likelihood: L=\sum logP(x)

 所以

 

maximizeq(z|x)的时候,P(x)与其无关所以不会变,所以KL divergence会越来越小。最后q(z|x)和p(z|x)越来越接近 

 所以,要minimize KL(q(z|x)||P(z)),就是让q(z|x)接近标准正态分布,也就是黄框里的式子

 另外,要maximize第二项

1.5. Problems of VAE

2. Flow-based model

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值