深度学习(4)---生成式对抗网络(GAN)
文章目录
- 一、原理讲述
- 1.1 概念讲解
- 1.2 生成模型和判别模型
- 二、训练过程
- 2.1 训练原理
- 2.2 损失函数
- 三、应用
一、原理讲述
1.1 概念讲解
1. 生成式对抗网络(Generative Adversarial Network,GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。它启发自博弈论中的二人零和博弈(two-player game),两位博弈方分别由生成模型(generative model)和判别模型(discriminative model)充当。
2. 判别模型用于判断一个给定的图片是不是真实的图片(从数据集中获取的图片),生成模型的任务是去创造一个看起来像真的图片一样的图片。两个模型一起对抗训练,生成模型产生一张图片去欺骗判别模型,判别模型判断这张图片是真的还是假的。在这两个模型训练的过程中,两个模型的能力越来越强,最终达到稳态。
latent random variable:潜在的随机变量
generated fake samples:生成的假样本
fine tune training:微调训练
generator:生成器
discriminator:判别器

1.2 生成模型和判别模型
1. 生成模型:生产模型的输入是二维高斯模型中的一个随机向量,生成模型的输出是一张伪造的假图片(fake image),同时获取数据集中的真实图片,然后将假图片和真实图片传给判别模型,由判别模型给出是真实图片还是假图片的判别结果。

2. 判别模型:根据输入的图片类型是假图片或真实图片,将输入数据的lable(标签)标记为0或者1。经过判别模型后输出值为一个0到1之间的数,用于表示输入图片为真实图片的概率,1表示真实图片,0表示假图片。

二、训练过程
2.1 训练原理
1. GAN的训练在同一轮梯度反转的过程中可以细分为2步:(1)先训练D。(2)再训练G。注意:不是等所有的D训练好了才开始训练G,因为D的训练也需要上一轮梯度反转中的G的输出值作为输入。
梯度反转(Gradient Reversal)是一种无监督学习方法,通过将梯度乘上一个负数来反转梯度方向,以达到欺骗判别器的效果,使得源域和目标域之间的特征分布可以互相“融合”,从而实现域自适应的目的。
2. 当训练D的时候:上一轮G产生的图片和真实图片,直接拼接在一起作为x。然后按顺序摆放成0和1,假图对应0,真图对应1。然后就可以通过D、x输入生成一个score(从0到1之间的数),通过score和y组成的损失函数,就可以进行梯度反转了。
3. 当训练G的时候:需要把G和D当作一个整体,这里取名叫做’D_on_G’。这个整体(简称DG系统)的输出仍然是score。输入一组随机向量z,就可以在G生成一张图,通过D对生成的这张图进行打分得到score,这就是DG系统的前向过程。score=1就是DG系统需要优化的目标,score和y=1之间的差异可以组成损失函数,然后可以采用反向传播梯度。注意,这里的D的参数是不可训练的。这样就能保证G的训练是符合D的打分标准的。

2.2 损失函数
1. 判别模型 D D D 的损失函数为如下所示。其中: x x x 表示真实图像; z z z 表示输入网络中的噪声; G ( z ) G(z) G(z) 表示生成器生成的假图像; D ( x ) D(x) D(x) 表示判别模型判断真实图像是否为真的概率(由于是真实图像,我们当然希望概率越接近 1 1 1 越好); D ( G ( z ) ) D(G(z)) D(G(z)) 为判别模型 D D D 去判断生成模型 G G G 生成的假图像是否为真图像的概率(由于是生成模型生成的假图像,我们希望概率越接近 0 0 0 越好)。
我们总是期望 D ( x ) D(x) D(x) 越大, D ( G ( z ) ) D(G(z)) D(G(z)) 越小,因此要最大化下式,用 l o g log log 函数约束它们之间的关系,通过训练不断调整网络的权值,以达到我们的期望。

2. 生成模型 G G G 的损失函数为如下所示。生成模型的主要作用就是从随机信号生成一张图像,来尽可能地拟合真实图像,使得判别模型 D D D 无法判断生成图像的真伪。由 l o g log log 函数的性质可知,只有当 D ( G ( z ) ) D(G(z)) D(G(z)) 的值接近 1 1 1 的时候,下式才能有最小值。 D ( G ( z ) ) = 1 D(G(z))=1 D(G(z))=1 表示判别模型 D D D 将生成模型 G G G 生成的图像判断为真实图像,所以最小化这个函数就可以使生成模型 G G G 通过不断训练生成接近真实图像分布的图像。

3. 结合上面的叙述,总的优化函数为:

三、应用
GAN最常使用的地方图像生成,如超分辨率任务,语义分割等。用GAN生成的图像也可以来做数据增强。
相关文章:
深度学习(4)---生成式对抗网络(GAN)
文章目录 一、原理讲述1.1 概念讲解1.2 生成模型和判别模型 二、训练过程2.1 训练原理2.2 损失函数 三、应用 一、原理讲述 1.1 概念讲解 1. 生成式对抗网络(Generative Adversarial Network,GAN)是一种深度学习模型,是近年来复杂…...
ThinkPad电脑HDMI接口失灵如何解决?
ThinkPad电脑HDMI接口失灵如何解决? 如果平时正常使用的外接显示器,某天突然无法使用了,重新插拔依然无信号的话,可以打开系统的设备管理器(快捷键winx),首先看一下监视器的识别情况,…...
第四部分:JavaScript
一:jQuery 1.1:jQuery介绍 什么是jQuery? jQuery是JavaScript和查询(Query),它是辅助JavaScript开发的js类库 jQuery的核心思想 核心思想是write less,do more,所以它实现了很多浏览…...
【游戏开发】【心法】游戏设计心法系列1-以玩法为核心去设计游戏
游戏的本质 游戏的魔法在于寻找隐藏事物之间的联系。 游戏的魅力在于随着玩家逐渐发现并了解游戏世界的方方面面,他会得到一种丰富而深厚的体验。 挑战,竞争和互动是游戏玩法的三大要素。 规则,过程,目标则是游戏内容的要素。 如…...
chrome谷歌浏览器取消网页所有剪切板的授权方法步骤
地址栏输入 chrome://settings/content/clipboard选择 不允许网站查看您剪贴板中的文字或图片 ———————————————— 版权声明:本文为CSDN博主「一切V随缘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明…...
目标检测算法改进系列之嵌入Deformable ConvNets v2 (DCNv2)
Deformable ConvNets v2 简介:由于构造卷积神经网络所用的模块中几何结构是固定的,其几何变换建模的能力本质上是有限的。在DCN v1中引入了两种新的模块来提高卷积神经网络对变换的建模能力,即可变形卷积 (deformable convolution) 和可变形…...
最新发布!阿里云卓越架构框架重磅升级
云布道师 10 月 19 日阿里云峰会山东上,阿里云重磅升级《阿里云卓越架构白皮书》,助力企业在阿里云上构建更加安全、高效、稳定的云架构。《阿里云卓越架构白皮书》在今年的阿里云峰会粤港澳大湾区首度亮相,这是阿里云基于多年服务各行各业客…...
如何监听/抓取两个设备/芯片之间“UART串口”通信数据--监视TXD和RXD
案例背景:全网仅此一篇!!! 两个设备/芯片之间采用UART串口通信。我们如何实现芯片1 TXD – > 芯片2 RXD,芯片2 TXD --> 芯片1 RXD两个单线链路上的数据抓取和监听?这篇博客将告诉您。 目录 1 什么是…...
JDK项目分析的经验分享
基本类型的包装类(Character放在最后) String、StringBuffer、StringBuilder、StringJoiner、StringTokenizer(补充正则表达式的知识) CharacterIterator、StringCharacterIterator、CharsetProvider、CharsetEncoder、CharsetDecoder(较难) java.util.function下的函数表…...
Java创建一个长度为10的数组,利用Arrays.sort(), 为数组元素排序
程序要求:1)创建一个整型数组,数组的长度为10. 2)给数组元素赋值,要求乱序。 3)利用fori循环将数组元素依次输出。 4)利用Arrays.sort(), 为数组元素排序 5)采用增加for循环将排…...
python 动态加载C# 动态库的一些问题
python导入C#动态库问题 背景介绍 我使用的python是3.7,需要调用之前已经用于其他项目的C#编写的动态库(xx.dll).由于调用方法很简单,可以参考下这个调用动态库,这里主要说一下我遇到的问题。 试图加载格式不正确的程序 这个问题实际是由于目标程序和…...
代码审计-锐捷NBR路由器 EWEB网管系统 远程命令执行
那天下着很大的雨,母亲从城里走回来的时候,浑身就是一个泥人,那一刻我就知道我没有别的选择了 出现漏洞的文件在 /guest_auth/guestIsUp.php 审查源码我们发现通过命令拼接的方式构造命令执行 构造payload: /guest_auth/guestI…...
VBA技术资料MF75:测量所选单元格范围的高度和宽度
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…...
力扣 26. 删除有序数组中的重复项
目录 1.解题思路2.代码实现 1.解题思路 由于数组为非严格递增排列的数组,因此可利用快慢指针,如果快指针减一不等于快指针,将快指针的值给慢指针,并将快慢指针同时加一,但如果相同,则只让快指针加一向后走…...
【uniapp】仿微信支付界面
效果图 完整代码 <template><view class="my-pay-page"><view :style=...
windows + ubuntu + vscode开发环境配置安装
一、卸载WSL/WSL2 如果安装了windows子系统的朋友,可以选择继续使用。或者提前卸载WSL,再选择安装虚拟机。虚拟机占用内存较大,WSL可能对于开发的一些需求还有欠缺。根据自己的实际情况进行选择。 WIN10/11安装WSL(请参考官方资料,…...
设计模式:责任链模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
上一篇《享元模式》 下一篇《解释器模式》 简介: 责任链模式,它是一种行为型设计模式,它将许多对象连接起来形成一条链,每个对象处理不同的请求,…...
koa搭建服务器(二)
在上一篇文章已经成功的运行了一个http服务器,接下来就是使用Sequelize ORM(官方文档:Sequelize 简介 | Sequelize中文文档 | Sequelize中文网)来操作数据库。 1、安装依赖 首先也是需要安装相关的依赖 npm i sequelize npm i …...
LeetCode 125 验证回文串 简单
题目 - 点击直达 1. 125 验证回文串 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 125 验证回文串 简单 1. 题目详情 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反…...
Android底层摸索改BUG(一):Android系统状态栏显示不下Wifi图标
这是我入职的第一个BUG,头疼,隔壁实习生一周解决了,我多花了几天 其中最大的原因就是我思考复杂了,在公司系统上,此BUG标题为: 请确认Wifi优先级,状态栏Wifi被忽略 BUG意思就是:当…...
【论文阅读】ManiFlow: A General Robot Manipulation Policy via Consistency Flow Training
快速了解部分 基础信息(英文): 1.题目: ManiFlow: A General Robot Manipulation Policy via Consistency Flow Training 2.时间: 2025.09 3.机构: University of Washington, UC San Diego, Nvidia, Allen Institute for AI 4.3个关键词: Fl…...
LangChain-Chatchat 开发与应用(十) 企业级部署方案-Docker-Compose-K8s集群化实践
企业级部署方案:Docker Compose / K8s 集群化实践标签:Docker | Kubernetes | 高可用 | 生产部署 | DevOps一、从"单机玩具"到"生产系统" 前面九篇,咱们从 0 到 1 搭起了 Chatchat,做了二次开发,优…...
Vue大屏自适应解决方案:如何应对多分辨率设备下的数据可视化挑战
Vue大屏自适应解决方案:如何应对多分辨率设备下的数据可视化挑战 【免费下载链接】v-scale-screen Vue large screen adaptive component vue大屏自适应组件 项目地址: https://gitcode.com/gh_mirrors/vs/v-scale-screen 在数字化转型浪潮中,企业…...
为什么92%的团队仍在手写API文档?ChatGPT驱动的智能生成方案已上线,你还在等什么?
更多请点击: https://kaifayun.com 第一章:API文档手写困局的根源与行业现状 在现代微服务与云原生架构普及的背景下,API已成为系统间协作的核心契约。然而,大量团队仍依赖人工编写和维护 OpenAPI(Swagger࿰…...
Source Sans 3:让数字界面阅读体验焕然一新的开源字体解决方案
Source Sans 3:让数字界面阅读体验焕然一新的开源字体解决方案 【免费下载链接】source-sans Sans serif font family for user interface environments 项目地址: https://gitcode.com/gh_mirrors/so/source-sans 你是否曾经在设计网页或应用时,…...
通信对抗新利器:HWG1在铁路高速领域的卓越应用
在现代化交通体系中,铁路、高速等关键领域的通信安全至关重要。为了应对复杂多变的电磁环境,确保通信系统的稳定运行,成都鼎讯信通科技有限公司推出了通信信号干扰模拟器HWG1,为交通领域的通信对抗训练提供了强有力的支持。HWG1通…...
RAG+Agent+记忆图谱三重架构解析,2026年仅剩这4个工具通过企业级安全审计认证
更多请点击: https://codechina.net 第一章:RAGAgent记忆图谱三重架构解析,2026年仅剩这4个工具通过企业级安全审计认证 架构协同的本质逻辑 RAG 提供实时、可溯源的外部知识注入能力;Agent 负责任务分解、工具调用与多步推理闭…...
焊接型球头杆端关节轴承鱼眼接头缺陷检测数据集VOC+YOLO格式3205张4类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):3205标注数量(xml文件个数):3205标注数量(txt文件个数):3205标注类别…...
大模型MoE架构原理与实战:理解专家路由与负载均衡
1. 这不是“参数越多越强”的简单故事:拆解大模型里那个被悄悄藏起来的“开关”你肯定见过这类标题:“GPT-4参数量突破1.8万亿!”、“DeepSeek-R1狂堆6710亿参数!”——光看数字,像在比谁家粮仓堆得更高。但真正玩过模…...
C++ 重载与重写的区别与实现
1 . 前言在面向对象语言中,经常提到重载与重写,以下内容直观描述两者差异成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同;…...
