GAN生成对抗网络原理推导(附加代码)

一、原理        

GAN(Generative Adversarial Network,生成对抗网络)是一种深度学习模型,由两个神经网络组成:生成器(Generator)和判别器(Discriminator)。这两个网络彼此对抗,通过对抗训练的方式来学习生成逼真的数据样本。

1. 生成器(Generator):生成器的目标是学习生成与真实数据样本相似的数据。它接收一个随机噪声或其他形式的输入,然后通过一系列的神经网络层逐步将这个输入转换为所需的输出数据。生成器的目标是使其生成的数据尽可能地接近真实数据分布。

2. 判别器(Discriminator):判别器的任务是区分生成器生成的假数据和真实数据。它接收生成器生成的样本和真实数据样本作为输入,并输出一个概率,表示输入是真实数据的概率。判别器的目标是将生成器生成的假数据和真实数据区分开来。

GAN的训练过程基于两个网络之间的对抗。在训练过程中,生成器试图欺骗判别器,生成尽可能逼真的数据样本,而判别器则试图区分生成器生成的假数据和真实数据。通过这种对抗性的训练,生成器和判别器逐渐改进自己的性能,最终生成器可以生成与真实数据相似的样本。

GAN的训练过程可以概括为以下步骤:

1. 初始化网络参数:生成器和判别器的参数被随机初始化。

2. 交替训练:
   (生成器训练):生成器接收随机噪声作为输入,并生成数据样本。生成器的目标是使生成的样本尽可能地接近真实数据。生成器生成的样本通过判别器,然后根据判别器的反馈来更新生成器的参数。
   (判别器训练):判别器接收真实数据样本和生成器生成的假数据样本,并尝试将它们区分开来。判别器的目标是正确地分类真实数据和假数据。判别器的参数通过梯度下降来更新,以减少真实数据和假数据之间的分类误差。

3. 对抗训练:生成器和判别器交替训练,相互对抗,直到达到某个停止条件(如训练轮数达到预设值)。

4. 评估生成器:生成器训练完成后,可以使用它来生成新的数据样本。生成器生成的样本可以通过一些指标来评估其质量,例如与真实数据的相似度或用于某个任务的性能。

二、目标

我们的训练数据x xx是来自真实分布对应图中 P ( d a t a ) 

我们记作Pdata,训练数据都是从Pdata中采样得来(图中上半部分的x)。

而我们从简单的概率分布中抽样P(z)如正态分布 ,让所得的样本经过一个神经网络 G(z),得到一个新的样本x 这个样本就来自我们的需要求解的概率分布,我们记作P g。

然后将两个x给神经网络D(x)判断真伪,让它区分这个x是来自P data 还是P g,其输出样本来自Pdata的概率。依据所得信息使用梯度下降更新神经网络参数,G(z)也是如此。

而G(z)被称为生成器( 用于生成样本 ) ,D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值