条件生成模型 (conditional generation)

news2024/9/21 10:47:33

        我们之前讲的 GAN 中的生 成器,它没有输入任何的条件,它只是输入一个随机的分布,然后产生出来一张图片。我们现 在想要更进一步的是希望可以操控生成器的输出,我们给它一个条件x,让他根据条件x跟 输入z 来产生输出y。那这样的条件型生成器有什么样的应用呢?比如可以做文字对图片的 生成,那如果要做文字对图片的生成,它其实是一个监督学习的问题,我们需要一些有标签的 数据,需要去搜集一些人脸图片,然后这些人脸都要有文字的描述。比如这个样本是红眼睛、 黑头发,另一个是黄头发、有黑眼圈等等标签的样本,才能够训练这种条件型生成器。所以在 文字变图像这样的任务里面,我们的条件x就是一段文字。我们希望输入一段文字,然后生 成器就可以产生出来一张图片,这张图片就是这段文字所描述的图片。那一段文字怎么输入 给生成器呢,其实依赖于你自己。以前会用RNN把它读过去,然后得到一个向量,再丢到生 成器中。今天也许你可以把它丢到一个Transformer 的编码器中,然后得到一个向量,再丢 到生成器中,只要能够让生成器读一段文字就行。我们期待的模型是输入“红眼睛”,然后机器 就可以画一个红眼睛的角色,而且每次画出来的角色都不一样。那这个画出来什么样的角色, 取决于你采样到到什么样的z。采样到不一样的z,就会画出不一样的角色,但是这个角色都 是红眼睛的。那这个就是条件型生成的应用,文字变图像。

        具体怎么做条件型的GAN呢?我们现在的生成器有两个输入,一个是正态分布中采样 出来的z,另一个是条件x也就是一段文字,然后它会产生出来一个y,也就是一张图片。同 时,我们需要一个判别器。如果按照我们过去介绍的知识,判别器就是使用一张图片y当作输 入,输出一个数值,这个数值代表输入的图片多像真实的图片。训练这个判别器的方法就是, 如果看到真实的图片就输出1,如果看到生成的图片就输出0。这样就可以训练判别器,然后 判别器跟生成器反复训练。

        但是这样的方法没办法真的解条件型的GAN的问题,因为如果我们只有训练这个判别 器,只会将y当做输入的话,那生成器会学到的东西就是,只要产生出来的图片y好,但是跟 输入完全没有任何关系,因为对生成器来说它只要产生清晰的图片就可以骗过判别器了。它 何必要去管输入的文字叙述是什么呢,所以直接就无视这个条件x,直接产生一个图片骗过判别器就结束了。但这显然不是我们要的,所以在条件型的GAN里面,就要做有点不一样的 设计,也就是判别器不是只吃图片y,同时还要吃条件x。同时判别器输出的数值不只是看y 好不好,还要看y 跟x配不配。如果y跟x配不上,那就要给一个很低的分数,如果y跟 x 配上,那就要给一个很高的分数。我们需要文字和图像成对的数据来训练判别器,所以条件 型的GAN,一般的训练是需要这个成对的标注数据的。所以当看到这些真正的成对数据,就 给它1分,看到红色眼睛但是文字叙述是黑色头发,就给它0分,看到黑色头发但是文字叙 述是红色眼睛,也给它0分,这样就可以训练判别器了,如图1所示。

