读GAN文章
1.直接丢上算法细节
- 包括生成器G 和 判别器D
- 首先训练D(红色框部分),D来判别一个数据是真实数据的概率,值越大,说明D的输入X为真实数据的概率越大。对于D来说,有两个输入,
- 真实数据样本,即算法中提到的x(1),x(2),...
- G生成的数据,即算法中提到的z(1),z(2)
- 那么D就需要使得D(x)越大越好; 使得D(G(z))越小越好,1-D(G(z)) 越大越好,所以采用了梯度上升的方法去更新D的参数
- 再者训练G(蓝色框部分),当D固定的时候,G生成的数据需要骗过D,骗这个动作很重要,所以要使得生成的数据尽量逼近真实的,所以要使得D(G(z))越大,那么1-D(G(z))越小越好
- 试验中,k设置为1,采用SGD
2.G的分布全局最优
-
,这个比较好理解,生成的数据跟从真实数据分布中抽出的数据一模一样是最好的。
-
从公式上进行推导,首先,固定G,最大化D
这个公司对D(x) 进行求导,就可以得到D的最优解
然后把这个最优解,代入目标函数,得到
我们要找到一个G,使得 minC(G),当的时候取到,实际上,上面的式子自己手动推导下可以转换为:
即
而JSD 是非负的,所以C(G) 最小值的是-log4,当
的时候。