Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >生成对抗网络-AI快速进阶系列

生成对抗网络-AI快速进阶系列

作者头像
jack.yang
发布于 2025-04-05 12:03:42
发布于 2025-04-05 12:03:42
860
举报

1. 概述

在本教程中,我们将介绍生成对抗网络 (GAN)。

首先,我们将介绍术语生成模型及其分类法。然后,将描述GAN的架构和训练管道,并附有详细示例。最后,我们将讨论GAN的挑战和应用。

2. 生成模型

机器学习中,有两种主要的学习类型:

在监督学习中,我们被给予自变量X和相应的标签Y,我们的目标是学习一个映射函数f: X to Y,使预定义的损失函数最小化。在这些任务中,我们训练判别模型,目的是学习条件概率p(Y|X)。监督学习任务的例子包括分类、回归等。

无监督学习,我们只给自变量X,我们的目标是学习数据的一些潜在模式。在这些任务中,我们训练生成模型,目的是捕获概率p(X)。无监督学习任务的例子包括聚类、降维等。

通常,生成模型尝试学习数据的底层分布。然后,该模型能够预测给定样本的可能性,并使用学习到的数据分布生成一些新的样本。

生成模型有两种类型:

一方面,我们有明确的密度模型,假设数据的先验分布。在这里,我们定义了一个显式的密度函数,然后我们尝试在我们的数据上最大化这个函数的可能性。如果我们能以参数形式定义这个函数,我们就讨论了一个可处理的密度函数。然而,在许多情况下,如图像,不可能设计一个参数函数来捕捉所有的数据分布,我们必须使用密度函数的近似值。

另一方面,还有隐式密度模型。这些模型定义了一个直接生成数据的随机过程。GANs属于这一类:

上面,我们可以看到Ian Goodfellow提出的生成模型的分类法。

3. 生成对抗网络

3.1. 架构

让我们从由两个网络组成的 GAN 的基本架构开始。

首先,生成器将固定长度的随机向量z作为输入,并学习映射G(z)以生成模拟原始数据集分布的样本然后,我们有一个鉴别器,它将一个样本x作为输入,这个样本x要么来自原始数据集,要么来自生成器的输出分布。它输出一个标量,表示x来自原始数据集的概率

G和D都是神经网络表示的可微函数。

3.2. 损失函数

我们可以把G看作是一群制造假币的造假者,而我们可以把D比作试图检测假币的警察。G的目标是欺骗D,在不被发现的情况下使用假货币。双方都试图改进他们的方法,直到在某一时刻,无法区分真假货币。

更正式地说,D和G使用以下目标函数玩一个双人极大极小博弈:

min_G \ max_D \ log D (x) + log (1 - D (G (z)))

其中x来自原始数据集z是随机向量。

