GAN:PacGAN-生成对抗网络中两个样本的威力

论文:https://arxiv.org/pdf/1712.04086.pdf

代码:GitHub - fjxmlzn/PacGAN: [NeurIPS 2018] [JSAIT] PacGAN: The power of two samples in generative adversarial networks

发表:2016

一、摘要

1:GAN最重大的缺陷是:mode collapse。即无论是否基于多样性数据进行训练,GAN总倾向于产生相似的样本。

2:文中提出一种 packing 的方法来处理 mode collapse问题。具体做法:修改调整判别器,使其决策是基于同类的多个样本(不用管样本是真实样本还是生成样本)。通俗一点就是:将判别器的输入改成多个样本,这样判别器可以同时基于看到的多个样本进行决策,可以从一定程度上缓解  mode collapse。

二、架构创新

常规GAN的做法:使用单一判别器,将单一样本映射为单一的soft标签。

本文GAN的做法:使用增广判别器,将多个样本映射为单一的soft标签。

把相同label的样本拼接就是文中的 packing 技术,接收拼接 packing 样本的判别器就叫 packed 判别器。ImprovedGAN 中也提出了mini-batch的技巧,来处理 mode collapse 问题。

三、如何修改常规判别器使其成为 packed 判别器呢? 

保持判别器中 hidden layers 不变,只增加 input layer 中 nodes 的数目。可以参考一下下图中的Fig 1。左侧是默认的判别器,右侧是 packed 2 个样本的判别器,输入节点翻倍。 

 文中还对 DCGAN 如何 pack 进行了举例:

minist 手写数据是 28x28x1, PacDCGAN5就是把 label 相同的5张图(可以是real也可以是fake)拼接成 28x28x5的数据,送入判别器。   

四、如何训练 packed 判别器呢? 

 保持和正常 GANs 同样的训练过程。区别就是有 packed sample。直觉上来说:packing 有助于判别器缓解 mode collapse 问题,因为packing 样本的丰富性远高于single 样本。

 五计算复杂度呢?

取决与使用的GANs架构。毕竟input layer 的node 节点增多了嘛。不过也是可控的:作者的建议是packing 2个或者3 个样本就可以取得不错的效果。

六、实验结果

左侧是real样本,中间是DCGAN生成样本,右侧是PacGAN2生成样本,确实生成质量改善了。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统centos7防火墙firewall开放IP及端口命令

CentOS7使用的是firewall防火墙,不再是原来的iptables 防火墙基础命令 1:查看firewall防火墙状态 firewall-cmd --state //或 systemctl status firewalld2:打开防火墙 systemctl start firewalld3:关闭防火墙 systemctl sto…

Git——Git应用入门

将会介绍以下知识: 搭建Git环境和创建Git版本库(init、clone)。文件添加、状态检查、创建注释和查看历史记录。与其他Git版本库交互(pull、push)。解决合并冲突。创建分支列表、列表切换和合并。创建标签。 1、版本控…

虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(4)——从理论到实践:CANopen源代码配置

正如前文所述,CANopen的适应性在满足实时应用需求方面发挥着至关重要的作用。本系列文章的最后一部分将向您展示 CANopen 源代码配置的技术细节,以及实现高效实时性能的优化方法。 前文回顾: 虹科分享 | 平衡速度和优先级:为多样…

LaTeX插入裁剪后的pdf图像

画图 VSCode Draw.io Integration插件 有数学公式的打开下面的选项: 导出 File -> Export -> .svg导出成svg格式的文件。然后用浏览器打开svg文件后CtrlP选择另存为PDF,将图片存成pdf格式。 裁剪 只要安装了TeXLive,就只需要在图…

MySQL 插入数据报错 Incorrect string value

当在sys_dict_data表中执行插入语句; insert into sys_dict_data values(1, 1, 男, 0, sys_user_sex, , , Y, 0, admin, sysdate(), , null, 性别男);报错信息如下: insert into sys_dict_data values(1, 1, 男, …

快速入门opencv(python版)

Open Source Computer Vision Library。OpenCV是一个(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB等语言的…

11月29日作业

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height),定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <iostream>using n…

【ZEDSLAM】Ubuntu18.04系统ZED 2i双目相机SDK安装、联合标定、SLAM测试

0.设备、环境和说明 笔记本电脑i5-8300H、GTX 1060、32GRAM 因为后面要测试Vins-Fusion和ORB-SLAM3&#xff0c;所以推荐安装Ubuntu 18.04&#xff08;或者Ubuntu 20.04&#xff09; ROS 1&#xff08;不建议用比Ubuntu18更低的版本&#xff09; ROS一键安装命令&#xff1a;…

命名管道:简单案例实现

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解了什么是命名管道&#xff0c;匿名管道和命名管道的…

目标检测——R-CNN算法解读

论文&#xff1a;Rich feature hierarchies for accurate object detection and semantic segmentation 作者&#xff1a;Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik 链接&#xff1a;https://arxiv.org/abs/1311.2524 代码&#xff1a;http://www.cs.berke…

拼图 游戏

运行出的游戏界面如下&#xff1a;按住A不松开&#xff0c;显示完整图片&#xff1b;松开A显示随机打乱的图片 User类 package domain;/*** ClassName: User* Author: Kox* Data: 2023/2/2* Sketch:*/ public class User {private String username;private String password;p…

easyrecovery如何恢复手机数据及硬盘数据恢复方法

EasyRecovery16是一款优秀的数据恢复软件&#xff0c;不仅能够兼容windows和mac双重系统&#xff0c;同时还能够识别u盘、存储卡、手机等多种数据储存设备&#xff0c;可恢复的文件类型更是多达百余种。还贴心地准备个人版、专业版和企业版的下载&#xff0c;增加了用户的可选性…