图1 条件型GAN

        那其实在实际操作中,只是拿这样的负样本对和正样本对来训练判别器,得到的结果往 往不够好。往往还需要加上一种不好的状况:已经产生好的图片但是文字叙述配不上的状况。 所以通常会把我们的训练数据拿出来,然后故意把文字跟图片乱配,或者故意配一些错的,然 后告诉判别器看到这种状况,也是要输出不匹配。用这样子的数据,才有办法把判别器训练 好。然后生成器跟判别器反复的训练,最后才会得到好的结果,这个就是条件型的GAN。

        在目前的例子里面都是看一段文字产生图片,当然条件型的GAN的应用不只看一段文 字产生图片,比如也可以看一张图片产生其他图片。比如,给GAN房屋的设计图,然后让 生成器直接把房屋产生出来,或者给它黑白的图片然后让它把颜色着上,或者给它素描的图, 让它把它变成实景实物,再或者给它白天的图片,让它变成晚上的图片,给它起雾的图片,让 它变成没有雾的图片等等。那像这样子的应用,叫做图像翻译,也就是输入一张图片,然后产 生出来另外一张图片,也叫做Pix2pix。那跟刚才讲的从文字产生图像也没有什么不同,现在 只是从图像产生图像,把文字的部分用图像取代掉而已。所以其中同样要产生生成器,产生一 张图片,然后要产生判别器,判别器要输入两张图片,然后输出一个数值。其中可以用监督学 习的方法,训练一个图片生成图片的生成器,但是可能生成的结果图片非常地模糊,原因在于 同样的输入可能对应到不一样的输出。生成器学到的就是把不同的可能平均起来,结果变成 一个模糊的结果。所以这个时候我们的判别器它是输入是一张照片和输入条件,同时看图片 和条件看有没有匹配来决定它的输出。另外,如果单纯用GAN的话它有一个小问题,它产生 出来的图片比较真实,但是与此同时它的创造力、想像力过度丰富,会产生一些输入没有的东 西。所以如果要做到最好往往就是GAN跟监督学习同时使用,就是说你的生成器不只要骗 过判别器,同时你的生成器还要产生出来的图片跟标准答案越像越好。

        条件型GAN还有很多应用,比如给GAN听一段声音,然后产生一个对应的图片。比如 说给它听一段狗叫声,GAN可以画出一只狗。这个应用的原理跟刚才讲的文字变图像是一样 的,只是输入的条件变成声音而已。对于标签的成对数据就是声音和图像成对的数据,这个并 没有很难搜集,因为可以爬到大量的影片,影片里面有图像有画面也有声音,并且每一帧是一 一对应的,所以可以用这样的数据来训练。另外条件型GAN还可以产生会动的图片,比如给 GAN 一张蒙娜丽莎的画像,然后就可以让蒙娜丽莎开始讲话等等。

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

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

相关文章

硬件-经典开机电路

文章目录 一:网友公司祖传的开机电路二:电路符号名称三:电路原理分析道友:对于利益相关的人,要展示你的实力和智力。对于利益不相关的人,展示你的礼貌就好。 一:网友公司祖传的开机电路 业务逻辑…

【二】TDEngine快速入门

TDEngine快速入门 目录 TDEngine深入理解 概述 一、核心概念解析 二、基本操作 三、可视化管理工具 总结 概述 TDEngine创始人在官方出品的书籍中写到:我观察到,无论是出行行业还是更广义的运输行业,以及分布式能源系统,都将…

【网络安全 | 渗透工具】Cencys+Shodan使用教程

