【论文阅读】(CGAN)Conditional Generative Adversarial Nets

news2024/11/19 4:28:58

 论文地址:[1411.1784] Conditional Generative Adversarial Nets (arxiv.org)

- 条件生成式对抗网络;

解读:

这篇论文中的Conditional GAN和原生GAN在结构上没有太大差别,时间也是紧随着原生GAN出来的,它的思想应该后续很多GAN网络的基础。简单来说,原生的GAN是无监督的,包括DCGAN,输出是完全随机的,比如在人脸上训练好的网络,最后生成什么样的人脸是完全没办法控制的,所以在这篇文章中,作者在输入的时候加入了条件(类别标签或者其他模态的信息),比如在MNIST训练好的网络,可以指定生成某一个具体数字的图像,这就成了有监督的GAN。同时,在文章中,作者还使用网络进行了图像自动标注。

一、本文做的工作

介绍了GAN的条件版本:Conditional GAN。通过简单地为数据增加label y进行构造,G和D的输入都加上了label。本文做了两个基于条件GAN的实验:1、根据类标签生成数字,(以类标签作为条件)使用MNIST手写数据集。2、演示了如何使用该模型来学习一个多模态模型,并提供了一个应用于图像标记的初步示例,在其中演示了该方法如何生成不属于训练标签的描述性标记。(利用CGAN自动为图像打标签)

二、介绍

简单的介绍GAN的优势;传统的Unconditioned GAN不能控制生成器生成数据的模式(mode),为模型加上额外的信息作为条件,可以引导数据生成过程。条件信息可以基于图像修补的部分,或者数据的多模态信息。CGAN可以应用于图像修补,多模态深度学习。

Notes: 多模态深度学习是深度学习中的一类特殊问题.,多模态是在输入的类型上有了改变,指多个类型的输入。例如: 通过红外,图像,声波等多种形态的输入,来预测场景中是否有人存在,或者做多类型的标注问题。多模态信息融合可以用到目标检测上。

三、相关工作

图像标记的多模式学习的两个挑战及可能的解决方法:

  • 庞大的预测输出类别
  • 大部分工作集中在输入输出一对一映射(但实际中,存在一对多的映射。比如一张图片由于不同人来标记有不同的注释但是描述的都是同一张图片。)

解决方法:

  • 帮助解决第一个问题的方法之一是利用来自其他模式的额外信息。
  • 解决第二个问题的一种方法是使用条件概率生成模型,将输入作为条件变量,将一对多映射实例化为条件预测分布。(在后面CGAN的loss函数上可以体现出来。)

四、CGAN网络结构

如果生成器G和鉴别器D都以一些额外的信息y为条件,则生成对抗网络可以扩展到条件模型。y可以是任何类型的辅助信息,例如类标签或来自其他模式的数据。我们可以通过输入y到鉴别器和生成器作为额外的输入层来实现条件设置。在生成器中,先前的输入噪声p(z)和y被组合在联合隐藏表示中。在鉴别器D中,x和y组合在一起作为输入,送到判别函数。

可以看到,和原始GAN一样,整体还是基于多层感知器。在原生GAN中,判别器的输入是训练样本x,生成器的的输入是噪声z,在conditional GAN中,生成器和判别器的输入都多了一个y,这个y就是那个条件。以手写字符数据集MNIST为例,这时候x代表图片向量,y代表图片类别对应的label(one-hot表示的0~9)。
对于判别器D,训练的时候,输入的时候把训练样本x(或G产生的样本)和y同时输入,在第一个hidden layer后合并,最后的输出是在y的条件下训练样本x(或G产生的样本)是真样本的概率,然后反向优化。
对于生成器G,输入是噪声z和y,经过感知器最终输出产生的标签y对应的图片,然后把生成的图片和y送入判别器,进而反向优化。

 

CGAN的优化目标:

五、实验

a.单模态(mnist实验)

以mnist数据集的lable(0-9)作为条件信息,编码为one-hot向量(独热码)。

G网里,噪声z和label y分别被映射到大小分别为200,1000的隐藏层,激活函数都是Relu。再用大小为1200的隐藏层(combined hidden ReLu layer)拼接这两个层的输出,再接着进行生成784(28*28)图片的过程。

D网也顺从这个思路,结合(combine)img和label,一起判断打分,判断真假,最后一层是sigmoid。

这里比较简单,具体的训练过程上面已经提到了,下图就是给训练好的生成器指定的标签y和噪声z,生成的对应图片。

b.多模态(自动为图片打上标签)

