【笔记】对抗训练-GAN
对抗训练-GAN
- 深度学习中 GAN 的对抗目标函数详解与最优解推导
- 一、GAN 的基本对抗目标函数
- 二、判别器与生成器的博弈目标
- 三、判别器的最优解推导
- 四、最优判别器的含义
- 五、总结
- 六、WGAN 的动机(为后续铺垫)
深度学习中 GAN 的对抗目标函数详解与最优解推导
生成对抗网络(GAN)是深度生成模型中的经典方法,其核心思想是两个网络之间的博弈:生成器 G G G 试图“伪造”样本,而判别器 D D D 尽力分辨真伪。本篇博客将从 GAN 的基本目标函数出发,逐步推导出判别器的最优形式,并分析其背后的数学含义。
一、GAN 的基本对抗目标函数
GAN 的原始目标是一个 min-max 游戏:
min G max D ( E x ∼ P r [ log D ( x ) ] + E z ∼ P z [ log ( 1 − D ( G ( z ) ) ) ] ) \min_G \max_D \left( \mathbb{E}_{x \sim P_r}[\log D(x)] + \mathbb{E}_{z \sim P_z}[\log(1 - D(G(z)))] \right) GminDmax(Ex∼Pr[logD(x)]+Ez∼Pz[log(1−D(G(z)))])
其中:
- P r ( x ) P_r(x) Pr(x) 表示真实数据的分布;
- P z ( z ) P_z(z) Pz(z) 是先验噪声分布(如高斯);
- G ( z ) G(z) G(z) 是生成器生成的假样本;
- D ( x ) D(x) D(x) 是判别器输出 x x x 为真实样本的概率。
二、判别器与生成器的博弈目标
-
判别器 D 的目标:让 D ( x ) D(x) D(x) 趋近于 1, D ( G ( z ) ) D(G(z)) D(G(z)) 趋近于 0,即正确分辨真实与生成样本。
对应目标函数为最大化:
E x ∼ P r [ log D ( x ) ] + E z ∼ P z [ log ( 1 − D ( G ( z ) ) ) ] \mathbb{E}_{x \sim P_r}[\log D(x)] + \mathbb{E}_{z \sim P_z}[\log(1 - D(G(z)))] Ex∼Pr[logD(x)]+Ez∼Pz[log(1−D(G(z)))]
-
生成器 G 的目标:生成样本让 D ( G ( z ) ) D(G(z)) D(G(z)) 尽量大,即“骗过”判别器。
对应目标函数为最小化:
E z ∼ P z [ log ( 1 − D ( G ( z ) ) ) ] \mathbb{E}_{z \sim P_z}[\log(1 - D(G(z)))] Ez∼Pz[log(1−D(G(z)))]
这是一个典型的零和对抗过程。
三、判别器的最优解推导
我们接下来推导:在固定生成器 G G G 的前提下,判别器 D D D 的最优形式是怎样的?
令目标函数为:
V ( D ) = ∫ x P r ( x ) log D ( x ) + P g ( x ) log ( 1 − D ( x ) ) d x V(D) = \int_x P_r(x) \log D(x) + P_g(x) \log(1 - D(x)) \, dx V(D)=∫xPr(x)logD(x)+Pg(x)log(1−D(x))dx
对每个 x x x,令:
f ( D ( x ) ) = P r ( x ) log D ( x ) + P g ( x ) log ( 1 − D ( x ) ) f(D(x)) = P_r(x) \log D(x) + P_g(x) \log(1 - D(x)) f(D(x))=Pr(x)logD(x)+Pg(x)log(1−D(x))
对 D ( x ) D(x) D(x) 求导并令导数为 0:
d f d D ( x ) = P r ( x ) D ( x ) − P g ( x ) 1 − D ( x ) = 0 \frac{d f}{d D(x)} = \frac{P_r(x)}{D(x)} - \frac{P_g(x)}{1 - D(x)} = 0 dD(x)df=D(x)Pr(x)−1−D(x)Pg(x)=0
解得最优判别器为:
D ∗ ( x ) = P r ( x ) P r ( x ) + P g ( x ) D^*(x) = \frac{P_r(x)}{P_r(x) + P_g(x)} D∗(x)=Pr(x)+Pg(x)Pr(x)
四、最优判别器的含义
-
D ∗ ( x ) D^*(x) D∗(x) 的输出值反映了 样本 x x x 来自真实分布的概率。
- 如果 P r ( x ) = P g ( x ) P_r(x) = P_g(x) Pr(x)=Pg(x),则 D ∗ ( x ) = 1 2 D^*(x) = \frac{1}{2} D∗(x)=21;
- 如果 P r ( x ) ≫ P g ( x ) P_r(x) \gg P_g(x) Pr(x)≫Pg(x),则 D ∗ ( x ) ≈ 1 D^*(x) \approx 1 D∗(x)≈1;
- 如果 P g ( x ) ≫ P r ( x ) P_g(x) \gg P_r(x) Pg(x)≫Pr(x),则 D ∗ ( x ) ≈ 0 D^*(x) \approx 0 D∗(x)≈0。
-
将 D ∗ D^* D∗ 代入 GAN 原始目标函数:
V ( D ∗ ) = E x ∼ P r [ log D ∗ ( x ) ] + E x ∼ P g [ log ( 1 − D ∗ ( x ) ) ] V(D^*) = \mathbb{E}_{x \sim P_r}[\log D^*(x)] + \mathbb{E}_{x \sim P_g}[\log(1 - D^*(x))] V(D∗)=Ex∼Pr[logD∗(x)]+Ex∼Pg[log(1−D∗(x))]
可推导出最终目标:
min G V ( D ∗ ) = − log 4 + 2 ⋅ JS ( P r ∥ P g ) \min_G V(D^*) = -\log 4 + 2 \cdot \text{JS}(P_r \parallel P_g) GminV(D∗)=−log4+2⋅JS(Pr∥Pg)
即:GAN 实质上是在最小化真实分布 P r P_r Pr 与生成分布 P g P_g Pg 之间的 Jensen-Shannon 散度。
五、总结
内容 | 含义 |
---|---|
D ∗ ( x ) = P r ( x ) P r ( x ) + P g ( x ) D^*(x) = \frac{P_r(x)}{P_r(x) + P_g(x)} D∗(x)=Pr(x)+Pg(x)Pr(x) | 判别器在每个样本点处的最优输出 |
GAN 的优化目标 | 最小化 JS 散度 |
最优时的结果 | 当 P r = P g P_r = P_g Pr=Pg 时,GAN 达到最优, D ( x ) = 0.5 D(x)=0.5 D(x)=0.5,分不出真假 |
六、WGAN 的动机(为后续铺垫)
由于 Jensen-Shannon 散度在 P r P_r Pr 与 P g P_g Pg 没有交集时不连续(导致梯度消失),Wasserstein GAN(WGAN)改用 Wasserstein 距离替代 JS 散度,并要求判别器满足 1-Lipschitz 条件,这会在后续单独展开讲解。
相关文章:
【笔记】对抗训练-GAN
对抗训练-GAN 深度学习中 GAN 的对抗目标函数详解与最优解推导一、GAN 的基本对抗目标函数二、判别器与生成器的博弈目标三、判别器的最优解推导四、最优判别器的含义五、总结六、WGAN 的动机(为后续铺垫) 深度学习中 GAN 的对抗目标函数详解与最优解推导…...
Python六大数据类型与可变类型
数字类型包括整型(int),浮点型(float),布尔型(bool),复数型(complex)。整型只能存储整数,浮点型可以存储整数和小数,布尔型…...
回溯-day65
回溯 什莫事回溯 回溯法也可以叫做回溯搜索法,它是一种搜索的方式 回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本…...
(2)VTK C++开发示例 --- 绘制多面锥体
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 VTK C开发示例程序; 使用C 和VTK绘制一个多面锥体。 环境说明系统ubuntu22.04、windows11cmake3.22、3.2…...
合同智能审核技术的发展与应用
一、背景与行业现状 合同审查作为企业合同管理的关键环节,其核心价值在于确保合同内容符合法律法规要求并契合企业内部政策。随着企业业务规模扩张带来的合同数量激增,传统人工审查方式在效率和成本方面的局限性日益凸显。这一现状为人工智能技术在合同…...
cryptozombies合约7
我们的合约几乎就要完成了!让我们加上一个事件. 事件 是合约和区块链通讯的一种机制。你的前端应用“监听”某些事件,并做出反应。 例子: // 这里建立事件 event IntegersAdded(uint x, uint y, uint result);function add(uint _x, uint _y) public…...
DeepSeek 接入 Word 完整教程
一、前期准备 1.1 注册并获取 API 密钥 访问 DeepSeek 平台: 打开浏览器,访问 DeepSeek 官方网站(或您使用的相应平台)。注册并登录您的账户。 创建 API 密钥: 在用户控制面板中,找到“API Keys”或“API…...
ARCGIS PRO DSK 利用两期地表DEM数据计算工程土方量
利用两期地表DEM数据计算工程土方量需要准许以下数据: 当前地图有3个图层,两个栅格图层和一个矢量图层 两个栅格图层:beforeDem为工程施工前的地表DEM模型 afterDem为工程施工后的地表DEM模型 一个矢量图层…...
大数据学习栈记——Redis安装及其使用
本文介绍NoSQL技术:Redis的安装及其使用。操作系统:Ubuntu24.04 Redis介绍 Redis是一个键值(key-value)存储系统,即键值对非关系型数据库,和Memcached类似,目前正在被越来越多的互联网公司采用…...
前端工程化之自动化构建
自动化构建 自动化构建的基本知识历史云构建 和 自动化构建 的区别:部署环境:构建:构建产物构建和打包的性能优化页面加载优化构建速度优化 DevOps原则反馈的技术实践 encode-bundlepackage.json解读src/cli-default.tssrc/cli-node.tssrc/cl…...
camx的xml解析
ls out/target/product/<product>/gen/STATIC_LIBRARIES/libcamxgenerated_intermediates/generated g_chromatix g_facedetection g_parser g_sensorg_chromatix/ tuning相关xml的解析codeg_facedetection/ 人脸检测相关xml的解析codeg_parser/ 主要的解析manager 流…...
虚幻引擎 Anim To Tex| RVT | RT
本文上篇分为4个部分:动画驱动材质,虚拟纹理,Rendertarget,以及其他杂项的地编ta干货整理。(其中RT部分基本为UOD重要截图摘录) 本文下篇为:skylight和directional light的区别,未完…...
计算机视觉与深度学习 | 钢筋捆数识别
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 钢筋捆数 1、初始结果2、处理效果不佳时的改进方法1、预处理增强2、后…...
关于PHP开源CMS系统ModStart的详细介绍及使用指南
关于PHP开源CMS系统ModStart的详细介绍及使用指南: 🔍 ModStart是什么? 基于Laravel框架开发的模块化CMS系统采用Apache 2.0 开源协议,完全免费可商用特别适合需要快速搭建企业级网站/管理系统的开发者 🚀 核心优势…...
VMware vCenter Server 安全漏洞升级方案一则
一、安全漏洞情况 根据VMware提供的安全建议(VMSA-024-0012),VMware vCenter Server可能经受以下漏洞的威胁: 漏洞一为VMware vCenter Server堆溢出漏洞(CVE-2024-37079,CVE-2024-37080)&…...
Linux服务之网络共享
目录 一.存储类型 二.NFS 2.1定义 2.2工作原理 2.3优势 2.4NFS工具 2.4.1exportfs 2.4.2showmount 2.5NFS相关软件及命令 2.6模拟实现NFS 准备工作(服务端和客户端都需要) 服务端位置 客户端配置 测试 补充:设置自动挂载 一.存…...
接口幂等性问题
幂等性问题出现在创建和更新数据时: 一、创建 1、在创建数据时,数据库方面,创建有效的唯一索引,用来数据兜底,并在程序中做异常捕获。 2、在插入数据时可以创建一个防重表做过滤,如果防重数据比较小又需…...
LeetCode每日一题4.14
1534. 统计好三元组 问题分析 遍历数组,满足好三元组定义,count1 思路 枚举i,j,k 代码 class Solution:def countGoodTriplets(self, arr: List[int], a: int, b: int, c: int) -> int:n len(arr)count 0for i in range…...
活动安排问题 之 前缀和与差分
文章目录 D. Robert Hood and Mrs Hood 考虑到一个活动开始时间和结束时间s,e,那么可以影响到的范围就是 s-d1,e,所以我们只需对这个每一个活动可以影响到的区域进行标记即可,当然为了降低时间复杂度,我们将使用前缀和与差分 t int(input()…...
HTTP 和 HTTPS 协议的区别及使用场景
在互联网的世界里,HTTP 和 HTTPS 是我们经常接触到的两种网络协议,它们在数据传输、安全性等方面存在诸多差异,适用的场景也各有不同。 一、HTTP 和 HTTPS 的基本概念 HTTP,即超文本传输协议(Hyper - Text Transfer Protocol),是一种用于分布式、协作式和超媒体信息…...
SAP 供应链:采购订单ME21N创建关键点
一、ME21N创建采购订单关键点 采购组织/采购组 字段:EKORG(采购组织)、EKGRP(采购组)关键点:采购组织必须与公司代码(Company Code)关联,采购组对应采购员职责范围示例&…...
重构无人机动力控制范式:Breeze 55A FOC 电调技术深度测评 ——全新Vfast 观测器如何突破效率与精度双重瓶颈
一、引言 在无人机动力系统中,电调(电子调速器)作为连接电池与电机的核心枢纽,其控制精度、效率及可靠性直接影响飞行性能。南昌长空科技的Breeze 55A FOC 电调凭借全新 Vfast 观测器技术与成熟的 FOC(矢量控制&#…...
LLM做逻辑推理题-哪一项圈出后不用找零
题目: 某天,两男两女走进一家自助餐厅,每人从机器上取下一许如下图所示的标价单。 50、95 45、90 40、85 35、80 30、75 25、70 20、65 15、60 10、55 (1)四人要同样的食品…...
第十章 json操作
第十章 json操作 文章目录 第十章 json操作一、Marshal 序列化二、Unmarshal 反序列化1 已知数据解析2 未知数据解析3 json测试 一、Marshal 序列化 package mainimport ("encoding/json""fmt" ) type Animal struct {Name string json:"name"…...
Python-Django集成yolov识别模型摄像头人数监控网页前后端分离
程序示例精选 Python-Django集成yolov识别模型摄像头人数监控网页前后端分离 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《Python-Django集成yolov识别模型摄像头人数监控网页前后端分离…...
「出海匠」借助CloudPilot AI实现AWS降本60%,支撑AI电商高速增长
🔎公司简介 「出海匠」(chuhaijiang.com)是「数绘星云」公司打造的社交内容电商服务平台,专注于为跨境生态参与者提供数据支持与智能化工作流。平台基于大数据与 AI 技术,帮助商家精准分析市场趋势、优化运营策略&…...
tsconfig.json配置不生效
说明一下我遇到的问题,这是我的配置文件代码的 {"compilerOptions": {"module": "none","target": "ES5","outFile": "./dist/bundle.js"} } 和我想象不同的是,我编译成 js 没…...
WebFlux应用中获取x-www-form-urlencoded数据的六种方法
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
GPT4O画图玩法案例,不降智,非dalle
网址如下: 玩法1:吉卜力(最火爆) 提示词:请将附件图片转化为「吉卜力」风格,尺寸不变 玩法2:真人绘制 提示词:创作一张图片,比例4:3,一个20岁的中国女孩…...
【Python爬虫】简单案例介绍1
目录 三、Python爬虫的简单案例 3.1 网页分析 单页 三、Python爬虫的简单案例 本节以科普中国网站为例。 3.1 网页分析 单页 在运用 Python 进行爬虫开发时,一套严谨且有序的流程是确保数据获取高效、准确的关键。首先,深入分析单个页面的页面结构…...
【CAPL实战:以太网】MAC地址由整数形式转换为字符串形式的自定义函数
我在文章MAC地址在字符串形式、数字形式和byte数组中的转换中讲过MAC地址在字符串形式、数字形式和byte数组中的转换方法和思想。如果你仔细阅读过这篇文章,那么MAC地址的形式要如何转换,自定义函数要如何实现它肯定也能信手拈来。如果你还不会也没有关系,今天我们尝试用另一…...
#4 我们为什么使用物联网? 以及 物联网的整体结构
设备不物联是否可以? 答案 是可以的,从项目实战的角度,还是有很多包括分拣,控制,检测等应用是分立的,这个和成本,场景,客户接受度等因素有关。 局部看,一些系统的确很简…...
MQTT、HTTP短轮询、HTTP长轮询、WebSocket
一、协议“明星定位”仿写 MQTT:物联网领域的**“明星协议”**,专为低带宽、高延迟网络环境下的设备通信而生。HTTP短轮询:数据拉取界的**“劳模”**,用简单粗暴的频繁请求换取数据更新。HTTP长轮询:短轮询的**“智能…...
Apache Commons CLI 入门教程:轻松解析命令行参数
文章目录 Apache Commons CLI 入门教程:轻松解析命令行参数一、什么是 Commons CLI?二、为什么选择 Commons CLI?三、快速开始1. 添加依赖2. 基础示例3. 运行示例1. 在Idea中运行2. 命令行中运行3. 使用 Maven/Gradle 运行(推荐&a…...
Kubernetes Operator 是什么,以及它们的用途
最近一个朋友问我关于EKS的升级问题: 场景: 如果我有 100 个 EKS 集群需要升级,那么所有集群都安装了安全插件。由于我不想在升级后手动在每个EKS中重复安装此插件,如何实现EKS升级后自动安装这个安全插件? 答案有多…...
SAP ABAP语言中的比较运算符
一、基本比较运算符 运算符描述关键字形式符号形式示例等于EQIF a EQ b 或 IF a b不等于NE<>IF a NE b 或 IF a <> b大于GT>IF a GT b 或 IF a > b小于LT<IF a LT b 或 IF a < b大于等于GE❌ 不支持IF a GE b小于等于LE❌ 不支持IF …...
10秒调用大模型!思源笔记+Ollama实现实时AI推理助力写作效率提升
文章目录 前言1. 下载运行Ollama框架2. Ollama下载大语言模型3. 思源笔记设置连接Ollama4. 测试笔记智能辅助写作5. 安装Cpolar工具6. 配置Ollama公网地址7. 笔记设置远程连接Ollama8. 固定Ollama公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂…...
Linux网络DFS共享服务搭建
目录 一.存储类型 1.DAS优势和局限性 2.SAN的特点及组成 3.NAS优势与局限性 二.NFS服务 1.NFS工作原理 2.NFS工具 2.1 exportfs 2.2 showmount 3.实际操作 3.1.服务器操作 3.2.客户机操作 3.3.默认无法写操作 一.存储类型 存储类型分为三种 直连式存储:…...
汇舟问卷:国外问卷调查项目
这个项目现在市面上主要有三种玩法,我给你整点实在的: 第一种:上网站直接做调查(站点查) 和国内调查网站差不多,国外也有一堆调查网站。可以直接到国外问卷网站注册账号答题。 好处是题目现成的不用自…...
JSON-RPC 2.0 vs REST API 详细对比分析
现在要开始做一个新的业务模块了,系统思考下 新的业务模式应该是采用 JSON-RPC 2.0 还是 老套路 REST API 的接口协议 ,系统的学习下 1. 基本概念 JSON-RPC 2.0 无状态的、轻量级的远程过程调用(RPC)协议使用 JSON 作为数据格式…...
Python 类方法
Python 类方法示例 类方法是绑定到类而不是实例的方法,它们使用 classmethod 装饰器定义,第一个参数通常是 cls(表示类本身)。下面是一个具体的例子: class Employee:"""员工类"""rais…...
MVC流程讲解——以文件下载为例
整体的流程是这样: 用户点击一个树节点 → 请求远程机器该目录下的文件信息 → 显示在树控件和列表控件中。 🧱 MCV 模式简介(针对这个场景) 模块代表什么主要职责Model(模型)数据结构和逻辑表示你传输的…...
深度学习之线性代数基础
2.3.7 点积 ∑按位积 2.3.8 矩阵-向量积 2.3.9 矩阵-矩阵乘法 2.3.10 范数...
某公司网络OSPF单区域配置
1.配置背景: xx公司网络由三台路由器和一台交换机组成,现在想要三台路由器之间通过OSPF实现互连互通。 2.网络结构如下: 3.具体配置: 3.1路由器 RA 配置: 1.更改主机名称: Router>en Router#conf t…...
vue+flask+GNN+neo4j图书知识图谱推荐系统
文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 编号: F025 pro 架构: vueflaskneo4jmysqlpytorch 亮点:两种基于知识图谱的推荐算法(GNN和基于路径推荐&#x…...
小程序页面传值的多种方式
开发小程序,总是避免不了页面和页面之间数据共享,实现方法有很多种,以下就讲解一下小程序页面传值,需要的朋友可以参考下。 1 使用wx.navigateTo()传值 这种传值方式有两种, url后面拼接传值:需要跳转的…...
基于SSM框架的校园食堂小程序设计与实现
概述 基于SSM框架开发的微信小程序民大食堂用餐综合服务平台,该系统集成了商家管理、餐品展示、在线点。 主要内容 一、管理员模块功能实现 用户信息管理 管理员可添加、查看和删除用户信息,确保平台用户数据安全可靠。 商家信息管理…...
FOC算法对MCU计算资源的需求?
评估FOC(磁场定向控制)算法对MCU计算资源的需求,需从算法复杂度、硬件特性、实时性要求等多维度分析。以下是具体步骤和关键要点: 一、拆解FOC算法的核心模块及计算复杂度 FOC算法主要由以下子模块组成,需分别评估各模块的计算量: 1. 传感器采样与预处理 ADC采样:电流…...
在 Excel 中使用通义灵码辅助开发 VBA 程序
VBA 简介 VBA 是一种用于微软办公套件(如 Word、Excel、PowerPoint 等)的编程语言,它本质上是一种内嵌的脚本,或者可以认为是一段命令,其标准叫法被称为宏。 VBA 只能依赖于对应的软件进行开发,例如本文就…...
嵌入式基础(三)基础外设
嵌入式基础(三)基础外设 1.什么是UART?与USART有什么区别⭐⭐⭐ (1)什么是UART 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。是一种异步全双工串行通信协议,它将要…...