主要内容来自万字综述之生成对抗网络(GAN)
一、直观感受
首先,用一个简单有趣的 GAN🌰 来感受一下。其中向量vector类似mf模型的隐向量,每个维度“可以”代表一种解释性强的特征。
GAN(Generative Adversarial Networks) 接下来,我们需要解决的问题就是:
- 1.如何定义生成器(我)和判别器(王教授)?
- 2.如何训练?
- 3.训练好之后怎么用?
1. 如何定义
损失函数
2. 如何训练
固定生成器,训练判别器,最小化交叉熵:我画的画不变,训练王教授的识别水平 固定判别器,训练生成器,最小化log(1 − D(G(z))):王教授识别水平不变,训练我的画功
把这个我和王教授的说法稍稍改变一下:我和王教授开始都是菜鸡(随机初始化),通过对抗训练,我逐渐成为造假大师,王教授逐渐成为王教授 王教授也不是天生就是大神
3. 训练好之后怎么用
二、数学预警
1. KL散度和JS散度:衡量两个分布的距离
非对称,A到B的距离不等于B到A的距离
对称,并且取值范围在[0,1]之间