在本节中,我们将演示使用多标签预测来自动标记图像,并使用条件对抗网生成基于图像特征的标记向量(可能是多模式的)分布。

首先是数据集的特殊性。像Flickr这样的照片网站是一个丰富的标记数据源,其形式是图像及其相关的用户生成元数据(UGM user-generated metadata ),特别是用户标记。这些标记在语义上更接近人们对图片的描述,而不是简单地进行目标识别。UGM 的另一个特殊之处是近义词,不同人对同一个图片有着不同的描述,但描述的都是同一个对象。因此用一个有效的方法来规范化这些标签变得很重要。概念词嵌入(Conceptual word embeddings)在这里非常有用,因为相关的概念词最终由相似的向量表示。

简单来说,这个实验最终的目的就是把一副图像作为条件y,希望生成的文本(单词)都是和图片相关的,这样就可以进行图像的自动标注。

具体的实现还是基于上面的网络结构,只是每层的神经元数量有变化。在这个实验中,条件y就是图片,已经利用在ImageNet训练好的网络的FC层的feature来表示成了一维向量。训练样本x是在经过训练好的language model上同意转换成了尺寸为200的词向量,这些样本时来自于用户标注。
然后进行训练,下图是实验结果,Generated tags是在同一个条件y下通过给不同的噪声生成100个样本,然后挑出了Top10.

这个模型的训练分为以下几个步骤:

  • 首先分别用两个数据集(ImageNet,YFCC100M)提前训练两个模型,提取图像和tag(词向量)的特征,以便于在GAN中结合(combine)两者特征进行训练。
  • 然后我们用训练好的两个模型来提取 MIR Flickr 25,000 dataset的图像和标签特征。在实验中,去掉了没有标签的图像,一个图像有多个标签的(一张图有多个描述词),我们在训练集中重复它,image 和其中一个标签作为训练数据,重复至用上了它的所有标签。

为了进行评估,我们为每幅图像生成100个样本,并使用词汇表中词汇向量表示的余弦相似性来找到最接近的前20个单词。然后我们从100个样本中选出10个最常见的单词。

六、未来工作

这篇文章的工作更像是一种准备工作,阐述了CGAN的潜力,和一些应用场景。在将来的探索中,我们希望提出更好的模型。

在当前的实验中,我们只单独使用每个标签。但是如果同时使用多个标签(有效地将生成问题作为“集合生成”问题之一),我们希望获得更好的结果。另一个明显的方向是建立一个共同的训练方案来学习语言模型。以前有工作表明,我们可以学习适合特定任务的语言模型。

七、思考

现在大多数网络数据都存在标签缺失的情况,例如这篇论文用到的MIR Flickr数据集,25000张图片的标签中,出现20次以上的词才1300多,而且其中有很多标签词并不与图片内容有关,例如notmycat,图片中奖杯信息,蛋糕上人名等词语。所以文章中提到的能够自动生成标签的方法很有意义。但是,分析最后生成标签的结果,还有有不少生成标签是与图像内容无关的,考虑可以想办法改进。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1210687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪种灯光护眼效果好?考研必备护眼灯推荐

日常生活中,灯光对于我们来说是非常重要的,尤其是晚上,不管是学习还是办公都需要合适的光线环境,而台灯就是最好的一个选择。因此也不少学生党或者上班族都会备上一盏台灯。 不过台灯也不是随便挑选一台就可以的,如果…

PC端同花顺筹码峰(平均成本)的历史换手衰减系数如何设置

一、筹码峰设置 首先,打开同花顺客户端,找到筹码峰,点击设置按钮。 这时候打开弹框如下,其中【筹码分布】公式就是你需要修改的内容(我的筹码分布是已修改过的); 左上角可以搜索"CM&q…

时间序列基础->数据标签、数据分割器、数据加载器的定义和讲解(零基础入门时间序列)

一、本文介绍 各位小伙伴好,最近在发时间序列的实战案例中总是有一些朋友问我时间序列中的部分对数据的操作是什么含义,我进行了挺多的介绍和讲解但是问的人越来越多,所以今天在这里单独发一篇文章来单独的讲一下时间序列中对数据的处理操作…

挂耳式运动耳机哪个品牌好?5款公认好用的运动耳机推荐

​在现代社会,耳机已经成为了人们生活中必不可少的数码设备。在运动的时候,佩戴耳机更是成为了很多人的标配。但是,市面上的运动耳机种类繁多,如何选择一款适合自己的呢?今天我为大家挑选了5款公认好用的运动耳机&…

