一文读懂生成对抗网络GANs(附学习资源)
- 格式:doc
- 大小:32.00 KB
- 文档页数:9
理解神经网络中的对抗生成网络近年来,神经网络技术的快速发展为人工智能领域带来了巨大的突破。
其中,对抗生成网络(GANs)作为一种强大的生成模型,引起了广泛的关注和研究。
GANs的独特之处在于其能够通过两个相互竞争的神经网络模型实现生成模型和判别模型的训练。
本文将深入探讨GANs的原理、应用和挑战。
首先,我们来了解GANs的基本原理。
GANs由生成器网络和判别器网络组成。
生成器网络负责生成与训练数据相似的新样本,而判别器网络则负责判断输入样本是真实样本还是生成样本。
两个网络通过博弈的方式相互竞争,通过反复迭代训练,生成器网络逐渐学习到生成逼真的样本,而判别器网络则逐渐变得更加准确。
其次,GANs在各个领域都有着广泛的应用。
在计算机视觉领域,GANs可以用于图像生成、图像修复和图像转换等任务。
通过学习大量真实图像数据集,生成器网络可以生成逼真的图像样本,这在人脸生成、风格转换等任务中具有很大的潜力。
此外,在自然语言处理领域,GANs也可以用于文本生成、机器翻译和对话系统等任务。
通过学习大量真实文本数据集,生成器网络可以生成具有语义和语法正确性的文本样本,从而提升自然语言处理任务的效果。
然而,GANs也面临着一些挑战和困难。
首先,GANs的训练过程相对不稳定。
由于生成器网络和判别器网络的相互竞争,训练过程容易陷入不稳定状态,导致生成器网络无法学习到有效的生成规律。
其次,GANs的训练需要大量的计算资源和时间。
由于GANs的训练过程需要反复迭代更新两个网络,因此需要大量的计算资源和时间来完成训练过程。
此外,GANs还存在着生成样本的多样性不足和模式崩溃等问题,这也给GANs的应用带来了一定的挑战。
为了克服这些挑战,研究者们提出了许多改进的GANs模型。
例如,条件对抗生成网络(cGANs)引入了条件信息,使得生成器网络可以根据给定的条件生成对应的样本。
这在图像生成和图像转换等任务中具有重要的意义。
另外,生成对抗网络的变体如Wasserstein GANs和CycleGANs等也为GANs的应用提供了新的思路和方法。
生成对抗网络GAN综述生成对抗网络(Generative Adversarial Networks,GAN)是一种机器学习技术,旨在通过两个对抗性的神经网络模型,即生成器和判别器,来进行生成模型的训练和生成样本的推断。
GAN的目标是使生成器能够生成与真实样本相似的新样本,以此来提高生成器的效果。
GAN的基本原理是使用生成器模型生成虚假样本,并使用判别器模型判断这些样本是真实样本还是虚假样本。
生成器和判别器通过对抗学习的方式进行训练,生成器试图欺骗判别器,而判别器试图准确区分真实和虚假样本。
通过不断的对抗学习训练,生成器和判别器逐渐提高,最终达到生成逼真样本的目的。
GAN能够用于各种生成任务,如图像生成、音频生成和文本生成等。
其中,图像生成是GAN应用最广泛的领域之一。
在图像生成任务中,生成器的输入通常是一个随机向量,经过一系列变换生成一张逼真的图像。
而判别器则是一个二分类模型,用来判断输入的图像是真实样本还是生成样本。
在GAN的训练过程中,有两个重要的损失函数需要优化,即生成器的损失函数和判别器的损失函数。
生成器的损失函数用来衡量生成器生成的样本与真实样本之间的差异,判别器的损失函数用来衡量判别器对真实样本和生成样本进行判断的准确性。
GAN的训练过程通常是通过交替训练生成器和判别器来完成的。
首先,生成器生成一批虚假样本,并将其输入到判别器中进行判断。
判别器输出判别结果,根据判别结果计算判别器的损失,并更新判别器的参数。
然后,生成器再次生成虚假样本,并通过判别器进行判断,计算生成器的损失,并更新生成器的参数。
通过反复迭代这个过程,生成器和判别器会逐渐提高。
然而,GAN的训练过程也存在一些挑战。
首先,GAN的训练过程相对不稳定,容易产生模式崩溃或模式塌陷现象。
其次,GAN的训练需要大量的样本数据来获得良好的生成效果,但有时很难获得足够数量的样本数据。
此外,GAN的训练时间较长,需要较高的计算资源和算法优化。
生成对抗网络(GANs)介绍从生成图像到风格转换的应用生成对抗网络(GANs)是一种机器学习模型,由生成器和判别器组成。
生成器负责生成与真实样本相似的图像或数据,而判别器则负责判断给定的图像或数据是真实的还是生成的。
GANs的主要目标是让生成器能够生成足够逼真的图像,以至于判别器无法区分它们是真实的还是生成的。
GANs的应用非常广泛,从生成图像到风格转换都得到了极大的发展和应用。
下面将介绍几个主要的应用领域。
一、生成图像生成图像是GANs最为广泛应用的领域之一。
通过训练生成器和判别器,GANs可以生成各种类型的图像。
通过输入一些随机噪声向量,生成器可以产生逼真的图像,这些图像与真实图像非常相似。
生成图像的应用包括艺术创作、图像增强和图像合成等。
二、图像修复GANs还可以用于图像修复。
在真实世界中,图像常常因为噪声、遮挡或其他原因而受损。
通过训练生成器,可以用损坏的图像作为输入,生成修复后的图像作为输出。
生成器能够学习到图像修复的模式和规律,从而为受损图像提供有效的修复方案。
三、图像转换GANs可以实现图像的风格转换。
通过训练生成器,可以将输入图像的风格转换为另一种风格。
这个应用非常有趣,它可以将一幅油画转换为素描或者印象派的风格。
GANs的图像转换应用对于艺术创作和设计等领域具有很高的实用价值。
四、视频合成除了图像处理,GANs还可以应用于视频合成。
通过利用时间维度上的连续性,GANs可以生成具有连贯动画效果的图像序列。
这种方法可以用于视频游戏、影视特效等应用领域。
五、虚拟现实GANs在虚拟现实(VR)方面也有应用。
VR技术需要生成逼真的虚拟环境,而GANs可以通过生成器生成逼真的图像和场景,从而提供更加真实的VR体验。
六、医学图像处理GANs在医学图像处理方面也有广泛的应用。
通过训练生成器,可以生成逼真的医学图像,用于医学诊断和研究。
此外,GANs还可以用于图像分割、病变检测等医学图像处理任务。
了解生成对抗网络(GAN)技术像生成和样式迁移生成对抗网络(GAN)是一种深度学习模型,旨在通过训练生成器网络和判别器网络来生成逼真的图像和进行样式迁移。
本文将介绍GAN技术的基本原理和应用,帮助读者更好地了解这一先进的人工智能技术。
一、GAN的基本原理生成对抗网络由生成器网络(Generator Network)和判别器网络(Discriminator Network)组成。
生成器网络负责生成逼真的图像,而判别器网络通过判断输入的图像是真实图像(来自训练集)还是生成器生成的图像来评估其真实性。
生成器和判别器在训练过程中相互对抗,逐渐提高生成器生成逼真图像的能力。
二、GAN的工作原理1. 生成器网络:生成器网络通常采用卷积神经网络(CNN)或者全连接神经网络(FCN)构建。
它接收一个随机噪声向量作为输入,并尝试生成具有高逼真度的图像,使得判别器无法区分其与真实图像的差异。
生成器的目标是最小化判别器对生成图像的判别准确性,从而生成越来越逼真的图像。
2. 判别器网络:判别器网络也通常采用CNN或者FCN构建,其目标是根据输入图像判断其真实性。
判别器接收真实图像和生成器生成的图像作为输入,并通过二元分类器输出一个概率值,表示输入图像是真实图像的概率。
判别器的目标是最大化对真实图像和生成图像的准确判断能力。
3. 对抗训练:GAN的训练过程是一个对抗性的过程。
在每次训练迭代中,生成器和判别器网络交替进行训练。
生成器尝试生成逼真的图像以欺骗判别器,而判别器则努力提高对真实图像和生成图像的判别能力。
通过不断迭代优化生成器和判别器网络,可以达到生成更逼真图像的目的。
三、GAN的应用领域1. 图像生成:GAN技术在图像生成领域具有广泛的应用。
通过训练生成器网络,可以生成逼真的人脸、风景等图像。
这对于游戏开发、虚拟现实等领域的图像生成具有重要意义。
2. 样式迁移:GAN技术还可以用于图像样式迁移。
通过将样式图像与内容图像输入生成器网络,可以生成一张融合两者特点的新图像。
了解生成对抗网络(GAN)中的无监督学习技术与应用生成对抗网络(GAN)是一种无监督学习技术,它具有广泛的应用。
本文将介绍GAN的基本原理和各种应用领域,以帮助读者更全面地了解该技术。
一、GAN的基本原理生成对抗网络是由生成器(Generator)和判别器(Discriminator)两部分组成的。
生成器试图生成逼真的样本,而判别器则试图区分真实样本和生成样本。
两个部分相互博弈,通过反复训练迭代使得生成器的生成能力不断提升,最终达到较高的质量。
GAN的原理可以简单概括为以下几个步骤:1. 初始化生成器和判别器的参数。
2. 通过真实样本和生成器生成的样本,分别训练判别器,使其能够正确判断样本的真伪。
3. 固定判别器的参数,训练生成器,使其生成的样本更加逼真。
4. 不断迭代上述步骤,直到生成器和判别器的性能达到稳定。
二、GAN的应用领域1. 图像生成与修复:GAN可以用于生成逼真的图像样本,如人脸生成、风景生成等。
同时,GAN还可以通过修复缺失或损坏的图像,提高图像修复的效果。
2. 文本生成与翻译:GAN可以用于生成自然语言文本,如情感文本生成、代码生成等。
此外,GAN还可以应用于机器翻译领域,提高翻译质量。
3. 视频生成与预测:GAN可以生成连续帧的视频样本,通过训练生成器,使其能够生成逼真的动态图像。
此外,GAN还可以应用于视频预测,通过当前帧预测下一帧的内容。
4. 增强现实与虚拟现实:GAN可以生成虚拟场景,为增强现实和虚拟现实提供逼真的体验。
通过训练生成器,可以生成逼真的虚拟物体和场景。
5. 数据增强与样本合成:GAN可以生成大量的合成样本,用于数据增强,提高模型的泛化能力。
通过生成器生成的样本可以缓解数据不平衡问题。
三、GAN的发展与挑战尽管GAN在无监督学习领域取得了巨大的成功,但仍然存在一些挑战。
1. 生成样本的多样性:GAN生成的样本可能存在多样性不足的问题,导致生成的样本模式单一。
了解生成对抗网络(GAN)的原理和应用场景生成对抗网络(Generative Adversarial Network,简称GAN)是一种机器学习模型,由两个神经网络组成:生成器(Generator)和判别器(Discriminator)。
GAN的目标是通过让生成器和判别器相互对抗来提高生成器生成的样本的质量。
一、GAN的原理GAN的基本原理是通过对抗学习的方式训练生成器和判别器。
生成器的任务是从随机噪声中生成尽可能逼真的样本,而判别器的任务是判断一个样本是来自真实数据集还是由生成器产生。
具体来说,生成器接收一个随机噪声向量作为输入,并将其转换为一个与真实数据相似的样本。
判别器接收一个样本作为输入,并输出该样本来自真实数据集的概率。
生成器和判别器通过对抗学习的方式进行迭代训练,生成器试图欺骗判别器,生成更加真实的样本,而判别器则试图辨别出生成的样本。
二、GAN的应用场景1. 图像生成GAN在图像生成任务中取得了很大的成功。
生成器可以从噪声中生成逼真的图片,如逼真的人脸、自然风景等。
GAN还可以用于图像超分辨率,即从低分辨率图像生成高分辨率图像。
2. 数据增强GAN可以用于数据增强,通过对真实数据进行少量的扰动和变换生成更多的训练样本。
这些生成的样本可以提高训练的泛化能力和鲁棒性。
3. 语音合成GAN可以用于语音合成,生成逼真的说话声音。
通过训练生成器,可以使合成的语音达到接近真实语音的水平。
4. 强化学习GAN可以与强化学习相结合,用于生成虚拟环境中的训练数据。
生成器可以生成逼真的环境和状态,而判别器可以评估生成的状态的好坏,从而对生成器进行优化。
5. 动态物理模拟GAN可以用于动态物理模拟,生成逼真的物理场景和运动轨迹。
这在游戏开发和虚拟现实领域有着广泛的应用。
三、GAN的挑战和未来发展尽管GAN已经在许多领域取得了显著的成果,但它仍面临一些挑战。
其中一个挑战是模式坍塌问题,即生成器输出的样本变得相似度太高,缺乏多样性。
掌握深度学习中的生成对抗网络和变分自编码器生成对抗网络(GANs)和变分自编码器(VAEs)是深度学习中广泛应用的两种生成模型。
它们在模拟和生成数据方面有着独特的优势。
本文将介绍这两种模型的原理、应用和发展趋势。
一、生成对抗网络(GANs)生成对抗网络(GANs)由生成器(Generator)和判别器(Discriminator)组成。
生成器试图生成与真实数据相似的假数据,而判别器则负责将真实数据与生成的假数据区分开来。
在训练过程中,生成器和判别器不断通过对抗的方式进行优化,最终生成器能够生成高质量的假数据。
GANs的应用非常广泛。
例如,在计算机图像生成中,GANs可以用于生成逼真的人脸图片。
此外,在自然语言处理领域,GANs也可以用于生成写作风格独特的文章或诗歌。
近年来,GANs在医药领域也有突破性进展,可以用于生成新的分子结构,帮助药物发现研究。
GANs的发展也面临着一些挑战。
首先,GANs的训练过程不稳定,容易出现模式崩溃或模式坍塌的问题。
其次,GANs的训练需要大量的数据和计算资源,对硬件设备和数据集的要求较高。
此外,对于GANs 生成的假数据,如何进行评估和量化也是一个难题。
相对于GANs,变分自编码器(VAEs)是一种更为稳定和迅速的生成模型。
二、变分自编码器(VAEs)变分自编码器(VAEs)是一种基于概率模型的生成模型。
它将输入数据通过一个编码器(Encoder)映射到潜在空间,并在潜在空间中进行采样。
然后,通过解码器(Decoder)将潜在空间的向量解码为生成的数据。
与GANs不同,VAEs通过最大化数据的后验概率进行训练。
VAEs的应用也非常广泛。
在图像生成方面,VAEs可以用于生成逼真的人脸、动物等图像。
在自然语言处理领域,VAEs可以用于生成有逻辑和上下文的文章段落。
此外,VAEs还可以应用于数据压缩和降维等领域。
VAEs也面临一些挑战。
例如,VAEs生成的数据相对于GANs的输出来说可能不够清晰和逼真。
了解生成对抗网络(GAN)的原理与应用生成对抗网络(GAN)已经成为人工智能领域中备受关注的热门技术之一。
GAN是一种由生成器网络和判别器网络组成的模型,通过两个网络之间的博弈来实现生成模型的训练。
本文将介绍GAN的原理和应用,并探讨其在计算机视觉、自然语言处理等领域中的具体应用。
一、GAN的原理GAN的基本原理可以简单地描述为生成器网络和判别器网络互相对抗的过程。
生成器网络接收一个随机噪声向量作为输入,并生成一个与训练数据相似的样本。
判别器网络则负责判断输入数据是真实样本还是生成器生成的样本。
生成器网络和判别器网络通过反复迭代的方式不断优化,使得生成器生成的样本能够更好地骗过判别器。
例如,在图像生成任务中,生成器网络通过学习训练数据中的样本分布,能够生成与训练数据相似的图像。
判别器网络则通过学习区分生成器生成的图像和真实图像的特征,以此提高判别的准确率。
生成器和判别器通过对抗学习的方式不断调整参数,最终达到一个对抗平衡的状态。
二、GAN的应用GAN在计算机视觉、自然语言处理等领域具有广泛的应用。
以下将分别介绍几个典型的应用案例:1. 图像生成GAN在图像生成领域有着重要的应用。
通过GAN,我们可以生成逼真的、与真实图像相似的虚拟图像。
这在游戏开发、电影特效等领域具有重要的意义。
比如,GAN可以通过学习真实人脸数据集,生成逼真的虚拟人脸图像,用于游戏中的角色设计。
2. 图像修复GAN还可以应用于图像修复。
在这种情况下,生成器网络接收一个有缺陷的图像,并生成一个修复后的图像。
判别器网络则负责判断生成的图像是否与真实图像相似。
通过这种方式,我们可以修复被破坏或模糊的图像,提高图像的质量。
3. 图像转换GAN还可以实现图像的风格迁移和转换。
通过学习两个不同样式图像集合,生成器网络可以将一个图像的内容从一个样式转换为另一个样式。
这在风格迁移、图像风格转换等任务中具有重要的应用。
4. 自然语言处理除了在计算机视觉领域,GAN也被广泛应用于自然语言处理任务中。
图解生成对抗网络GAN原理超详解生成对抗网络(Generative Adversarial Networks, GANs)是深度学习领域中一种强大的生成模型,其由一个生成器网络(Generator)和一个判别器网络(Discriminator)组成。
GAN的目标是通过训练生成器和判别器来使生成器能够生成接近真实数据分布的样本。
GAN的训练过程可以简述为生成器和判别器之间的博弈过程。
生成器的目标是生成看起来像真实数据的样本,而判别器的目标是尽可能准确地区分生成器生成的样本和真实数据。
生成器和判别器通过对抗训练,相互提高,从而达到提高生成器生成样本质量的目的。
以下是GAN的训练过程的详细步骤:1.初始化生成器和判别器的参数。
生成器的输入是一个随机噪声向量,输出是一个与真实数据相同形状的样本。
判别器的输入可以是生成器生成的样本或真实数据,输出是一个标量,表示输入为真实数据的概率。
2.从真实数据集中随机选择一个真实样本,将其输入到判别器中,判别器输出一个标量,表示输入为真实数据的概率。
3.从生成器的输入分布中采样一个随机噪声向量,并将其输入到生成器中,生成器输出一个样本。
4.将生成器生成的样本和真实样本分别输入到判别器中,判别器输出两个标量,分别表示输入为生成器生成的样本和真实样本的概率。
5.计算生成器的损失函数,生成器的目标是使其生成的样本被判别器判断为真实样本的概率尽可能高。
6.计算判别器的损失函数,判别器的目标是使其能够准确地判断生成器生成的样本和真实样本的概率。
7.更新生成器的参数,通过梯度下降的方法最小化生成器的损失函数。
8.更新判别器的参数,通过梯度下降的方法最小化判别器的损失函数。
9.重复步骤2到8,直到生成器生成的样本质量满足要求或达到预设的迭代次数。
通过以上步骤,在迭代的过程中,生成器会逐渐学习到如何生成逼真的样本,而判别器会逐步提高其判别的准确性。
最终,生成器生成的样本将趋近于真实数据的分布。
一文读懂生成对抗网络GANs(附学习资源)原文标题:AnIntuitive Introduction to Generative Adversarial Networks作者:KeshavDhandhania、ArashDelijani翻译:申利彬校对:和中华本文约4000字,建议阅读10分钟。
本文以图像生成问题引出GAN模型,并介绍了GAN模型的数学原理和训练过程,最后提供了丰富的GAN学习资料。
本文讨论生成对抗网络,简称GANs。
在生成任务或更广泛的无监督学习中,GANs是为数不多在此领域表现较好的机器学习技术之一。
特别是他们在图像生成相关任务上拥有出色表现。
深度学习领域先驱Yann LeCun,称赞GAN是机器学习近十年来最好的想法。
最重要的是,GAN相关核心概念很容易理解(事实上,读完本文后你就可以对它有个清晰的认识)。
我们将GANs应用在图像生成任务中,并以此来解释GANs,下面是本文的概要:简单回顾深度学习图像生成问题生成任务中的关键问题生成对抗网络挑战进一步阅读总结简单回顾深度学习(前馈)神经网络示意图,棕色为输入层,黄色为隐藏层,红色为输出层我们先简单介绍一下深度学习。
上图是神经网络示意图,它是由神经元组成,神经元之间通过边相互连接,而且神经元按层排列,中间为隐藏层,输入层和输出层分别在左右两侧。
神经元之间的连接边都有权重,每一个神经元都会根据与其连接的神经元的输入值加权求和,然后带入非线性激活函数中计算,这类激活函数有Sigmoid和ReLU。
例如,第一层隐藏层神经元对来自输入层神经元的值进行加权求和,然后再应用ReLU函数。
激活函数引入了非线性,它使神经网络可以模拟复杂的现象(多个线性层等价于一个线性层)。
给一个特定的输入,我们依次计算每个神经元输出的值(也称为神经元的活性)。
从左到右,我们利用前层计算好的值来逐层计算,最后得到输出层的值。
然后根据输出层的值和期望值(目标值)定义一个损失函数,例如,均方误差损失函数。
其中,x是输入,h(x)是输出,y 是目标值,总和包含数据集中所有数据点。
在每步中,我们的目标是以合适的数值优化每条边的权重,从而尽可能降低损失函数的大小。
我们计算出梯度值,然后利用梯度具体优化每一个权重。
当我们计算出损失函数值,就可以用反向传播算法计算梯度。
反向传播算法的主要结果是:利用链式求导法则和后一层参数的梯度值来计算这层的梯度。
然后,我们通过与各个梯度成比例的量(即梯度下降)来更新每个权重。
如果你想要进一步了解神经网络和反向传播算法的细节,我推荐你阅读Nikhil Buduma写的简单学习深度学习(Deep Learning in aNutshell)nikhilbuduma./2014/12/29/deep-learning-in-a-nutshel l/图像生成问题图像生成问题上,我们希望机器学习模型可以生成图像。
为了训练模型,我们得到了一个图像数据集(比如从网络下载的1,000,000图片)。
在测试的时候,模型可以生成图像,这些图像看起来像属于训练集,但实际上并不是训练集中的图像。
也就是说,我们想生成新的图像(与单纯地记忆相反),但仍然希望它能捕获训练数据集中的模式,从而使新的图像感觉与训练数据集相似。
图像生成问题:没有输入,所需的输出是一个图像需要注意的一点是:在测试或预测阶段,这个问题没有输入。
每次“运行模型”时,我们希望它生成(输出)一个新的图像。
这可以说输入将从一个容易抽样的分布(例如均匀分布或高斯分布)中随机抽样而来。
生成任务中的关键问题生成任务中的关键问题是:什么是一个好的损失函数?假如你有两机器学习模型生成的图片,我们如何决定哪一个更好,好多少呢?在以前的方法中,这个问题最常见的解决方案是计算输出图像和训练集中最邻近图像的距离,其中使用一些预定义的距离度量标准来计算距离。
例如,在语言翻译任务中,我们通常有一个源语句和一个小的(约5个)目标句子集,也就是由不同翻译人员提供的译文。
当模型生成一个译文,我们把译文与提供的目标句子比较,然后根据它距离哪个目标句子最近,分配一个相应的分数(特别是,我们是用BLEU分数,它是根据两个句子之间有多少个n-grams匹配的距离度量标准)。
但这是一种单句子翻译方法,当目标是一个较大的文本时,同样的方法会使损失函数的质量严重恶化。
例如,我们的任务可能是生成给定文章的段落摘要,那么这种恶化源于少量的样本无法代表在所有可能的正确答案中观察到的变化围。
生成对抗网络GAN针对上面问题的回答是:用另外一个神经网络---记分神经网络(称为判别器Discriminator),它将评估生成神经网络输出的图像的真实性。
这两个神经网络具有相反的目标(对抗),生成网络的目标是生成一个看起来真实的假图像,判别网络的目标是区分假图像和真实图像。
这将生成任务的设置类似于强化学习的双人游戏(如象棋,Atari games or 围棋),在强化学习中我们有一个从零开始通过自我对抗不断改进的机器学习模型。
象棋或者围棋这些游戏的对抗双方总是对称的(尽管并非总是如此),但对于GAN的设置,两个网络的目标和角色是不相同的。
一个网络产生假的样本,而另一个网络区分真的和假的样本。
生成对抗网络的示意图,生成器网络标记为G,判别器网络标记为D 如上图所示,是生成对抗网络示意图。
生成网络G和判别网络D在进行一场双方极大极小博弈。
首先,为了更好地理解这种对抗机制,需要注意到判别网络(D)的输入可以是从训练集中抽样出的样本,也可以是生成网络(G)的输出,不过一般是50%来自训练集,剩余50%来自G。
为了从G中生成样本,我们从高斯分布中提取潜在的向量并输入生成网络(G)。
如果我们想生成200*200的灰度图像,那么生成网络(G)的输出应该是200*200的向量。
下面给出目标函数,它是判别网络(D)做预测的标准对数似然函数。
生成网络(G)是最小化目标函数,也就是减小对数似然函数或是说“迷惑”判别网络(D)。
也就是说,无论何时从生成网络(G)输出中抽取样本作为判别网络(D)的输入,都希望判别网络识别为真样本。
判别网络(D)是要最大化目标函数,也就是要增大对数似然函数或者说是把真实样本和生成样本区分开。
换句话说,如果生成网络(G)在“迷惑”判别网络(D)上效果很好,也就会通过增大公式第二项中D(G(z))来最小化目标函数。
另外,如果判别网络(D)能很好地工作,那么在从训练数据中选择样本的情况下,会通过第一项(因为D(x)很大)增大目标函数,也会通过第二项减小它(因为D(x)很小)。
如同平常的训练过程一样,使用随机初始化和反向传播,此外,我们需要单独交替迭代更新生成器和判别器。
下面是在特定问题上应用GANs的端到端的工作流程描述:1. 决定GAN网络架构:G的架构是什么?D的架构是什么?2. 训练:一定数量的交替更新更新D(固定G):一半样本是真的,另一半是假的更新G (固定D):生成所有样本(注意,即使D保持不变,梯度流还是会经过D)3. 人工检查一些假样本,如果质量很高(或者质量没有提升)则停止,否则重复2。
当G和D都是前馈神经网络时,我们得到的结果如下(在MNIST数据集中训练)来自Goodfellow et. Al,从训练集开始,最右边一列(黄色框)图像与其紧邻左边一列的图像最接近。
其它所有图像都是生成的样本关于G和D我们可以使用更复杂的架构,例如使用跳格卷积(strided convolutional)和adam优化器来代替随机梯度下降。
另外,还有其它一些方面的改进,例如优化架构,使用超参数和优化器(具体可参考论文)。
改进后,我们得到了如下的结果:卧室图片,来自Alec Radford et. Al 挑战训练GANs最关键的挑战是有可能不收敛,有时这个问题也被称为模式崩溃(mode collapse)。
举个例子,来简单解释这个问题。
假设任务是生成数字图像,就像MNIST数据集中的一样。
可能出现的问题(实践中确实出现)是生成器G开始生成数字6,而不能生成其它数字。
一旦D适应G的当前行为,为了最大限度地提高分类的准确性,它开始把所有的数字6归为假,所有其它数字都是真实的(假设它不能分辨假的6和真实的6)。
然后G又适应了D的当前行为,开始只生成数字8而不生成其它数字。
然后D又适应,开始把数字8归为假,其它的都是真。
接着G又开始只生成3,如此循环下去。
基本上,生成器G仅生成与训练数据集的一个小的子集相似的图像,而一旦识别器D开始把这个小的子集与其余的区分开,生成器G又转换到另外的子集,它们将一直简单的来回震荡。
虽然这个问题没有被完全解决,但还是有一些方法可以避免这个问题。
这些方法涉及小批量特征(minibatch features)和多次更新D的反向传播。
我们不再讨论这些方法的细节,如果要了解更多信息,请查看下一节中的建议阅读材料。
进一步阅读如果你想更深一步了解GANs,我建议你阅读ICCV 2017 tutorials on GANs(https://sites.google./view/iccv-2017-gans/home),那里有很多最新的教程,并且它们对GANs的不同方面各有侧重。
我还想说一点关于条件GANs(Conditional GANs)的概念,条件GANs,是在输入的条件下产生输出。
例如,任务可能是输出与输入描述相匹配的图像。
所以,当你输入狗时,输出的应该是狗的图像。
下面是一些最近研究的成果(附论文)。
文本到图像合成(‘Text to Image synthesis’)成果,作者Reed et. al超分辨率图像(Image Super-resolution)成果,作者Ledig et. Al图像到图像转换(Image to Image translation)成果,作者Isola et. Al生成高分辨率名人相(Generating high resolution‘celebritylike’images),作者Karras et. Al 最后也是最重要的,如果你想阅读更多关于GANs资料,请查看这个按照GANs的应用分类的论文列表:https://github./zhangqianhui/AdversarialNetsPapers 100+GAN的变种论文清单:https://deephunt.in/the-gan-zoo-79597dc8c347 总结通过这篇文章,希望你可以理解深度学习领域中的一种新技术—生成对抗网络。
它们是无监督机器学习中少数成功的技术,并且这种技术正在快速革新我们执行生成任务的能力。
过去的几年中,我们发现了一些让人印象深刻的成果。
GANs 应用在语言任务中,提高语言任务的稳定性和训练的方便性,等等,也是研究的热点。