首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Conditional Adversarial Nets 详解

Conditional Adversarial Nets 详解

作者头像
zeekling
发布2022-06-17 16:34:32
发布2022-06-17 16:34:32
36400
代码可运行
举报
运行总次数:0
代码可运行

简介

本文提出在利用 GAN(对抗网络)的方法时,在生成模型G和判别模型D中都加入条件信息来引导模型的训练,并将这种方法应用于跨模态问题,例如图像自动标注等。

Generative Adversarial Nets

GAN,生成对抗式网络是是Ian Goodfellow经典的大作,引起了很大的轰动,后面的各种GAN也层出不穷。追根溯源,为了了解GAN,需要从这篇开山之作说起。那GAN到底是什么?简单来说,GAN由两个模型组成,一个是生成模型G,一个是判别模型D,G负责从给定训练数据中学习数据的概率分布而D负责判别G生成出来的数据是不是符合真实数据的样本概率分布。两个网络是非合作关系,对于D来说,是要最大化能够判别出G生成的数据是假的的概率,而对于G来说,是要最小化被D判别出来的概率,在这个不断博弈的过程中,两个模型的能力都在变强,最后得到一个均衡。

模型G和D同时训练:固定判别模型D,调整G的参数使得 log(1 − D(G(z))的期望最小化;固定生成模型G,调整D的参数使得logD(X) + log(1 − D(G(z)))的期望最大化。这个优化过程可以归结为一个“二元极小极大博弈(minimax two-player game)”问题:

代码语言:javascript
代码运行次数:0
运行
复制
     D(x)为分类器,  G(x)为生成器
     D(x)的输入为真实数据或生成数据, G(x)的输入为随机高斯噪声z
     对于D(x)来说应该最大化损失函数
     对于G(x)来说应该最小化损失函数
     相当于两个模块的博弈,而最后D(x)的预测概率为1/2则是达到了纳什均衡,也是最优解

算法训练过程

Conditional Adversarial Nets

由于GAN这种不需要预先建模的方法太过自由,如果对于较大图片,较多像素的情形,这种基于GAN的方法就太不可控了。

为了解决上述问题,自然就想到给GAN模型加入一些条件约束,也就有了本文的工作Conditional Generative Adversarial Nets(CGAN)。在生成模型G和判别模型D中同时加入条件约束y来引导数据的生成过程。条件可以是任何补充的信息,如类标签,其它模态的数据等,这样使得GAN能够更好地被应用于跨模态问题,例如图像自动标注。

把噪声z和条件y作为输入同时送进生成器,生成跨域向量,再通过非线性函数映射到数据空间。

把数据x和条件y作为输入同时送进判别器,生成跨域向量,并进一步判断x是真实训练数据的概率。 算法简单流程:

条件对抗网络损失函数:

参考文档

Generative Adversarial Nets Conditional Generative Adversarial Nets

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.10.19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • Generative Adversarial Nets
  • Conditional Adversarial Nets
  • 参考文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档