【Keras+计算机视觉+Tensorflow】生成对抗神经网络中DCGAN、CycleGAN网络的讲解(图文解释 超详细)

news/2024/5/18 16:01:04/文章来源:https://blog.csdn.net/jiebaoshayebuhui/article/details/128261639

觉得有帮助麻烦点赞关注收藏~~~

一、生成对抗网络简介

生成对抗网络(GANs,Generative Adversarial Nets),由Ian Goodfellow在2014年提出的,是当今计算机科学中最有趣的概念之一。GAN最早提出是为了弥补真实数据的不足,生成高质量的人工数据。GAN的主要思想是通过两个模型的对抗性训练。随着训练过程的推进,生成网络(Generator,G)逐渐变得擅长创建看起来真实的图像,而判别网络(Discriminator,D)则变得更擅长区分真实图像和生成器生成的图像。GAN网络不局限于提高单一网络的性能,而是希望实现生成器和鉴别器之间的纳什均衡。

事实上,整个学习优化的过程是一个极大极小博弈问题,即寻找G和D之间的平衡点,G的目标是使其输出X的分布尽可能接近真实数据的分布,而D是一个二分类器,目标在于分清是输出为0的生成数据还是输出为1的真实数据,当达到平衡点时,D便无法判断数据来自G还是真实样本,此时的G就为最优状态,综上所述,GAN在不断的对抗学习过程中,生成的数据越来越接近真实样本,而D的判别能力则越来越模糊

假设在低维空间Z存在一个简单容易采样的分布p(z),例如正态分布 ,生成网络构成一个映射函数G:Z→X,判别网络需要判别输入是来自真实数据X_real还是生成网络生成的数据X_fake,结构示意图如下图所示

 

 随着深度卷积神经网络在图像领域的发展,GAN衍生出了很多模型,广泛应用于多个领域。例如DCGAN 为稳定的GAN网络设计和训练提供了十分宝贵的经验,其采用CNN实现对样本的无监督学习,即生成网络可以从随机噪声映射到真实数据空间,可以生成与样本相似的图像。CycleGAN使用循环一致性生成对抗网络,实现两种图像不同风格的互相转换,StackGAN可以将文字描述作为条件,生成器生成与之符合的自然图像,另外GAN还经常被用于图像修复,编辑,去模糊等领域。

二、DCGAN

DCGAN为稳定的GAN网络设计和训练提供了十分宝贵的借鉴,DCGAN使用CNN结构代替传统GAN的全连接网络,具体的改进如下

1:批处理标准化

即对每层都进行批标准化,批标准化是将分散数据统一的做法,其优化了神经网络,产生了具有统一规格的数据,能让机器更容易学习到数据之间的规律

2:使用转置卷积上采样

转置卷积上采样是神经网络生成图像时,从低分辨率到高分辨率的上采样方法,转置卷积能够让神经网络学会如何以最佳方式进行上采样

3:使用Leaky ReLU

使用它作为激活函数,从而实现神经网络的网络结构中从输入到输入的映射,正是由于这些非线性函数的反复叠加,才使得神经网络有能力来抓取复杂的类型,Leaky ReLU的应用提高了系统的计算速度,改善了梯度消失的问题

 

此外DCGAN的相关论文证明了随机噪声向量维度和范围变化对隐空间结构产生影响,可以改变生成图像内容,这也是我们产生多样化训练样本的原因,同时证明了生成器生成的数据也能用于图像分类任务上,这表明合成图像并不影响神经网络提取图像特征的强大能力

  

三、CycleGAN 

CycleGAN是由两个镜像对称的GAN构成的环形网络,其输入为源域和目标域的图像,对同时输入的图像是否匹配并无要求,即CycleGAN能在输入图像不配对的情况下实现风格转换,思路框架如下

CycleGAN共包含两个生成网络和判别网络实现A域和B域图像的互相映射,CycleGAN的损失由GAN的损失和循环一致性损失共同组成

 

 哈尔滨工业大学和腾讯优图提出加强版的CycleGAN结果如下图,可以看出CycleGAN在风格转换领域有着很强的应用价值(转成二次元啦...)

 创作不易 觉得有帮助请点赞关注收藏~~~

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

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

相关文章

Java项目中集成Redis提升系统的性能

概述 安装Redis 安装 启动Rocky Linux 9.0,在浏览器中打开web console. 如果没有安装Web console,按以下步骤安装启用: 安装命令: # dnf install cockpit 启用并运行服务 # systemctl enable --now cockpit.socket 开通防火墙&…

【每日小技巧】如果Tomcat的端口被占用,怎么处理该报错

苦恼的问题:当我们在用Tomcat时,发现我们要用的端口被其他程序占用了,如图: 解决办法: ①winR,输入cmd,打开命令行 输入命令netstat -ano,列出所有的端口号使用情况 ②查看PID&#…

Linux命令_ps 进程管理

简介 ps通过读取 /proc 中的虚拟文件来工作,不需要 setuid kmem 或有任何特权来运行。 CPU使用率目前表示为进程整个生命周期中运行所花费时间的百分比。这是不理想的,它不符合ps在其他方面所符合的标准。CPU使用率加起来不太可能达到100%。 SIZE和RSS字…

E. DS哈希查找--Trie树

