您的位置:首页 > 理论基础 > 计算机网络

生成对抗网络(GAN)学习笔记——GAN是如何来训练的?

2020-08-04 16:04 453 查看

    GAN有两个网络模型,生成网络和判别网络,这两个网络是相对独立的,那么如何对这两个模型进行训练呢? 采用生成器和判别器交替迭代训练(两者博弈的过程)。

 

交替迭代训练


 1.首先,我们得到初始的真假数据集。给生成器一个随机的输入(初始化),生成器输出一个假的样本集(未训练时效果非常差,也就是非常假),同时我们有真实的样本集(标签数据),于是我们得到了真假数据集。
 
2.有了真假数据集后,固定生成器的参数不变,对判别器进行训练。训练过程是一个有监督的二分类问题,即给定一个样本,训练判别器能判断出其是真样本还是生成器生成的假样本。

3.完成判别器的训练后,我们要提升生成器的造假能力(因为一开始的数据太假了),我们将生成器与前一步训练好的判别器串接,固定判别器的参数不变,对生成器进行训练。给生成器一个随机输入,损失函数是判别器的输出是否为真,根据损失函数,对生成器的参数进行更新。
    
4.完成生成器的训练后,再次固定生成器的参数不变,对判别器进行训练。给生成器随机输入,得到新的假的数据集(此时的假样本比第1步生成的假样本要真一些,因为生成器经过了一轮优化),将最新得到真假样本输入给判别器进行训练,从而完成对判别器的再一次优化训练。

5.不断重复上述过程,直到满足设计者设定的训练次数,此时生成器会生成更真的数据,判别器有更好的鉴别真假的能力。


传统GAN损失函数

 

首先对判别器D进行优化(固定生成器G的参数),损失函数如下所示:


表示真实数据x输入判别器后的输出,训练判别器时我们希望这一项趋近于1,z表示随机输入生成器的数据, 表示生成器生成的假样本我们希望判别器将其判别为假,即训练判别器时 趋近于0。

对生成器G进行优化(固定判别器D的参数),损失函数如下所示:

我们希望生成器能够生成令判别器判别为真的假数据,即“欺骗判别器”,所以训练生成器时我们希望 趋近于1。

 

以上就是生成对抗网络的训练过程啦~希望能够解答小伙伴们的疑惑!

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: