生成对抗网络GAN学习笔记

生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记 生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训... 阅读详情

1. 何为GAN

生成式对抗网络是14年Ian J. Goodfellow提出的,其原理是同时训练两个模型,分别为用于捕获数据分布的生成模型 G ~G~ G 和用于判别数据是真实数据还是伪造数据的判别模型 D ~D~ D  .

  • 在训练过程中,生成器逐渐变得更擅长创建看起来真实的图像(贴合原数据集),而鉴别器则变得更擅长区分它们。当鉴别器无法分辨生成图像真伪时,该过程达到平衡(D(G(z)=0.5)。

更细致的来说 G(Generator)和D(Discriminator),在开始的时候这两个模型都是没有经过训练的,这两个模型一起对抗训练,生成模型产生一张图片去欺骗判别模型,然后判别模型去判断这张图片是真是假,最终在这两个模型训练的过程中,两个模型的能力越来越强,最终达到稳定状态,是不是就是零和博弈的思想!!

G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。

D是一个判别网络,判别一张图片是不是真实的。它的输入参数是x,x代表一张图片,输出D(x) 代表x为真实图片的概率,如果为1 ---- 100%是真实的图片,而输出为0 ---- 伪造图片。

2. 框架

在这里插入图片描述上图是该模型训练的一个伪代码,值得注意的是跟下面要讲的损失函数相同,更新判别模型需要通过增加梯度,而更新生成模型要通过减少梯度。(不断迭代直到两者谁也挑不出谁的毛病)

2.1 损失函数

在这里插入图片描述上图截取自原论文当中,我们可以看到损失函数有两部分构成,下面就分别来解读一下:

  1. 上述损失函数中,zzz代表加入的噪声,xxx代表真实的图片,而G(z)G(z)G(z)就是生成网络生成出来的图片
  2. 首先最大化 D D~D , 此时假设G(z)G(z)G(z)就是我们生成出来的图片,而判别其为假则是我们的终极目标,就是D(G(z))D(G(z))D(G(z))->0,也就是公式里的 1-D(G(z)) 尽可能的大,这样转换形式后就会跟前一项统一!!
  3. 其次最小化 G ~G~ G  , 此时就没有前一项什么事了,生成模型的目标就是让判别模型检测不出来,做到以假乱真.公式来说就是D(G(z))D(G(z))D(G(z))->1,也就是公式里的 1-D(G(z)) 尽可能的小!!

2.2 迭代更新

我们已经得到了生成模型和判别模型的损失函数,这样分开看其实就是两个单独的模型,针对不同的模型可以按照自己的需要去是实现不同的误差修正,我们也可以选择最常用的反向传播做为误差修正算法,更新模型参数。

3. 优点

  1. 强大的生成能力:GAN可以生成非常真实、高质量的样本,这是其他生成模型(如玻尔兹曼机和GSNs)难以比拟的。GAN可以产生清晰、逼真的图像,这在许多应用中都非常有用,如图像生成、图像修复、超分辨率等。
  2. 无监督学习:GAN采用无监督的学习方式,这意味着它可以在没有标签的数据上进行训练。这在现实世界中非常有用,因为通常无标签的数据比有标签的数据要多得多。
  3. 强大的表达能力:GAN可以在潜在空间(向量空间)中执行算数运算,并将其转换为对应特征空间内的运算。这使得GAN可以生成具有特定属性的样本,例如通过修改潜在空间中的向量来改变生成图像的某些特征。

4. 缺点

  1. 训练不稳定:GAN的训练过程非常不稳定,可能会出现梯度消失、模式崩溃等问题。这些问题使得GAN的训练变得非常困难,需要仔细调整参数和选择合适的网络结构。
  2. 难以达到纳什均衡:GAN的训练目标是达到纳什均衡,但在实践中这很难实现。即使训练过程中看起来有所进展,也可能只是在一个不稳定的振荡状态周围徘徊,而不是真正达到了纳什均衡。

它是指在一个博弈过程中,无论其他参与者采取何种策略,每位参与者选择的策略都是最优的,即在给定其他人策略的情况下,没有人有足够理由改变自己的策略。
纳什均衡可以是纯策略纳什均衡,也可以是混合策略纳什均衡。纯策略纳什均衡是指所有参与者都只使用确定性的策略,而混合策略纳什均衡则允许参与者使用随机性的策略。混合策略纳什均衡在概率计算中达到支付最优。
纳什均衡理论的一个重要贡献是它证明了在一定条件下,纳什均衡一定存在。这个条件就是每个参与者都只有有限种策略选择,并且允许混合策略。这一存在性定理为我们提供了理解和分析博弈问题的重要工具。

  1. 不适合处理离散形式的数据:由于GAN是通过连续的数值运算来进行训练的,因此它不适合处理离散形式的数据,如文本或音频。这限制了GAN在某些领域的应用。
  2. 模型过于自由而不可控:GAN不需要预先建模,这使得模型非常自由,但同时也变得不可控。对于较大的图像或较多的像素,基于简单GAN的方式可能不太可控,导致生成的样本质量下降。
图解 生成对抗网络GAN 原理 超详解 生成对抗网络 一.背景 一般而言,深度学习模型可以分为判别式模型与生成式模型。由于反向传播(Back propagation, BP)、Dropout等算法的发明,判别式模型得到了迅速发展。然而,由于生成式模型建模较为困难,因此发展缓慢,直到近年来最成功的生成模型——生成式对抗网络的发明,这一领域才焕发新的生机。 生成式对抗网络(Generative adversarial network, G... 阅读详情

相关推荐

GAN学习笔记

看论文,把论文主要做啥的做的笔记,适合刚开始学习GAN的同学们,我也是新手

生成式对抗网络(GAN)

我们的目标是让Generator生成的分布和真实的数据越像越好,但是这个距离很难衡量。训练Discriminator的目标是让它能分辨出哪些是G生成的数据,哪些是真实的数据。而跟JS divergence有关。所以有了以下式子:换个distance计算。

qq_58739479的博客 691

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码)

本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。

root9的博客 497

生成对抗网络GAN学习

4、基于pytorch的代码实现。1、经典GAN网络的公式。

qq_55369285的博客 788

Ubuntu系统下搭建QtCreator开发环境详细过程(Qt简介;Linux下安装QtCreator;Ubuntu安装后闪退蓝屏的解决方法)

Qt 是一个跨平台的 C++开发库。主要用来开发图形用户界面 (Graphical User Interface,简称 GUI) 程序。Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix、智能手机系统Android、ios、WinPhone, 嵌入式系统 QNX、VxWorks 等。

分享学习成长历程,Winter is coming! 8538

用Plecs搞定半桥LLC谐振变换器仿真:从开环模型搭建到闭环PI调参全流程

本文详细介绍了使用Plecs仿真工具进行半桥LLC谐振变换器从开环模型搭建到闭环PI调参的全流程操作。涵盖仿真环境准备、关键元件参数计算、波形异常排查、闭环控制实现及PI参数整定等核心内容,特别针对仿真中的收敛性问题提供实用解决方案,助力电力电子设计者高效完成LLC变换器仿真验证。

weixin_28455801的博客 569

【笔记】对抗训练-GAN

内容含义D∗xPrxPrxPgxD∗xPr​xPg​xPr​x​判别器在每个样本点处的最优输出GAN 的优化目标最小化 JS 散度最优时的结果当PrPgP_r = P_gPr​Pg​时,GAN 达到最优,Dx0.5D(x)=0.5Dx0.5,分不出真假。

m0_53162279的博客 1338

飞秒激光加工石英玻璃的COMSOL多物理场仿真研究

多物理场仿真是现代工程研发的重要工具,通过耦合电磁、热传导和流体力学等物理场,可以准确预测复杂工况下的材料行为。COMSOL Multiphysics作为主流仿真平台,其双温模型能精确描述飞秒激光加工中的电子-声子耦合过程。这种仿真技术可显著降低实验成本,在微纳加工领域尤为关键。针对石英玻璃这类光学材料,仿真能有效优化激光参数,实现亚微米级精度的冷加工。研究显示,结合移动网格技术和自定义材料状态函数,可以准确预测烧蚀形貌与热影响区分布,为光学器件和微流控芯片制造提供可靠工艺指导。

weixin_29290863的博客 240

学习笔记|生成对抗网络(Generative Adversarial Networks,GAN)——让机器学习具有创造力

了解一下什么是 “生成”,什么是 “对抗”,使得网络模型更具创造力,可以画画、制作音乐等

oXiLang的博客 2955

从Zemax到Speos:HUD设计数据无缝迁移避坑指南(含STEP文件精度验证)

本文详细介绍了从Zemax到Speos的HUD设计数据无缝迁移方法,重点解决Zernike曲面参数保真、虚拟厚度设置和坐标系对齐等核心问题。通过STEP文件精度验证和工程化解决方案,帮助工程师避免数据迁移中的常见陷阱,提升HUD系统设计效率。适用于Ansys Zemax和Ansys Speos用户,优化光学性能验证流程。

h6i7j8的博客 1063

Element-UI全面入门与实战技巧

Element-UI 是一套基于 Vue 2.0 的桌面端组件库,由饿了么前端团队开发并维护。它提供了一系列丰富的 UI 组件,旨在帮助开发者快速构建高效、美观的 Vue 应用程序。Element-UI 是一款遵循 Ant Design 设计规范的 Vue UI 库,它涵盖了从按钮、输入框、选择器到表格、标签、进度条等众多常用的界面元素。Element-UI 的组件不仅功能全面,而且易于定制,使得开发者可以快速实现个性化的页面设计。Element-UI 的特点包括:在使用 Element-UI 之前,需要确

全世界的博客 2863

生成对抗网络(GAN)学习笔记——GAN是如何来训练的?

GAN有两个网络模型,生成网络和判别网络,这两个网络是相对独立的,那么如何对这两个模型进行训练呢? 采用生成器和判别器交替迭代训练(两者博弈的过程)。 交替迭代训练 1.首先,我们得到初始的真假数据集。给生成器一个随机的输入(初始化),生成器输出一个假的样本集(未训练时效果非常差,也就是非常假),同时我们有真实的样本集(标签数据),于是我们得到了真假数据集。 2.有了真假数据集后,固定生成器的参数不变,对判别器进行训练。训练过程是一个有监督的二分类问题,即给定一个样本,训练判别器能判断出...

Jelly_11的博客 9230

Python爬虫实战:基于Playwright与异步技术的专利数据抓取系统

专利数据是企业技术创新、市场竞争分析和行业趋势预测的关键情报来源。然而,专利数据通常分散在各个国家的专利局网站,数据结构复杂,反爬机制严格,使得高效抓取成为技术挑战。本文将详细介绍如何构建一个基于最新Python技术的专利数据抓取系统,涵盖Selenium的现代化替代方案Playwright、异步编程、智能代理轮换等高级技术。

2201_76125261的博客 1562

GAN生成对抗网络学习笔记

(Generative Adversarial Network)对抗神经网络是一种,由一对神经网络组成:生成器和判别器。生成器的目的是学习生成数据的分布,它将随机噪声作为输入并生成与真实数据相似的输出。判别器的目的是学习将生成器生成的数据与真实数据区分开来。生成器和判别器在训练过程中相互对抗,生成器尝试生成越来越真实的数据来欺骗判别器,而判别器尝试识别哪些数据是真实的哪些是生成的。

2301_77799531的博客 557

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

生成对抗网络(GAN,Generative Adversarial Networks) 学习笔记

____tz_zs学习笔记GAN论文:[1406.2661] Generative Adversarial NetworksThe GAN Zoo(github上的一个项目,总结了所有GAN论文)知乎相关话题和好文章:令人拍案叫绝的Wasserstein GAN(详细的讲了WGAN)Lyken的回答 - 知乎(讲的很好,信息很多)其他:相对熵,又称KL散度( Kullback–Leibler di...

tz_zs的博客 3010

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

生成对抗网络GAN——学习笔记

在损失函数这里有一个重要概念:交叉熵。

qq_42261630的博客 766

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

生成对抗网络(GAN)之 Basic Theory 学习笔记

生成对抗网络(GAN)之 Basic Theory 学习笔记   前言:最近学习了李宏毅生成对抗网络篇(2018年)的视频(视频地址:李宏毅对抗生成网络(GAN)国语教程(2018)),因为截止今天(3.23),2020版还未讲到生成对抗网络,因此选择18年。本次学习笔记主要为Basic Theory部分,主要讲解GAN的数学原理。   GAN又称生成对抗网络,是由Ian Goodfellow等人...

夏栀的博客 1407

【学习笔记-李宏毅】GAN(生成对抗网络)全系列(一)

前言 相关链接 1. Introduction 1. 1 Basic Idea of GAN 1.2 GAN as structured learning 1.3 Generator可以自己学吗? VAE(Variational Auto-encoder) 2. CGAN, Conditional Generation by GAN 2.1 discriminator的架构改进 2.2 Stack GAN 2.3 Image-to-image 2.4 Speech Enhancement(提升语音的质量)

iioSnail的博客 4434

生成对抗网络GAN 学习笔记

GAN由生成器和判别器组成: 生成器(Generative Model)的本质也是一个神经网络,或者说是一个函数G(x) 判别器(Discriminative Model)的本质也是一个神经网络D(x) 所以GAN的训练本质就是训练两个神经网络。 GAN 的算法原理 1.最原始的极大极小博弈 GAN的目标函数是 其中 D(x) 是 [1, 0]^T 和 [D(x), 1 - D(x)]^T 间的交...

LiRongLu_的博客 1700

【Generative Adversarial Nets 生成对抗网络(GAN) 】学习笔记

生成模型(造假者):抓住整个数据的分布,对分布进行建模;尽量使得数据分布靠近,尽量使辨别模型犯错。一个多层神经网络MLP,输入随机的噪音,MLP把产生噪音的分布(常为一个高斯分布)映射到想要去拟合的目标分布。 辨别模型(警察):判别模型是真实数据还是生成数据 也为一个多层神经网络MLP。最后目标:生成模型生成的数据让判别模型无法分出真假,生成真实一样的数据...

滢滢码仔 3638

GAN(生成对抗网络)学习笔记

转载连接:https://www.leiphone.com/news/201706/ty7H504cn7l6EVLd.html 链接:https://www.jianshu.com/p/998cf8e52209 GAN的思想是一种二人零和博弈思想(two-player game),博弈双方的利益之和是一个常数,比如两个人掰手腕,假设总的空间是一定的,你的力气大一点,那你得到的空间就多一点,相应的...

s0101017的博客 1038

GAN (生成对抗网络 )学习笔记之 Introduction

GAN(generative adversarial network)生成对抗网络 1.总览 2.Basic Idea of GAN 给出GAN的比喻和问题: Step 1 固定生成网络G,更新区别网络D 第一次迭代,将下图的sample丢进D中训练使其得分越来越接近1,将G生成 图片丢进D中使其得分越来越接近0。 用上述的sample训练后,如果一直按照G生成图片来,迭代后,会出现好的图...

761527200_leili的博客 453

李宏毅机器学习2021学习笔记(3):GAN(生成对抗网络)

李宏毅机器学习2021学习笔记(3):GAN(生成对抗网络) 各种GAN类别:https://github.com/hindupuravinash/the-gan-zoo Generator(生成网络) 一个神经网络,实现输入噪音Z→输出生成样本 Discriminator(判别网络) 对样本打分,真实样本分数高,生成样本分数低(Generator产生的为虚构样本) 如何迭代产生好结果的过程 为使Discrimination不能区分样本是否真实,Generator需不断迭代使得能产生更能接近真实的样本,

weixin_51691386的博客 538

学习笔记:Pytorch利用MNIST数据集训练生成对抗网络(GAN)

2023.8.27在进行深度学习的进阶的时候,我发了生成对抗网络是一个很神奇的东西,为什么它可以“将一堆随机噪声经过生成器变成一张图片”,特此记录一下学习心得。

生物医学工程学生的博客 2758
上一篇: IoU的及其变体
下一篇: 埃氏筛 -- 范围内找质数经典算法java实现
美味不是堡
博客等级 码龄6年 2009粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值