GAN ——Generative Adversarial Network 理解与推导(一)
GAN的理解与推导
生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。
模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。
举例理解
- 在鉴宝节目中,专家通常需要对节目中的宝物进行判断其是正品还是赝品;
- 假如有一位工艺品大师可以通过现在的材料和技术,模仿宝物,制造工艺品(抵制盗版,仅为例子)。
- 该大师制造出来的工艺品需要拿给专家鉴别,让专家判断是否为正品。
- 专家给出意见之后给大师反馈,大师据此再进行制造。
- 目标是让专家无法判断大师制造的工艺品是否为正品即让大师成为高水平的大师。
- 该问题的关键是 鉴别的专家是高水准的,能够鉴别真假。
示例图:
数学模型
建立模型
下面对以上的问题建立模型:
Pdata 表示的是样本数据分布,即真正的宝库里面的宝物。
Pg 表示的是生成数据的分布,即制造出的工艺品的概率分布。
discrimination 表示的是专家(即鉴别器)
Pz 表示的是噪声分布,可以理解为生成工艺品所需的材料。
D(x;θ_d) 代表 x 是正品宝物的概率,很明显,D(x)符合伯努利分布。
目标函数
高水平专家 ———— discrimination
我们说目标是让专家无法判断大师制造的工艺品是否为正品,即让大师成为高水平的大师。
这个目标的前提是:专家必须是高水准的,即能够鉴别出正品和赝品:
那么当数据来自真实样本(宝库)的时候,那么专家(鉴别器)应该判断它是正品的概率D(x)要变大。
反之当数据来自工艺品样本的时候,专家(鉴别器)应该判断它是赝品的概率 1-D(x) 要变大。
即:
if x is from P_data, then D(x) ---> max
if x is from P_g, then 1-D(x) --->max
由于第二个表达式的x是来自于 P_z 所以可以写成:
if x is from P_g, then 1-D(G(z)) --->max
为了便于计算,我们给D(x) 用log函数映射:
那么该目标函数为:
用期望来表示是因为:
高水平大师 ———— generator
高水平大师要做的就是自己制造的工艺品能够以假乱真,“骗”过专家的鉴定,使专家无法辨别真伪
当数据来自工艺品宝库的时候,专家(鉴别器)判断其为正品,即是赝品的概率最低:
if x is from P_g, then 1-D(G(z)) --->min
总目标
GAN的目标就是优化上面那个函数,最终会使得d_g无限接近于d_{data} ,也就是说,生成器生成的数据无限接近于真实的数据分布,可以“骗过”鉴别器。
常用的场景有 人脸生成,数据增强等等。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想