前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >赠书 | 读懂生成对抗神经网络 GAN,看这文就够了

赠书 | 读懂生成对抗神经网络 GAN,看这文就够了

作者头像
AI科技大本营
发布于 2023-05-08 05:47:09
发布于 2023-05-08 05:47:09
28100
代码可运行
举报
运行总次数:0
代码可运行

生成对抗神经网络(Generative Adversarial Nets,GAN)是一种深度学习的框架,它是通过一个相互对抗的过程来完成模型训练的。典型的GAN包含两个部分,一个是生成模型(Generative Model,简称G),另一个是判别模型(Discriminative Model,简称D)。生成模型负责生成与样本分布一致的数据,目标是欺骗判别模型,让判别模型认为生成的数据是真实的;判别模型试图将生成的数据与真实的样本区分开。生成模型与判别模型相互对抗、相互促进,最终生成模型能够生 成以假乱真的数据,判别模型无法区分是生成的数据还是真实的样本,如此一来,就可以利用生 成模型去生成非常逼真的数据。

由于GAN能够生成复杂的高维度数据,因此被广泛应用于学术研究和工程领域。GAN的主要应用包括图像处理、序列数据生成、半监督学习、域自适应(Domain Adaptation)。图像处理是GAN应用最多的领域,包括图像合成、图像转换、图像超分辨率、对象检测、对象变换等;序列数据生成包括音乐生成、语音生成等。

GAN架构

生成模型的输入是低维度的随机噪声(如向量),输出是高维度的张量(如图像或音乐)。判别模型的输入是高维度的张量(如图像或音乐);输出是低维度的张量,如代表输入张量是否来源于真实样本的热向量(one-hot)。在训练阶段,生成模型输出的高维度张量也会输入给判别模 型,由判别模型判断生成的数据是否已经足够像真实的样本数据。模型训练完成之后,在评估阶段就可以通过给生成模型输入低维度的随机噪声,让生成模型输出高维度的张量数据(图像或音乐)。

关于 GAN 的生成和对抗,最早的 GAN 是作者通过警察(判别模型)和造假币者(生成模 型)来举例的。造假币者试图造出非常逼真的假币,警察试图将假币和真币区分开。造假者不断提升造假币的能力,以试图欺骗警察;警察也不断提高自己的辨别能力,将假币尽可能地 识别出来。二者相互对抗、相互竞争,造假者的造假水平和警察的辨别能力都不断地提高,直到最终造假币者能够造出以假乱真的假币,这就是生成对抗的原理。GAN 的架构如图 1-1 所示。

判别模型

判别模型的输入是一个高维度的张量(如图像或音乐),输出是一个低维度的张量,一般是向量(如图像所属类别)。这个转换的过程是典型的降采样(Down Sampling)过程,即将高维度、大尺寸的输入张量逐步转换成低维度、小尺寸的输出张量,最终输出向量的过程。这一降采样的过程与卷积神经网络的过程十分类似。实际上,GAN网络架构中采用卷积神经网络作为判别模型是十分常见的。判别模型的网络架构如图1-2所示。

生成模型

生成模型的输入是一个代表随机噪声的低维度张量,输出是一个代表高维度的张量(如图像 或音乐)。生成模型的转换过程是一个典型的升采样(Up Sampling)的过程,这一过程与反卷积神经网络的操作过程非常类似。实际上,采用反卷积神经网络作为生成模型的情况也是十分常见的。典型的生成模型的网络架构如图1-3所示。

训练方法

由GAN的原理可知,生成模型(G)和判别模型(D)相互对抗,用L (G,D)代表损失函数,其中 判别模型试图最小化误差,生成模型试图最大化误差。最终的误差函数如下:

由式(1-1)可知,生成模型和判别模型对误差都有影响,其中任何一个变动都会导致误差变动。所以,GAN是采用交替训练的方法来训练的,即固定一个模型,训练另外一个模型。

GAN模型的训练过程可以通过以下步骤来完成。

(1)固定生成模型的参数,优化判别模型的参数。首先生成一批样本数据G (z),将它们标记 为生成的样本,然后与真实的样本数据 x(标记为真实样本)一起输入判别模型。由于判别模型 的目标是将二者区分开,因此这是一个典型的分类预测问题,这也是卷积神经网络非常擅长的。实际上,目前主流的 GAN网络的判别模型往往都是卷积神经网络。经过训练,如果判别模型具 备足够的容量,就能够将真实样本与生成的数据区分开,于是可以得到一个判别模型D1。

(2)固定判别模型D1的参数,优化生成模型的参数。生成模型的优化目标是降低判别模型 的准确率,所以应根据判别模型的辨别结果调整生成模型的参数,直到生成模型能够产生让判别模型D1无法区分的生成数据。至此,可以得到一个生成模型G1。

