GAN:生成对抗网络 Generative Adversarial Networks

举报
代码的路 发表于 2023/01/12 09:44:45 2023/01/12
【摘要】 原文链接 1 原理对于生成对抗网络GAN,一个简单的理解是可以将其看做博弈的过程,我们可以将生成模型和判别模型看作博弈的双方,比如在犯罪分子造假币和警察识别假币的过程中:生成模型G相当于制造假币的一方,其目的是根据看到的钱币情况和警察的识别技术,去尽量生成更加真实的、警察识别不出的假币。判别模型D相当于识别假币的一方,其目的是尽可能的识别出犯罪分子制造的假币。 这样通过造假者和识假者双方的较...

原文链接

1 原理

对于生成对抗网络GAN,一个简单的理解是可以将其看做博弈的过程,我们可以将生成模型和判别模型看作博弈的双方,比如在犯罪分子造假币和警察识别假币的过程中:

  • 生成模型G相当于制造假币的一方,其目的是根据看到的钱币情况和警察的识别技术,去尽量生成更加真实的、警察识别不出的假币。
  • 判别模型D相当于识别假币的一方,其目的是尽可能的识别出犯罪分子制造的假币。 这样通过造假者和识假者双方的较量和朝目的的改进,使得最后能达到生成模型能尽可能真的钱币、识假者判断不出真假的纳什均衡效果(真假币概率都为0.5)。

2 训练

生成器G的目标是欺骗鉴别器D,其目标是能够区分真实数据和生成数据。因此,在训练生成器时,我们希望误差最大化,同时我们想要使鉴别器的误差最小化。

2.1 判别模型

目标函数是:

m a x D E x p r [ l o g D ( x ) ] + E z p g [ l o g ( 1 D ( x ) ) ] max_D E_{x-p_r} [logD(x)]+E_{z-p_g } [log(1-D(x))]

其中D(x)是判别模型的输出结果,是一个0-1范围内的实数值,用来判断图片是真实图片的概率,其中Pr和Pg分别代表真实图像的分布与生成图像的数据分布情况,可以看出目标函数是找到使得后面两个式子之和最大的判别模型函数D(z),后面两个式子是一个加和形式,其中:

E x p r [ l o g D ( x ) ] E_{x-p_r} [logD(x)]

是指使得真实数据放入到判别模型D(x)输出的计算值和整个式子值尽可能大。

E z p g [ l o g ( 1 D ( x ) ) ] E_{z-p_g } [log(1-D(x))]

指使得造假数据放入到判别模型D(x)输出的计算值尽可能小和整个式子值尽可能大。

这样整合下来就是使得目标函数尽可能大,因此在训练时就可以根据目标函数进行梯度提升。

2.2 生成模型

目标是让判别模型无法区分真实图片和生成图片,其目标函数是:

m i n g ( m a x D E x p r [ l o g D ( x ) ] + E z p g [ l o g ( 1 D ( x ) ) ] ) min_g (max_D E_{x-p_r} [logD(x)]+E_{z-p_g } [log(1-D(x))])

也就是找到生成函数g(z)使得生成模型的目标函数尽量小。

学习更多编程知识,请关注我的公众号:

代码的路

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。