【机器学习】生成对抗网络(GAN)

本文为机器学习的学习总结,讲解生成对抗网络(GAN)。欢迎在评论区与我交流 😃

导论

GAN 的基本概念

在 GAN 中,我们需要训练一个生成器(Generator),输入一个向量,让机器生成一些影像或诗词:

在这里插入图片描述

条件生成器输入已知的东西,而不是随机的向量,例如输入文字,让机器输出对的图片。条件生成器有很多应用,之后会详细讲解。

生成器是一个神经网络,即一个函数。在影像生成中,输出的图片就是高维向量。例如输入向量,输出头像,向量每一维代表一个特征:

在这里插入图片描述

与此同时,我们还会训练识别器(discriminator),识别器也是一个神经网络。例如输入图片,输出代表真实度的数值。

例如下面的例子,枯叶蝶是生成器,麻雀是识别器。枯叶蝶为了避免被捕食会不断进化,而麻雀为了捕食猎物也会不断进化:

在这里插入图片描述

识别器判断图片生成器生成的还是真实的图片,此时标准可能是是否为彩色等简单的标准。下一代的生成器想办法骗过第一代的识别器,从而进化到第二代;然后识别器也进化到第二代,学会判断第二代生成器与真实图片的差异。如此往复,不断进化。像天敌和被捕食者的关系。

当然对抗关系只是一种比喻,从另一个角度看也可以是互助的关系。例如学生画画(生成器),老师告诉学生如何画(识别器)。老师的标准不断严格,学生的水平也不断提高。

在这里插入图片描述

那么生成器为什么不自己学?识别器为什么不自己做?这两个问题我们后面会讲到。

这里用语言描述算法步骤:

首先随机初始化生成器和识别器。

在每次迭代中:

  1. 固定生成器 G G G,更新识别器参数。数据库给出范例,训练目标是:数据库范例输入时,输出 1;生成器图像输入时,输出 0.
  2. 固定识别器 D D D,调整生成器参数。生成器需要骗过识别器,希望生成器输出的图像,识别器能给高分,从而使生成的图像更真实。

实际中将生成器和识别器的神经网络和起来形成一个更大的神经网络,其中中间某层(隐藏层)输出一个图像。调参时固定一部分层的参数,调另一部分。

然后我们对算法进行数学描述:

初始化 D D D 的参数 θ d \theta_d θd G G G 的参数 θ g \theta_g θg

在每次迭代中:

更新识别器参数 θ d \theta_d θd

  1. 在数据库中选取 m m m 个样本 { x 1 , … , x m } \{x^1,…,x^m\} { x1,,xm}

  2. 从随机分布中选取 m m m 个样本 { z 1 , … , z m } \{z^1,…,z^m\} { z1,,zm}

  3. 计算生成器结果(产生图片) { x ~ 1 , … , x ~ m } \{\tilde{x}^1,…,\tilde{x}^m\} { x~

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成对抗网络GAN)是一种机器学习模型,由两个互相竞争的神经网络组成:生成器(Generator)和判别器(Discriminator)。GAN的目标是通过训练生成器和判别器来使生成器能够生成逼真的数据样本。 生成器的作用是接收一个随机噪声向量作为输入,并将其转换为与真实数据样本相似的输出。判别器则负责判断输入数据是真实数据还是由生成器生成的假数据。两个网络通过对抗训练的方式相互竞争,生成器试图欺骗判别器,而判别器则试图准确地区分真实数据和生成数据GAN的训练过程可以简单描述为以下几个步骤: 1. 生成器接收一个随机噪声向量作为输入,并生成一些假数据样本。 2. 判别器接收真实数据样本和生成器生成的假数据样本,并尝试区分它们。 3. 根据判别器的输出,计算生成器生成的假数据样本与真实数据样本之间的差异,并更新生成器的参数,使其生成更逼真的数据。 4. 同时,根据判别器的输出,计算判别器对真实数据样本和生成器生成的假数据样本的准确性,并更新判别器的参数,使其更好地区分真假数据。 5. 重复以上步骤,直到生成器能够生成逼真的数据样本,判别器无法准确区分真假数据。 通过不断迭代训练,生成器和判别器的性能逐渐提升,最终生成器可以生成与真实数据样本非常相似的数据GAN在图像生成、图像修复、图像转换等领域有广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值