自动化测试:webdriver的断言详解

前言 在编写自动化测试脚本时,为了使“机器”去自动辨识test case的执行结果是True还是False,一般都需要在用例执行过程中获取一些信息,来判断用例的执行时成功还是失败。 判断成功失败与否,就涉及到断言。webdriver的断言使用有…

二维码智慧门牌管理系统升级解决方案:标准地址ID查询服务:高效、精准

文章目录 前言一、解决查询效率低下的问题二、提高信息精准度三、应用案例 前言 随着城市的发展和信息化步伐的加快,二维码智慧门牌管理系统已成为各大城市管理部门和企事业单位的必备工具。然而,实际应用中存在一些问题,如查询效率低下、信…

解决Window11 C:\Windows\System32\drivers\etc hosts 无法编辑问题

点击更多选项: 点击更多: 取消勾选 点击安全: 勾选 编辑和写入: 直接点同意: 现在就好了! 搜索笔记本 以管理员身份运行 编辑完 保存就行了

MySQL 索引事务

MySQL 索引&事务 文章目录 MySQL 索引&事务1. 索引1.1 概念1.2 作用1.3 使用场景1.4 使用 2. 事务2.1 为什么使用事务2.2 事务概念2.3 事务的特性2.4 使用 1. 索引 1.1 概念 索引(index)是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的…

软信天成:企业如何保障数据安全?

随着数字全球化的推进,数据产业呈现几何级增长,政府已经开始意识到数据的战略意义,在各地纷纷推进数据开放共享行动,2020年,中国正式将数据与土地、劳动力、资本、技术并称为五大生产要素,提出要“加快培育…

Costmap文献阅读——Layered Costmaps for Context-Sensitive Navigation

摘要 许多导航系统,包括无处不在的ROS导航堆栈,在单个成本图上执行路径规划,其中大部分信息存储在单个网格中。这种方法在生成最小长度的无碰撞路径方面非常成功,但是当成本图中的值超出已占用或空闲空间时,它在动态的…

新版本!飞凌嵌入式RK3568系列开发板全面支持Debian 11系统

飞凌嵌入式OK3568-C/OK3568J-C开发板现已全面支持Debian 11系统,新系统的加持能为用户提供主控新选择,并为开发者带来更多开发便利! Debian系统作为一种广受欢迎和信赖的开源操作系统,以其稳定性、可靠性和开放性而闻名&#xff0…

STM32F103C8 PC13端口无输出原因

如果开启了RTC功能,就要注意PC13端口的设置。要把RTC OUT 由“Disable”改成“No RTC Output”,才行。

美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 一、前言 使用技术栈 SpringBoot Vue My…

JimuReport积木报表 v1.6.5 版本发布—免费报表工具

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

JUC“阻塞队列”水很深,你把握不住!

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 提到阻塞队列&#xff…

java入门,从CK导一部分数据到mysql

一、需求 需要从生产环境ck数据库导数据到mysql,数据量大约100w条记录。 二、处理步骤 1、这里的关键词是生产库,第二就是100w条记录。所以处理数据的时候就要遵守一定的规范。首先将原数据库表进行备份,或者将需要导出的数据建一张新的表了…

界面控件Kendo UI for jQuery R3 2023 - 发布全新金字塔图表类型

Telerik & Kendo UI R3 2023版本带来了30多个新的UI组件,丰富的设计系统文档、多种自定义选项、支持Linux的现代化报表体验等。借助R3 2023,开发人员能够在现代框架上快速构建强大的数字体验功能,满足不断变化的业务需求等。今天将为大家…

vcenter server (部署较大服务器)

作用 VMware vCenter是集中管理控制台,管理所有安装了VMware ESXI的主机 使用vCenter Server可以对虚拟机进行实时的监控,包括服务器硬件、网络和共享的存储,并可以进行故障诊断。 可以查看实时的统计和图表,监控虚拟主机和资源…

【NodeJS】Nodejs安装及环境配置

下载安装包 网址:https://nodejs.org/en 安装程序 1.下载完成后,双击安装包,进行安装,一路默认配置 nxet 即可,安装路劲给默认在C盘,或者选择其他位置,当前教程默认C盘 2.下图根据本身的…

创造者设计模式

Bike package com.jmj.pattern.builder.demo01;public class Bike {private String frame;//车架private String seat;//车座public String getFrame() {return frame;}public void setFrame(String frame) {this.frame frame;}public String getSeat() {return seat;}public…