(3)循环执行(1)和(2),交替训练并且升级生成模型和判别模型,每经过一轮训练,就会提高 一些模型的准确率,升级一次模型,最终得到生成模型 G2、G3、G4、⋯、Gn 和对应的判别模型 D2、D3、D4、⋯、Dn。经过以上 n轮训练,不管是生成模型还是判别模型的性能都会得到极大的提升,判别模型能够区分稍有瑕疵的生成数据。为了能够欺骗判别模型,生成模型必须能够生成 几乎没有瑕疵,或者说是能够以假乱真的数据,最终 GAN具备了生成足够逼真的高维度数据的能力。

为什么要学习GAN?

因为GAN功能强大、应用广泛,并且无须限定样本数据分布,就能够生成锐利而清晰的数据。

GAN 的应用场景十分广泛,包括图像生成、图像处理、序列数据生成、半监督学习、域自适应,以及其他相关领域,如医学图像细分(通过图像细分算法精确定位病灶)、隐写术(一种加密技 术,通过将加密信息写入肉眼可视的图像中实现)、持续学习(深度生成重放)。

图像处理是GAN应用最广泛的领域,包括图像生成、图像转换、图像超分辨率、对象检测、对 象变换、视频合成等场景,其中图像生成是 GAN模型的最原始的应用场景。图像转换是指将一 个领域(x)中的图像转换成另一个领域(y)中的图像,如将真人模特的照片转换成动漫卡通人物 的角色;图像超分辨率是指将低分辨率的图像转换成高分辨率图像的场景;对象检测是指检测图 像中是否包含指定的对象(如图像中是否包含狗);对象变换是指将图像中的对象替换成其他对 象,并且在不改变对象背景的前提下,让变换后的图像看起来足够真实;视频合成是指根据当前 视频的内容,预测未来一段时间的视频内容。

序列数据生成是指生成序列化数据的场景,包括语音对话或音乐合成。

半监督学习是指样本数据中只有少量的样本是有标记的,大量的样本数据是没有标记的,这 种类型的数据在生活中广泛存在。GAN能够通过充分利用标记的样本数据所属类别的信息,从理论角度来说,GAN的识别准确率可以达到非常高。

域自适应是迁移学习的一种,是指将在一个领域学习得到的模型应用在另一个领域中,其应用也十分广泛。例如,根据黄种人的人脸数据集训练一个人脸识别模型,如果该模型直接应用于 非黄种人的人脸(如白种人或黑种人)识别,那么识别的准确率可能会很低。域自适应能够提高 模型的适应能力,保证模型在应用于新领域时的性能。

以上内容来自《GAN生成对抗神经网络原理与实践》,还想学习更多 GAN 的知识?

机会来了~

在评论区留言你对 GAN 或者 AI 学习的看法

AI科技大本营将选出三名优质留言

携手【北京大学出版社】送出

《GAN生成对抗神经网络原理与实践》一本

