GAN 学习笔记
生成模型
什么是生成模型?
- GMM: 用来做聚类,(非监督学习)
- NB(朴素贝叶斯):(监督学习,可以用来做垃圾邮件分类)
- Logistics 回归是生成模型吗?No!
生成模型与解决的任务之间没有必然的联系,关注的是样本本身。对于监督学习\(p(x, y)\) , 非监督学习 \(p(x,z)\) , 有些模型甚至仅用 \(X\) , 成为 Autoregression model 。
GAN(生成式对抗网络)
- 工艺大师的目的:成为高水平,可以以假乱真的大师。($P_g \rightarrow P_d $)
如果用统计模型去刻画这个模型,如何去表示?模型中的生成器和判别器可以通过一些模型去表示。
GAN的流程:
- Initialize the generator and dicriminator
- In each traning iteration
- Step 1 : Fixed generator G , and update discriminator D.
- Step 2 : Fixed Discriminator D , and update generator G ;
Auto - Encoder
graph LR A[Random Generator] -->C(N.N) F(A vector as code) --> C(N.N Decoder) C --> D[N.N Decoder] -->G[Image]VAE
这里会对 \(\sigma\) 进行限制:
\[\min ~ \sum_{i} ^{3} \left[ exp(\sigma_{i}) - (1+\sigma_{i}) + m_{i}^{2} \right] \]VAE存在着一些问题:它不能真的尝试去模拟真的图像
GAN——数学表示
数学符号:
-
\(\{x_{i}\}_{i}^{N}\) 样本数据
-
\(P_{data}:\) Population Density
-
\(P_g(x;\theta_{g}):\) 生成模型的density; 可以用
NN
进行逼近 -
\(z \sim P_{Z}(Z)\) , Proposed Density,一般用来生成 \(\tilde{x}_{i}\)
-
\(D(Z) = D(\tilde{x},\theta_{d}):\) 表示 Discrimination 识别是否是“国宝”的概率,越接近于1,越可能是国宝
-
\(\tilde{x} = G(z;\theta_g)\)
对于高专家来说:
- 如果 \(x\) 是来自于 \(P_{data}\) , 我们可以发现 \(D(x;\theta_{d})\)是较大的 \(\Longrightarrow\) \(\log(D(x;\theta_{d}))\) 是较大点的;
- 如果 \(x\) 是来自于 \(P_{generator}\) , 我们可以发现 \(D(x;\theta_{d})\)是较小的 \(\Longrightarrow\) \(1 - D(x;\theta_{d})\)是较大点的\(\Longrightarrow\) \(\log(1 -D(G(Z))\)是较大的;
所以对于高专家的目标函数为:
\[\max_{D} \rm E_{x \sim P_{data}} [~\log P(x)~] + E_{z \sim P_{z}} [~ \log (1 - D(Z))~] \]对于高级技师来说,想以假乱真:
- 如果 \(x\) 是来自于 \(P_{generative}\) , 我们可以高级技师希望 \(D(x;\theta_{d})\)是较大的 \(\Longrightarrow\) \(\log(1 -D(G(Z))\)是较小的;
所以在这个体系中,总的目标为:
\[\min_{G} \max_{D} ~ \rm E_{x \sim P_{data}} [~\log P(x)~] + E_{z \sim P_{z}} [~ \log (1 - D(Z))~] \]小结:GAN的复杂度在于模型的学习,我们并没有直接面对\(P_g (x , \theta_{g})\) ,而是用神经网络去逼近\(P_g (x , \theta_{g})\) ,所以GAN是一种 Implict Density Model 。