我们观察到,目标函数是用两个模型的参数定义的。G的目标是最小化log (1 - D(G(z))项,以欺骗鉴别器将假样本分类为真实样本。

同时,D的目标是最大化log D(x) + log (1 - D(G(z)),它对应于将正确标签分配给真实样本和生成器样本的概率。

这里需要注意的是,这不是一个常见的优化问题,因为每个模型的目标函数都依赖于其他模型的参数,而且每个模型只控制自己的参数。这就是我们谈论游戏而不是优化问题的原因。虽然优化问题的解是局部或全局最小值,但这里的解是纳什均衡

3.3. 训练

同步SGD用于训练GAN。在每一步中,我们抽取两批样本:

X个来自原始数据集的样本

来自先验随机分布的Z向量

然后,我们将它们传递给各自的模型,如上图所示。最后,我们同时应用两个梯度步骤:一个是更新G关于其目标函数的参数,另一个是更新D的参数。

3.4. DCGAN

最著名的图像GAN架构之一是深度卷积GAN (DCGAN),它具有以下特征。批处理归一化应用于生成器和鉴别器的所有层。当然,为了学习图像分布的真实均值和尺度,它们的输出层没有被归一化。

然后生成器使用卷积架构:

在训练过程中,使用Adam优化器代替SGD, SGD在生成器中使用ReLU激活,在鉴别器中使用Leaky ReLU激活。

3.5. 例子

现在让我们描述一下GAN如何学习生成数字“7”的图像。

首先,Generator从一些简单的先验分布中采样一个向量z,并输出一个图像G(z)。由于模型的参数是随机初始化的,因此输出的图像甚至不接近数字“7”:

在训练过程中,生成器学会了生成越来越接近原始分布(描绘数字“7”)的图像,以欺骗鉴别器。因此,在某个时刻G输出的图像更类似于数字“7”:

最后,生成器输出的图像分布和原始分布非常接近,并生成描绘数字“7”的合成图像:

4. 应用

现在让我们谈谈 GAN 的一些最有用的应用程序。

4.1. 数据增强

GAN可用于在提供的数据有限的情况下生成用于数据增强的合成样本。

4.2. 图像修复

在许多情况下,我们想要重建图像并删除不需要的对象或恢复旧图像的损坏部分。GAN 在这项任务中取得了出色的结果,就像下面的模型移除绳索一样:

4.3. 超分辨率

该术语是指从较低分辨率的图像生成高分辨率图像的过程。对于许多安全应用程序,这是一项非常有用的任务。

4.4. 图像到图像的转换

这里我们要将输入图像转换为输出图像,这是计算机图形学和图像处理中的常见任务。有许多GAN架构可以解决这个问题,比如CycleGAN

我们只提到了这些模型的几个应用。GAN可以改善许多任务,它们的适用性尚未得到充分探索。每年,我们都发现越来越多的领域可以证明 GAN 是有用的。

5. 挑战

尽管 GAN 已经在许多领域取得了成功,但在训练 GAN 进行无监督学习时,我们必须面对许多挑战。

5.1. 不收敛

正如我们前面提到的,训练GAN不是一个普通的优化问题,而是一个最小最大值游戏。因此,实现收敛到优化生成器和鉴别器目标的点具有挑战性,因为我们必须学习一个平衡点。从理论上讲,我们知道如果在函数空间中进行更新,则同时 SGD 会收敛。当使用神经网络时,这个假设不适用,理论上不能保证收敛性。此外,很多时候我们观察到生成器撤消鉴别器的进度而没有到达任何有用的地方的情况,反之亦然。

5.2. 评估

每个学习任务的一个重要方面是评估。通过检查生成器产生的合成样本,我们可以很容易地定性评估 GAN。但是,我们需要定量指标来稳健地评估任何模型。不幸的是,目前尚不清楚如何定量评估生成模型。有时,获得良好可能性的模型会生成不切实际的样本,而生成真实样本的其他模型则呈现较差的可能性。

5.3. 离散输出

为了训练GAN,生成器的架构应该是可微分的。但是,如果我们希望生成器产生离散数据,则相应的函数将不可微分。尽管针对此限制提出了许多解决方案,但没有最佳的通用解决方案。处理这个问题将帮助我们在NLP等域中使用GANs。

5.4. 使用代码

生成器将随机向量z作为输入并生成样本x。因此,可以将向量z视为样本x的特征表示,并可用于各种其他任务。然而,z给定样本x是非常困难的,因为我们想从高维空间移动到低维空间。

6. 结论

在本教程中,我们介绍了 GAN。首先,我们讨论了提出分类法的生成模型的一般领域。然后,我们描述了GAN的基本架构和训练过程。最后,我们简要提到了GAN的应用和挑战。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
普林斯顿大学教授:用理论的力量横扫深度学习(77PPT)
【新智元导读】目前深度学习的应用较为广泛,尤其是各种开源库的使用,导致很多从业人员只注重应用的开发,却往往忽略了对理论的深究与理解。普林斯顿大学教授Sanjeev Arora近期公开的77页PPT,言简意赅、深入浅出的介绍了深度学习的理论——用理论的力量横扫深度学习!(文末附PPT下载地址)
新智元
2018/07/31
4970
普林斯顿大学教授:用理论的力量横扫深度学习(77PPT)
生成对抗网络(GAN)
GAN的思想就是:这是一个两人的零和博弈游戏,博弈双方的利益之和是一个常数,比如两个人掰手腕,假设总的空间是一定的,你的力气大一点,那你就得到的空间多一点,相应的我的空间就少一点,相反我力气大我就得到的多一点,但有一点是确定的就是,我两的总空间是一定的,这就是二人博弈,但是呢总利益是一定的。
狼啸风云
2020/11/27
2.3K0
使用 GAN 进行数据增强-AI快速进阶系列
在本教程中,我们将讨论使用生成对抗网络 (GAN) 进行数据增强。首先,我们将介绍数据增强和 GAN,然后我们将介绍一个能够生成非常逼真的样本的 GAN 架构。
jack.yang
2025/04/05
4050
使用 GAN 进行数据增强-AI快速进阶系列
一文详解生成对抗网络(GAN)的原理,通俗易懂
‍‍ 作者 | 我i智能(ID:AInewworld) 来源 | 我i智能(CSDN博客) 前言 GAN网络是近两年深度学习领域的新秀,火的不行,本文旨在浅显理解传统GAN,分享学习心得。现有GAN网
用户1737318
2018/06/05
2.2K0
深度学习8:详解生成对抗网络原理
生成性对抗网络属于一组生成模型。这意味着他们能够生成/生成(我们将看到如何)新内容。为了说明这种“生成模型”的概念,我们可以看一些用GAN获得的结果的众所周知的例子。
zhangjiqun
2024/12/14
1950
深度学习8:详解生成对抗网络原理
深度学习进阶篇[8]:对抗神经网络GAN基本概念简介、纳什均衡、生成器判别器、解码编码器详解以及GAN应用场景
理性这个关键字,因为它是博弈论的基础。我们可以简单地把理性称为一种理解,即每个行为人都知道所有其他行为人都和他/她一样理性,拥有相同的理解和知识水平。同时,理性指的是,考虑到其他行为人的行为,行为人总是倾向于更高的报酬/回报。
汀丶人工智能
2023/06/01
1.3K0
深度学习进阶篇[8]:对抗神经网络GAN基本概念简介、纳什均衡、生成器判别器、解码编码器详解以及GAN应用场景
生成对抗网络GAN原理 学习笔记
(1) 学习到高维抽象的分布函数 (2) 模拟预测未来数据 (3) 处理缺省数据问题:如半监督学习 (4) 生产真实样本 建立模型,分析数据特征,还原数据,……
Natalia_ljq
2020/06/03
5830
生成对抗网络GAN原理 学习笔记
LeCun 提出基于能量的生成对抗网络,ICLR-17 重新审视 GAN
【新智元导读】LeCun对对抗生成网络(GAN)的盛赞大家都很熟悉了。在这篇新的论文中,LeCun等人将两类无监督学习方法——GAN和自编码器结合在一起,并从替代能源的角度重新审视GAN的框架。 Le
新智元
2018/03/27
1.2K0
LeCun 提出基于能量的生成对抗网络,ICLR-17 重新审视 GAN
走进深度生成模型:变分自动编码器(VAE)和生成对抗网络(GAN)
【导读】近日,深度学习爱好者Prakash Pandey发布一篇博文介绍深度生成模型。我们知道,有监督学习在很多方面都达到了很好的效果,但是,由于有监督学习由于数据集太少等缺点,研究者逐渐偏向于探索无
WZEARW
2018/04/13
5.2K0
走进深度生成模型:变分自动编码器(VAE)和生成对抗网络(GAN)
深度 | 生成对抗网络初学入门:一文读懂GAN的基本原理(附资源)
选自 Sigmoidal 作者:Roman Trusov 机器之心编译 参与:Panda 生成对抗网络是现在人工智能领域的当红技术之一。近日,Sigmoidal.io 的博客发表了一篇入门级介绍文章,对 GAN 的原理进行了解释说明。另外,在该文章的最后还附带了一些能帮助初学者自己上手开发实验的资源(包含演讲、教程、代码和论文),其中部分资源机器之心也曾有过报道或解读,读者可访问对应链接查阅。 你怎么教一台从未见过人脸的机器学会绘出人脸?计算机可以存储拍字节级的照片,但它却不知道怎样一堆像素组合才具有与人
机器之心
2018/05/08
1.6K0
深度 | 生成对抗网络初学入门:一文读懂GAN的基本原理(附资源)
生成对抗网络(Generative Adversarial Networks)
传统的生成指的是生成图像数据,生成有两种策略,一种是直接估计概率密度函数,机器学习模型分为两类一类是判别式模型,一类是生成式模型,生成模型是基于联合概率,判别性模型基于条件概率,生成式模型判别的是一种共生关系,判别式判别的是一种因果关系。知己估计概率密度函数生成的是概率密度函数或者概率密度函数的参数。另一种是绕开直接估计概率密度函数,直接学习数据样本生成的过程,里面没有显式函数的学习。第一种方式比较直观,但有的情况下直接生成数据样本更合适,可以避开显式概率密度函数的估计和设计,直接达到目的。
狼啸风云
2019/12/20
9.4K0
生成对抗网络(Generative Adversarial Networks)
BigBiGAN问世,“GAN父”都说酷的无监督表示学习模型有多优秀?
众所周知,对抗训练生成模型(GAN)在图像生成领域获得了不凡的效果。尽管基于GAN的无监督学习方法取得了初步成果,但很快被自监督学习方法所取代。
AI科技大本营
2019/07/11
1.1K0
BigBiGAN问世,“GAN父”都说酷的无监督表示学习模型有多优秀?
生成对抗网络综述:从架构到训练技巧,看这篇论文就够了
选自arXiv 机器之心编译 参与:路雪、刘晓坤、蒋思源 近日,帝国理工学院、蒙特利尔大学等研究机构共同发表论文并梳理了生成对抗网络,该论文从最基本的 GAN 架构及其变体到训练过程和训练技巧全面概述了生成对抗网络的概念、问题和解决方案。机器之心简要介绍了该论文。 原 GAN(Goodfellow et al., 2014)的完整理论推导与 TensorFlow 实现请查看机器之心的 GitHub 项目与文章:GAN 完整理论推导与实现。下面,我们将为各位读者介绍该综述论文。 论文地址:https://ar
机器之心
2018/05/10
2.5K0
【AI前沿】深度学习基础:生成对抗网络(GAN)
生成对抗网络(GAN)是一种深度学习模型,通过两个神经网络的对抗训练来生成新的、与训练数据类似的数据。GAN由一个生成器和一个判别器组成。生成器的目标是生成看似真实的样本,而判别器的目标是区分真实样本和生成样本。
屿小夏
2024/07/13
7.4K0
【AI前沿】深度学习基础:生成对抗网络(GAN)
『一起学AI』生成对抗网络(GAN)原理学习及实战开发
在某种形式上,我们使用了深度神经网络学习的从数据示例到标签的映射。这种学习称为判别学习,例如,我们希望能够区分照片中的猫和狗中的照片。分类器和回归器都是歧视性学习的例子。通过反向传播训练的神经网络颠覆了我们认为关于大型复杂数据集的判别式学习的所有知识。在短短5至6年间,高分辨率图像的分类精度已从无用提高到了人类水平。我们将为您提供其他所有关于深度神经网络效果惊人的其他判别任务的帮助。
小宋是呢
2021/04/16
1.1K0
『一起学AI』生成对抗网络(GAN)原理学习及实战开发
生成对抗网络(GAN)的应用与发展
近年来,生成对抗网络(GAN)得到广泛的研究,已经在一些特定应用上与其它机器学习算法相结合,针对有监督学习、半监督学习、无监督学习任务都有许多新型算法涌现出来。同时,由于 GAN 无需显式建模任何数据分布就可生成Real-like的样本,因此已经广泛应用到了诸如计算机视觉、自然语言处理等领域中。
灯塔大数据
2020/12/14
4K0
生成对抗网络(GAN)的应用与发展
万字综述之生成对抗网络(GAN)
前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian Goodfellow 或者自动化所王飞跃老师那篇。可是在深度学习,GAN 领域,其进展都是以月来计算的,感觉那两篇综述有些老了。
机器之心
2019/04/29
3.4K0
万字综述之生成对抗网络(GAN)
GAN生成对抗网络入门介绍
GAN(Generative Adversarial Network)生成对抗网络,由Ian Goodfellow在2014年提出。
Minerva
2020/06/16
2.7K0
GAN生成对抗网络入门介绍
GAN的训练技巧:炼丹师养成计划 ——生成式对抗网络训练、调参和改进
生成对抗网络(GAN:Generative adversarial networks)是深度学习领域的一个重要生成模型,即两个网络(生成器和鉴别器)在同一时间训练并且在极小化极大算法(minimax)中进行竞争。这种对抗方式避免了一些传统生成模型在实际应用中的一些困难,巧妙地通过对抗学习来近似一些不可解的损失函数。
中杯可乐多加冰
2024/08/15
6990
如何快速理解GAN?这里有一篇最直观的解读
本文授权转自雷克世界(ID:raicworld) 编译 | 嗯~阿童木呀、KABUDA 让我们假设这样一种情景:你的邻居正在举办一场非常酷的聚会,你非常想去参加。但有要参加聚会的话,你需要一张特价票,而这个票早就已经卖完了。 而对于这次聚会的组织者来说,为了让聚会能够成功举办,他们雇佣了一个合格的安全机构。主要目标就是不允许任何人破坏这次的聚会。为了做到这一点,他们在会场入口处安置了很多警卫,检查每个人所持门票的真实性。 考虑到你没有任何武术上的天赋,而你又特别想去参加聚会,那么唯一的办法就是用一张非
AI科技大本营
2018/04/26
7550
如何快速理解GAN?这里有一篇最直观的解读
推荐阅读
相关推荐
普林斯顿大学教授:用理论的力量横扫深度学习(77PPT)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档