截至6月18日14:00点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
更多精彩推荐后疫情时代,RTC期待新的场景大爆发
Python + 爬虫:可视化大屏帮你选粽子
二次元会让人脸识别失效吗?
点分享点收藏点点赞点在看
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
什么是生成对抗网络(GAN)| 小白深度学习入门
机器学习/深度学习模型所的一个主要任务就是:根据事物的属性(X)预测事物的标记(Y)。生成模型和判别模型,都能完成这个任务,但具体方法不同。
叶锦鲤
2019/10/31
5.4K0
什么是生成对抗网络(GAN)| 小白深度学习入门
GAN:生成对抗网络 Generative Adversarial Networks
对于生成对抗网络GAN,一个简单的理解是可以将其看做博弈的过程,我们可以将生成模型和判别模型看作博弈的双方,比如在犯罪分子造假币和警察识别假币的过程中:
代码的路
2022/08/01
3880
生成对抗网络-AI快速进阶系列
首先,我们将介绍术语生成模型及其分类法。然后,将描述GAN的架构和训练管道,并附有详细示例。最后,我们将讨论GAN的挑战和应用。
jack.yang
2025/04/05
750
生成对抗网络-AI快速进阶系列
深度学习研究总结:生成对抗网络(附 3 篇 arXiv 最火论文)
【新智元导读】Yann LeCun曾说:“对抗训练是切片面包发明以来最令人激动的事情”。这篇文章中,作者回顾基于 Ian Goodfellow 在2014 年的开创性工作的 3篇论文。这3篇论文都是过去一年来在arXiv.org上讨论十分热烈的论文,包括Twitter Cortex团队几周前发表的论文。 生成对抗网络概述 我在此前的一篇博文(9 Deep Learning Papers You Should Know About)中简要地提到过Ian Goodfellow有关生成式对抗网络的论文。这些网络的
新智元
2018/03/23
1.2K0
深度学习研究总结:生成对抗网络(附 3 篇 arXiv 最火论文)
不到 200 行代码 教你如何用 Keras 搭建生成对抗网络(GAN)
生成对抗网络(Generative Adversarial Networks,GAN)最早由 Ian Goodfellow 在 2014 年提出,是目前深度学习领域最具潜力的研究成果之一。它的核心思想是:同时训练两个相互协作、同时又相互竞争的深度神经网络(一个称为生成器 Generator,另一个称为判别器 Discriminator)来处理无监督学习的相关问题。在训练过程中,两个网络最终都要学习如何处理任务。 通常,我们会用下面这个例子来说明 GAN 的原理:将警察视为判别器,制造假币的犯罪分子视为生
AI研习社
2018/03/29
1.5K0
不到 200 行代码 教你如何用 Keras 搭建生成对抗网络(GAN)
Ian Goodfellow 生成对抗网络GAN论文解析
原文:Generative Adversarial Nets https://dzone.com/articles/generative-adversarial-nets-adit-deshpande-cs-unde 作者:Adit Deshpande 编译:KK4SBB 欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn.net Yann LeCun大神曾经说过,“对抗训练是近些年来机器学习领域中最炫酷的想法”。没错,对抗训练已经在深度学习的圈子里掀起了不小的涟漪。本文将介
用户1737318
2018/06/06
1.7K0
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
生成对抗网络(GAN)是一种神经网络,可以生成类似于人类产生的材料,如图像、音乐、语音或文本。最近我们被客户要求撰写关于GAN生成对抗性神经网络的研究报告,包括一些图形和统计输出。
拓端
2023/09/06
5380
生成对抗网络(GANs )诞生以来的主要技术进展
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 来源:雷锋网 两年前,蒙特利尔大学 Ian Goodfellow 等学者提出“生成对抗网络”(Generative Adversarial Networks,GANs)的概念,并逐渐引起 AI 业内人士的注意。其实,直到 2015 年,生成对抗网络还称不上是炙手可热。但自今年以来,学界、业界对 GANs 的兴趣出现“井喷”: 多篇重磅论文陆续发表; Facebook、Open AI 等
昱良
2018/04/08
7810
生成对抗网络(GANs )诞生以来的主要技术进展
实战生成对抗网络[1]:简介
2016年3月,AlphaGO横空出世,击败人类顶尖职业棋手,引爆了人工智能热潮。之后AlphaGO Master和AlphaGO Zero更是无情的碾压人类棋手,人们终于认识到,人类迎来了可怕的对手。在这之前,人类还抱有一点幻想,某个英雄会应运而生,为人类而战,然而现实很残酷。人工智能最可怕的地方在于,其进步神速,在突破了一个瓶颈后,会引起裂变。
云水木石
2019/07/02
8810
实战生成对抗网络[1]:简介
学界丨生成对抗网络(GANs )为什么这么火?盘点它自 2014 年以来的主要技术进展
两年前,蒙特利尔大学 Ian Goodfellow 等学者提出“生成对抗网络”(Generative Adversarial Networks,GANs)的概念,并逐渐引起 AI 业内人士的注意。其实,直到 2015 年,生成对抗网络还称不上是炙手可热。但自今年(2016)以来,学界、业界对 GANs 的兴趣出现“井喷”: 多篇重磅论文陆续发表; Facebook、Open AI 等 AI 业界巨头也加入对 GANs 的研究; 它成为今年 12 月 NIPS 大会当之无愧的明星——在会议大纲中被提到逾
AI科技评论
2018/03/09
1.5K0
学界丨生成对抗网络(GANs )为什么这么火?盘点它自 2014 年以来的主要技术进展
生成对抗网络GAN系列(一)--- Generative Adversarial Nets(原始GAN)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Teeyohuang/article/details/82391022
TeeyoHuang
2019/05/26
1.4K0
【干货】Google GAN之父Ian Goodfellow ICCV2017演讲:解读生成对抗网络的原理与应用
【导读】当地时间 10月 22 日到10月29日,两年一度的计算机视觉国际顶级会议 International Conference on Computer Vision(ICCV 2017)在意大利威尼斯开幕。Google Brain 研究科学家 Ian Goodfellow 在会上作为主题为《生成对抗网络(Generative Adversarial Networks)》的Tutorial 最新演讲, 介绍了GAN的原理和最新的应用。为此,专知内容组整理了的Goodfellow的slides,进行了解读
WZEARW
2018/04/09
1.5K0
【干货】Google GAN之父Ian Goodfellow ICCV2017演讲:解读生成对抗网络的原理与应用
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
生成对抗网络(GAN)是一种神经网络,可以生成类似于人类产生的材料,如图像、音乐、语音或文本(点击文末“阅读原文”获取完整代码数据)。
拓端
2023/09/11
5950
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
生成对抗网络的发展与挑战
生成对抗网络(Generative adversarial network,GAN)由生成模型和判别模型构成,生成模型获取真实数据的概率分布,判别模型判断输入是真实数据还是生成器生成的数据,二者通过相互对抗训练,最终使生成模型学习到真实数据的分布,使判别模型无法准确判断输入数据的来源。生成对抗网络为视觉分类任务的算法性能的提升开辟了新的思路,自诞生之日起至今已经在各个领域产生了大量变体。
一点人工一点智能
2023/08/25
8940
生成对抗网络的发展与挑战
【AI前沿】深度学习基础:生成对抗网络(GAN)
生成对抗网络(GAN)是一种深度学习模型,通过两个神经网络的对抗训练来生成新的、与训练数据类似的数据。GAN由一个生成器和一个判别器组成。生成器的目标是生成看似真实的样本,而判别器的目标是区分真实样本和生成样本。
屿小夏
2024/07/13
6.8K0
【AI前沿】深度学习基础:生成对抗网络(GAN)
【深度学习】生成对抗网络(GANs)详解!
生成对抗网络(Generative Adversarial Networks)是一种无监督深度学习模型,用来通过计算机生成数据,由Ian J. Goodfellow等人于2014年提出。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。生成对抗网络被认为是当前最具前景、最具活跃度的模型之一,目前主要应用于样本数据生成、图像生成、图像修复、图像转换、文本生成等方向。
Twcat_tree
2023/10/26
8.6K0
【深度学习】生成对抗网络(GANs)详解!
【深度学习】生成对抗网络(GAN)
生成对抗网络(Generative Adversarial Networks)是一种无监督深度学习模型,用来通过计算机生成数据,由Ian J. Goodfellow等人于2014年提出。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。生成对抗网络被认为是当前最具前景、最具活跃度的模型之一,目前主要应用于样本数据生成、图像生成、图像修复、图像转换、文本生成等方向。
杨丝儿
2022/03/20
2.7K0
【深度学习】生成对抗网络(GAN)
生成对抗网络(Generative Adversarial Networks)
传统的生成指的是生成图像数据,生成有两种策略,一种是直接估计概率密度函数,机器学习模型分为两类一类是判别式模型,一类是生成式模型,生成模型是基于联合概率,判别性模型基于条件概率,生成式模型判别的是一种共生关系,判别式判别的是一种因果关系。知己估计概率密度函数生成的是概率密度函数或者概率密度函数的参数。另一种是绕开直接估计概率密度函数,直接学习数据样本生成的过程,里面没有显式函数的学习。第一种方式比较直观,但有的情况下直接生成数据样本更合适,可以避开显式概率密度函数的估计和设计,直接达到目的。
狼啸风云
2019/12/20
8.4K0
生成对抗网络(Generative Adversarial Networks)
塔秘 | 揭密GAN(生成对抗网络)
前言 生成式对抗网络(GAN),是14年GoodfellowIan在论文Generative Adversarial Nets中提出来的。Yann LeCun曾评价GAN是“20年来机器学习领域最酷的想法。本文以在图像领域表现效果较好的GAN衍生模型DCGAN为基础,带大家全面了解一下GAN的算法。 一、GAN算法原理 在介绍GAN算法之前需要先了解两个基本基本名称,生成模型和判别模型。 生成模型:就是基于根据给定观测数据,找出观测数据内部的统计规律,并且能够依据基于所得的概率分布模型,产生全新的,与观测数
灯塔大数据
2018/04/03
1.8K0
塔秘 | 揭密GAN(生成对抗网络)
深度神经网络中的对抗样本与学习
概述 最近 大半年,人工智能领域成为科技领域提到的最多的名词之一。在kdnuggets此前发布的文章(Deep Learning’s Deep Flaws)’s Deep Flaws中,深度学习大神Yoshua Bengio和他的博士生、Google科学家Ian Goodfellow在评论中与作者就深度学习对抗样本(Adversarial Examples)展开了热烈的讨论,kdnuggets编辑邀请Ian Goodfellow撰文详解他的观点以及他在这方面的工作。那么什么是对抗样本,对抗样本又是如何生成的
xiangzhihong
2018/02/06
1.1K0
深度神经网络中的对抗样本与学习
推荐阅读
相关推荐
什么是生成对抗网络(GAN)| 小白深度学习入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验