目录 题目描述 思路分析 AC代码 题目描述 Trie树又称单词查找树,是一种树形结构,如下图所示。 它是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎…

HTML列表与表格详解_高效学习攻略

HTML列表与表格HTML篇_第六章、HTML列表与表格一、列表1.1定义1.2列表的分类1.3列表的对比二、表格2.1表格的定义2.2表格的边框2.3表格的表头单元格2.4表格标题 <caption>2.5表格的高度和宽度2.6表格背景2.7表格空间2.8合并单元格2.9表格头部、主题和页脚2.10表格的嵌套H…

【C++常用容器】STL基础语法学习queue容器

目录 ●queue的基本概念 ●queue常用接口 ●构造函数 ●赋值操作 ●数据存取 ●大小操作 ●queue的基本概念 简要介绍&#xff1a;queue是一种先进先出的的数据结构&#xff0c;它有两个出口。队列容器允许从一端新增元素&#xff0c;从另一端移除元素。队列中只有队…

【Java基础篇】基础知识易错集锦(一)

在学习的路上&#xff0c;我们只记得学习新的知识&#xff0c;却忽略了一切新知识都是在旧知识的基础上&#xff1b;努力奔跑的过程中&#xff0c;也要记得常回头看看&#xff1b; 题目展示&#xff1a; 解析&#xff1a; abstract是抽象的意思&#xff0c;在java中&#xff0…

[附源码]计算机毕业设计的高校车辆租赁管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SQL注入漏洞 | updatexml报错注入

文章目录前言MySQL updatexml报错注入前言 XML XML 被设计用来传输和存储数据&#xff0c;是各种应用程序之间进行数据传输的最常用的工具。 xpath XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在…

【GRU回归预测】基于门控循环单元GRU实现数据多维输入单输出回归预测附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

web期末大作业 使用HTML+CSS制作蓝色版爱宠之家带留言板(5页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Redis 特性。

Remote Dict Serve 分类 实时同步数据 要求缓存中的数据必须与db中的数据保持一致&#xff0c;如何保证&#xff0c;只要DB发生了变化&#xff0c;缓存中的数据立即消息 阶段性缓存为了缓存数据 添加了生存时长属性 Redis 的特性。 性能极高 读的速度 11w/s 写的速度 8w次/s…

代码详细教程+文档+PPT+源码等]SSM框架美妆商城全套|电商购物计算机专业毕业论文java毕业设计网站

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之SSM美妆商城项目源码_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygogogo.com/itsz…

详解Pytorch中的torch.nn.MSELoss函数(包括每个参数的分析)

一、函数介绍 Pytorch中MSELoss函数的接口声明如下&#xff0c;具体网址可以点这里。 torch.nn.MSELoss(size_averageNone, reduceNone, reduction‘mean’) 该函数默认用于计算两个输入对应元素差值平方和的均值。具体地&#xff0c;在深度学习中&#xff0c;可以使用该函数用…

《Linux运维实战:使用Percona Backup for MongoDB逻辑备份与恢复Mongodb数据》

一、备份与恢复方案 Percona Backup for MongoDB 是一个开源、分布式和低影响的解决方案&#xff0c;用于MongoDB分片集群和副本集的一致备份。从版本1.7.0开始&#xff0c;Percona Backup for MongoDB支持物理和逻辑备份和恢复&#xff0c;仅支持对逻辑备份进行时间点恢复。 …

Android.mk 入门学习

我们还是采用RK3399的开发板来学习Android.mk NOTED: 在编译之前&#xff0c;我们需要source & lunch source build/envsetup.sh lunch rk3399_roc_pc_plus-userdebug 或者lunch后选择41 一、Android.mk介绍 Android.mk是Android提供的一种makefile文件&#xff0c;用来指…

物理数据库服务器扫描hba卡识别共享磁盘命令

1、问题背景 默认情况&#xff0c;在扩容完1套物理rac共享存储后&#xff0c;rac主机是不能识别共享存储的。那么该怎么办呢&#xff1f; 2、解决办法 例如&#xff0c;在扩容完1套物理rac共享存储后&#xff0c;如果rac主机不能识别共享存储的话(一般需要执行命令后&#x…

HashMap1.8也会发生死循环—记录

目录 代码 jstack 分析 什么是哈希表 在讨论哈希表之前&#xff0c;我们先大概了解下其他数据结构在新增&#xff0c;查找等基础操作执行性能 数组&#xff1a;采用一段连续的存储单元来存储数据。对于指定下标的查找&#xff0c;时间复杂度为O(1)&#xff1b;通过给定值进…

代码随想录训练营day59, 下一个更大元素II, 接雨水

下一个更大元素II 给定一个循环数组, 输出每个元素的下一个更大元素, 没有则-1 所以在遍历的过程中, 模拟走了两遍nums class Solution {public int[] nextGreaterElements(int[] nums) {int len nums.length;//先进行边界判断if(nums null || len < 1){return new int…

Xinlei cheng报告学习

上面是 下面是momuten encoder 关键词 variance 方差 asymmetric不对称 momentum encoder 动量 dimension维度 convergence收敛 symmetrizationsy均衡 contrastive learning 对比学习 autoregressive自回归 distillation蒸馏 没有 fc layer +bn 裁剪后variance方差变大 cum…