原创文章,不得转载。 文章目录 Cencys准备语法全文搜索字段和值搜索通配符搜索布尔逻辑搜索嵌套搜索时间相关搜索范围搜索双引号 (")转义序列和保留字符Censys 搜索语言中的主机查询查看主机搜索结果Censys 搜索语言中的证书查询查看证书搜索结果生成报告其余Shodan准备使…

解决MongoDB创建用户报错command createUser requires authentication

1、执行创建用户报错如下: 2、解决方法 2.1 关闭 MongoDB /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongod.conf --shutdown 2.2 修改配置文件 vim /usr/local/mongodb/mongod.conf 将security.authorization值从enabled改为disabled 2.3 启动MongoD…

HTML/CSS/JS学习笔记 Day2(HTML--标签 上)

跟着该视频学习,记录笔记:【黑马程序员pink老师前端入门教程,零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day2 内容梳理:…

redission中的锁分类

redis 分布式锁的核心命令 redis分布式锁的实现主要是依靠setnx和expire两个命令完成。 注意:由于setnx和expire是两个命令,会存在如果 setnx 是成功的,但是 expire 设置失败,一旦出现了释放锁失败,或 者没有手工释放…

用华为智驾,开启MPV的下半场

作者 |老缅 编辑 |德新 8月28日,岚图正式对外公布了全球首款搭载华为乾崑智驾和鸿蒙座舱的MPV——全新岚图梦想家。 新车定位「全景豪华科技旗舰MPV」,全系标配四驱,分为四驱鲲鹏版和四驱乾崑版。 其中岚图逍遥座舱和鲲鹏智驾构成的鲲鹏版…

yolov5 +gui界面+单目测距 实现对图片视频摄像头的测距

可实现对图片,视频,摄像头的检测 项目概述 本项目旨在实现一个集成了YOLOv5目标检测算法、图形用户界面(GUI)以及单目测距功能的系统。该系统能够对图片、视频或实时摄像头输入进行目标检测,并估算目标的距离。通过…

【Java】基于JWT+Token实现完整登入功能(实操)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 认识依赖4.2 使用JWT4.3 登入实现4.4 配置拦截器4.5 获取数据 五、总结&…

Unity数据持久化 之 使用Excel.DLL读写Excel表格

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ 终于找到一个比较方便容易读表的方式了,以前用json读写excel转的cvs格式文件我怎么使用怎么别扭&#xf…

合宙4G模组Air780EX——产品规格书

Air780EX 是合宙通信推出的LTE Cat.1 bis通信模块; Air780EX采用移芯EC618平台,支持LTE 3GPP Rel.13 技术; Air780EX 是4G全网通模块,可适应不同的运营商和产品,确保产品设计的最大灵活性。 其主要特点和优势可以总…

(一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别

🍂1、不说废话,现象展示 🍃图片识别 🍃视频识别 自己训练样本 十分简易快速 opencv级联ha

个股场外期权怎么交易?场外期权交易流程是怎样的?

今天带你了解个股场外期权怎么交易?场外期权交易流程是怎样的?个股场外期权是一种非标准化的期权合约,通常在场外市场(OTC市场)由金融机构和投资者之间进行交易。 场外个股期权主要功能 风险管理: 帮助投…

太速科技-基于Kintex-7 XC7K325T的FMC USB3.0四路光纤数据转发卡

基于Kintex-7 XC7K325T的FMC USB3.0四路光纤数据转发卡 一、板卡概述   本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持64bit DDR3容量2GByte,USB3.0接口,HPC的FMC连接器&#xff…

安卓玩机工具-----通用安卓玩机工具 “搞机助手”界面预览 推荐

在网络中有很多很好玩的工具。方便安卓机型联机使用各种功能。系列博文将详细的演示有些工具的特点与使用方法 搞机助手 作者:流水断崖 目前开发功能有:Twrp recovery全自动刷机,免Root冻结、卸载预装软件,免Root激活&#xff…

1-9 图像膨胀 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 kernel np.ones((3, 3), np.uint8) _, binary_image cv2.threshold(image, 127, 255, cv2.THRESH_BINARY) dilated_image cv2.dilate(binary_image, kernel, iterations1) 三、运行现象 四、完整代码 五、完整工程贴出 一、提前准备 …

【vue css】background设置背景图片不显示问题

问题: 如上图所示,添加背景图片页面没有显示 解决: 添加background-position: center center 即可显示 但是不知道为什么添加这个属性就可以,求大神解惑

端口安全老化细节

我们都知道port-security aging-time命令用来配置端口安全动态MAC地址的老化时间,但是后面还可以加上类型: [SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute Absolute time 绝对老化 inactivity Inactivity time相对老化 …

网络协议-SSH

SSH(Secure Shell)协议是一种广泛使用的网络协议,用于安全地进行远程登录和数据传输。SSH协议通过加密技术保证了数据的安全性,防止数据在传输过程中被窃听、篡改或伪造。SSH协议的通信认证过程主要包括以下几个步骤: …

JRebel and XRebel离线安装

近期,使用JRebel and XRebel,发现总是安装不上,可能是网络的原因吧。所以就使用离线方式进行安装。 JRebel 是一款用于 Java 开发的生产力工具。它的主要功能是加速开发周期,通过在不重启 JVM 的情况下即时加载代码变更。这样&…