无监督学习(unsupervised learning) 5.生成模型
1 PixelRNN
- 每次生成一个像素,下一个像素由之前所有的pixel决定
- 应用:image、audio
- tips:每个像素用 1-of-N encoding feature 来表示——类似的颜色先进行聚类(得到167个不同的颜色)
2 Variational Auto-Encoder(VAE)
- 变分自编码器:结构类似,加了一些trick
- encoder之后输出两个向量,from a normal distribution,与这两个向量最内积,作和成为mode,decoder部分 minize reconstruction error。
-
min∑i=13(exp(σi)−(1+σi)+m2i)
-
min∑i=13(exp(σi)−(1+σi)+m2i)
应用:画神奇宝贝、写诗
Gaussian Mixture Model:估计采用的模型是几个高斯模型的加权和 P(x)=∑mP(m)P(x|m)
- Maximizing Likelihood:
L=∑xlogP(x)
-
logP(x)=∫zq(z|x)logP(x)dz=∫zq(z|x)log(P(z,x)q(z|x)P(z|x)q(z|x))dz
=∫zq(z|x)log(P(z,x)q(z|x))dz+∫zq(z|x)log(q(z|x)P(z|x))dz(KL散度)≥∫zq(z|x)log(P(x|z)P(z)q(z|x))dz - logP(x)=Lb+KL(q(z|x)||P(z|x))
- Find P(x|z),q(z|x) max Lb
- 最终 q(z|x) 成为 p(z|x) 的估计
- Lb=−KL(q(z|x)||P(z))+∫zq(z|x)logP(x|z) → minKL(q(z|x)||P(z))+max∫zq(z|x)logP(x|z)
-
logP(x)=∫zq(z|x)logP(x)dz=∫zq(z|x)log(P(z,x)q(z|x)P(z|x)q(z|x))dz
- Maximizing Likelihood:
L=∑xlogP(x)
VAE的问题:并没有学习真实的图片,VAE产生的只是数据库中图片的线性组合,或只是模仿。没有办法产生新的图片。
3 Generative Adversarial Network(GAN)
- Yang LeCun高度评价:近十年最有趣的想法。
- GAN-Discriminator:VAE生成一些假的图片标注为0,和一些真的图片标注为1放在一起训练,目标分辨图片的真假。
- GAN-Generator:通过Genator生成图片让Discriminator分辨,争取骗过它。梯度下降调整Generator的参数(锁住Discriminator的参数)
- GANs优化十分困难!!!因为没有很好的信号,没有评价generator的函数(loss函数)