GAN网络的理解

工作中会用到GAN网络,现将其基本思路总结如下。
GAN网络的核心思想
GAN的核心思想在于对抗,有两部分模型构成,分别是生成模型(generator model)和判别模型(discriminator model)。生成模型用于生成一个逼真的样本,判别模型用于判断模型的输入是真是假。通俗来讲,就是生成模型要不断提升自己的造假本领,最终达到骗过判别模型的目的。而判别模型则不断提升自己的判别能力,达到辨别真假的目的,这也就形成了对抗。
生成模型和判别模型处于一个矛盾的关系,那么对抗的结果究竟是什么,这个要取决于我们的目的是什么,比如说,我们的目的是生成逼真的人脸图像,那么自然就设计生成网络博弈获胜了。
GAN是如何实现的:
在理解GAN网络的一些基本思想后,我们应该如何根据这一思想去设计实现GAN呢?
首先,我们有两个网络模型,生成网络与判别网络,这两个网络是相对独立的,我们要找到的,是如何实现这个博弈的过程,也就是如何对模型进行训练。我们采用的大方法叫做单独交替迭代训练
单独交替迭代训练
1.首先,我们有一个简单的生成网络模型(当然未训练时效果很差),那么我们给这个模型一个随机的输入,便会输出得到一个假的样本集,而真的样本集我们本身就有,所以我们得到了真假数据集。
2.在得到真假数据集之后,我们开始对判别模型进行训练,训练过程就是一个有监督的二分类问题,即给定一个样本,能判断出其是真实存在的(真样本),还是利用生成网络生成的(假样本)。
3.在完成判定模型的训练之后,我们要提升生成模型的造假能力,我们将生成网络与训练好的判定网络串接,我们的目标是生成可以迷惑判定模型的图像,所以我们给生成网络一个随机输入,损失函数是判定网络的输出是否为真(是否达到迷惑的效果),根据损失函数,对生成网络的参数进行更新,(注意:这里判定网络的参数是不改变的,因为判定网络是用来评价生成网络的造假能力,计算损失的)
4.完成生成网络的训练之后,再次给定随机输入,得到新的假的数据集,将最新得到真假样本输入给判定网络进行训练,从而完成对判定网络的再一次训练。
5.不断重复上述过程,直到满足设计者设定的训练次数。

GAN网络的损失函数
在上篇文章中,我们对GAN网路进行了通俗的理解,这篇文章将进一步分析GAN网络论文鼻祖Generative Adversarial Net中提到的损失函数,话不多说,直接上公式:
在这里插入图片描述
这个公式看似复杂,其实只要我们理解了GAN的博弈过程,就可以很清楚的了解这个公式的含义了,我们直到,GAN是单独交替迭代训练的,所以这个目标函数也是分别对判别器和生成器进行优化的,首先对判别器进行优化,表达形式如下:
在这里插入图片描述其中D(X)表示对真实的样本进行判别,这里,我们希望它的判别结果越接近于1越好,所以损失函数为log(D(x)),而z是随机的输入,G(z)表示生成的样本,对于生成的样本,我们希望判别器的判别结果D(G(z))越接近于0越好,也就是让总数值最大,所以总体表达形式如上所示。

在这里插入图片描述

在完成对判别模型的优化之后,便是对生成模型进行优化,在这里,生成模型的优化很简单,只需要让判别的结果D(G(z))接近于1就可以了,也就是让总数值最小。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值