生成モデルとGANは何ですか?テキストはコンピュータビジョンの魔法を体験します

著者:PULKIT SHARMA

翻訳:呉ジンディ、

王ティン:によるレビュー

ここでの長さは4700の言葉は読むことをお勧めします15分

この記事では、世代モデルについて説明し、対決ネットワーク(GAN)作品やトレーニング手順を生成します。

概要

  • GAN生成モデルとコンピュータビジョンアプリケーション分野における最新の進歩の中核です。
  • この記事では、GANとその各種コンポーネントの世界を紹介します。
  • レッツ・掘り下げるへ - GANのための刺激的な待機のいくつかの現実世界の例があります!

入門

あなたは写真がそれの特殊性に焦点を当てて選ぶことができます:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

この画像は、それを設定すること?

3dfef539401d43d5917b6acdee03d1aeuploading.4e448015.gifダンプは失敗した再アップロードをキャンセル生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

これらのイメージ内のすべてのオブジェクトと動物が(GAN)コンピュータ生成のビジュアルモデルに対して呼ばれるネットワークによって生成されます!これは、最も人気のある深い学習の枝の一つです。それは確かに私たちの隠された創造性を刺激するのに役立ちます!

GANは間違いなく話題の深さの研究で私の好きな地域の一つです。 絵画(古い絵で埋め足りない部分)の創造に新しい顔を生成するから-私たちはこれらのモデルは、異なる分野への応用に使用できることを好みます。

この記事では、ネットワークおよびGANを生成するためにあなたを紹介することを目指しています。また、これらの世代ネットワークのさまざまなアプリケーションを研究し、自分の仕事のコンポーネントの詳細な研究します。

ディレクトリ

1.生成モデルとは何ですか?

2.アプリケーションモデルを構築します

モデルタイプを生成します。3.

。ディスプレイの密度

B。暗黙の密度

表示濃度のモデルを学び4

5.ネットワークに対して生成する(ガン​​ズ)の紹介

ステップトレーニングプロセス6. GANのステップ

1.生成モデルとは何ですか?

まず、私たちが最初のコンセプト生成モデルを理解して、広範囲の応用を研究してみましょう。これは、あなたが別のユースケースを視覚化するのに役立ちます、と議論する際に、後GANは、それらを一緒にリンクします。

教師あり学習と教師なし学習:深さの機械学習、または学習は、私たちは主に問題の2種類を扱います。

教師付き学習では、我々は独立変数(x)とターゲット・ラベル(y)を持っています。目的は、マッピングxとyのためのマッピング機能を研究することです。

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

教師付き学習、などの分類、回帰、目標検出、画像分割の例。

一方、教師なし学習の問題は独立変数(x)が、何の目的のラベルがありません。ここでの目的は、データからの潜在的なモデルのいくつかを学ぶことです。例としては、これに教師なし学習クラスタリング、次元削減とが含まれます。

那么生成模型适合什么地方?

当我们获取训练数据后,生成模型会从训练集的数据分布中生成新样本。假设我们有一个训练集,其分布为。我们想要生成样本,以使生成的样本的分布类似于。让我进一步简化一下。

使用生成模型,我们首先学习训练集的分布,然后使用带有一些变量的学习分布生成一些新的观察值或数据点。

现在,有多种方法可以学习模型分布和数据真实分布之间的映射,我们将在后面的部分中讨论。在那之前,让我向你展示一些很棒的生成应用程序,它们可能会激发你对生成模型的兴趣。

2. 生成模型的应用

为什么我们首先需要生成模型?我一开始也有这个问题。但当我遇到的应用情况越多,我就越相信生成模型的力量。

因此,让我在本节中解释生成模型的一些用例来回答这个问题。

生成数据

你是否曾经尝试过从头开始建立一个深度学习?我们大多数人面临的最常见的挑战之一是缺乏训练数据。即使你有很多数据,我相信你也不会介意获得更多的数据!谁不喜欢更多的数据呢?

在某些行业中,我们需要更多的数据来训练更深的模型。医疗行业就是一个很好的例子。生成模型可以在这里发挥重要作用,因为它们可以用来生成新的数据。这些生成的图像可以用来增加数据集的大小。这是一个很酷的例子,生成模型被用来生成卧室的例子。

(https://arxiv.org/abs/1511.06434)

我们也可以使用生成模型来生成人脸。本文论述了逼真的人脸照片的生成。有许多这样的用例,我们可以使用生成模型来生成数据——卡通人物,名人的图像等。

图到图的翻译

我特别喜欢这个生成模型应用程序。你可以做一些有趣的事情,比如把卫星照片转换成谷歌地图,把白天的照片转换成夜晚的照片,把黑白照片转换成彩色照片,改变季节(比如把夏天转换成冬天):

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

这些都是图像到图像的翻译任务。这片论文阐述了许多图像到图像翻译任务的方法

(https://arxiv.org/abs/1611.07004)

面部老化和去老化

人脸衰老和去衰老是对人脸进行自然老化和去衰老的面部图像的绘制过程:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

这可以用于识别跨年龄的面孔,也可以用于娱乐目的。 如果你希望获得更多详细信息,请随时参考这篇论文

(https://arxiv.org/pdf/1802.00237.pdf)

生成模型还有更多应用,例如3D对象生成,注意力预测,文本到图像翻译等。 让我们首先了解不同类型的生成模型。

3. 生成模型的类型

生成模型有两种类型:

1. 显式密度模型

2. 隐式密度模型

首先,请看下表了解两者之间的区别:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

显式密度模型定义了显式密度函数,而隐式密度模型定义了可以直接生成数据的随机过程。

这是,伊恩·古德费洛(Ian Goodfellow)不同类型的生成模型的思维导图:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

让我们更详细地了解这些生成模型。

4. 了解显式密度模型

我们知道显式密度模型定义了显式密度函数。然后,它试图在训练数据上最大化该函数的可能性。根据这些显式密度模型是否易于处理,我们可以进一步将它们划分为几个子部分:

  • 可处理密度
  • 近似密度

可处理意味着我们可以定义一个参数函数来有效地捕获分布。但是许多分布,如图像的分布或语音波的分布是复杂的,很难设计一个参数函数来捕捉它们。这种没有参数函数来捕捉分布的模型属于近似密度模型。

为了定义密度函数,我们使用链式规则将图像(x)的似然分解为一维分布的乘积:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

这里p(x)表示图像x的似然性,右侧表示在给定所有先前像素的情况下,第i个像素值的概率。在定义了这个函数之后,我们最大化了训练数据的可能性。这就是可处理的显式密度模型的工作原理。

Pixel RNN和Pixel CNN是最常用的可处理密度模型。让我们在下面更加详细地讨论它们。

Pixel RNN

Pixel RNN是一种按顺序生成图像像素的深度神经网络。它从角开始生成像素,然后生成两个连续的像素。让我用一个例子来说明这一点。

假设我们要生成一个5×5的图像。它将有25像素值如下所示:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

模型将首先从一个角生成像素:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

然后,它将使用此角像素生成相应的两个像素:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

并且此过程一直持续到生成最后一个像素为止:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

像素的生成依赖于所有之前的像素值,该依赖关系使用递循环神经网络(RNN)或长短期记忆(LSTM)建模。

这是对Pixel RNN工作原理的简要概述。你可以查看官方的Pixel RNN 文件来深入阅读更多信息。(https://arxiv.org/pdf/1601.06759.pdf)

使用Piexl RNN的缺点在于速度很慢,由于生成是连续的。这就是为什么引入了Piexl CNN。

Piexl CNN

Pixel CNN的概念与Pixel RNN非常相似。 但是不是使用RNN对先前像素的依赖关系进行建模,而是在上下文区域上使用CNN。 就像在Pixel RNN中一样,我们从角落开始,然后生成两个连续的像素。

要生成像素(假设xi),模型只能使用先前生成的像素,即x1,x2,…,xi-1。 我们使用屏蔽过滤器来确保发生这种情况:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

已生成的像素的值为1,其余的赋值为0。这将仅考虑生成的像素值。与Pixel RNN的训练时间相比,Pixel CNN的训练速度更快,但是像素的生成仍然是连续的,因此过程比较慢。

综上所述,Pixel RNN和Pixel CNN都可以显式计算似然p(x),这为我们提供了一个很好的评估指标来衡量模型的性能。上面我们看到生成的样本是好的。另一方面,从这些模型生成是缓慢的,因为它是一个连续的过程。

到目前为止,我们已经看到了可处理的密度函数。我们可以直接优化这些函数在训练数据上的可能性。现在,我们将讨论一个更有生成力的模型,称为变分自动编码器(VA)。

自动编码器工作原理简述

让我们快速理解什么是自动编码器,然后我们将讨论变分自动编码器的概念,以及我们如何使用它们来生成图像。

自动编码器是一种学习低维特征表示的非监督方式。

它们由两个相互连接的网络组成——编码器和解码器。编码器的目的是获取一个输入(x)并产生一个特征图(z):

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

这个特征图 (z)的形状通常比x小,你认为为什么会这样呢?

由于我们希望z只捕获能够描述输入数据的变化的有意义的因素,所以z的形状通常小于x。现在的问题是我们如何学习这个特征表示(z)?我们如何训练这个模型?为此,我们可以在提取特征的基础上加入解码器网络,利用L2 loss训练模型:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

这是自动编码器网络的样子。该网络经过训练可以使用特征(z)来重建原始输入数据(x)。如果输出(Ẋ)不同于输入(x), L2损失将惩罚它,这有助于重建输入数据。

现在,我们如何从这些自动编码器生成新的图像?

变分自动编码器

这就是变分自编码器的用处所在。他们假设训练数据来自一些底层未观察到的表示(z)。

简单自编码器与变分自编码器的主要区别在于,我们不是直接从输入数据中提取特征,而是尝试对训练数据的概率分布进行建模。

为此,我们不是让编码器输出一个大小为n的编码向量,而是输出两个大小为n的向量——一个均值向量和另一个标准差向量。

变分自编码器的完整网络结构是这样的:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

这里的平均值控制着输入编码的中心位置,而标准差则控制着平均值编码的变化幅度。用于训练这种变分自编码器的损失函数是Kullback-Leibler发散(或KL发散)。它衡量了两个概率分布的不同程度:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

我们需要使KL差异最小化。 这优化了概率分布的参数(均值和标准差)。 一旦完成了模型训练,我们就可以从中生成新图像。 让我告诉你怎么做。

我们如何使用变分自动编码器生成图像?

训练模型后,我们将删除编码器部分,并获得以下网络:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

现在我们选择一个简单的概率分布,均值为0,标准差为1,并将其作为输入传递到上述网络。然后生成一个输出。这就是变分自编码器帮助我们生成图像的方法。

虽然这种方法对于生成图像非常有用,但是也有一些缺点。变分自编码器的一个主要缺点是生成的样本与来自最先进的GANs样本相比更加模糊和低质量。这是一个活跃的研究领域——希望我们能很快看到改进!

到目前为止,我们看到的所有生成模型都定义了一个显式的密度函数。如果我们不想显式地对密度建模,而只是隐式地从训练集中采样呢?这就是GANs的用武之地。它们有一个隐式的密度函数,有助于从训练集中采样。

5. 生成式对抗网络(GANs)简介

让我先举例说明一个架构,使GANs更容易理解:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

GAN由两个不同的网络组成:

  • 生成器网络
  • 判别器网络

让我详细解释每个网络。

发生成器网络

生成器网络的目的是在给定一些随机噪声作为输入的情况下生成图像:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

该生成器网络是神经网络或卷积神经网络(CNN)。 我们传入一些随机噪声,并且该网络使用该噪声生成图像。

判别器网络

判别器网络的工作非常简单。 它必须识别输入是真实的还是假的:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

训练集中的所有图像都标记为真(或1),生成器网络中生成的所有图像都标记为假(或0)。判别器的任务是执行二分类,它必须将输入分类为真或假(1或0)。

这个模型的优点是它是完全可求导的。由于生成器和判别器都是神经网络(或卷积神经网络),我们得到了一个完全可求导的网络。

我们对模型进行了训练,计算了判别器网络末端的损耗函数,并将损耗反向传播到判别器和生成器模型中。

这将更新两个网络的参数,并随后改进结果。生成器和判别器在一个minimax的博弈中共同训练:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

在这里:

  • p(data)表示训练集数据的分布
  • D(x)是x来自训练数据的概率
  • p(z)表示输入噪声变量

判别器(D)想要最大化目标函数,使D(x)接近1,D(G(z))接近0。它只是意味着判别器应该识别来自训练集的所有图像为真(1),生成的所有图像为假(0)。

生成器(G)想要最小化目标函数,使得D(G(z))等于1。这意味着生成器尝试生成由判别器网络分类为真实(1)的图像。

这就是产生式对抗网络(GAN)的工作原理。现在让我们讨论一下GANs的逐步训练过程。

6. GAN的分步训练过程

GAN的训练方法如下:

1. 首先,我们从随机分布中获取噪声样本,将其馈送到Generator(G)网络,并生成一些图像(假图像,label = 0):

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

2.次に、我々は、分類のネットワークアービタそれらをネットワークから発生し、トレーニングセットから実像(ラベル= 1)、及び(D)入力によって生成された偽画像(ラベル= 0)を得ます:

生成モデルとGANは何ですか? テキスト経験(リンク付き)コンピュータビジョンの魔法

 

3.あなたが観察してきたように、弁別器は、バイナリ分類器です。これは、(バイナリクロスエントロピーであってもよい)損失を算出します

4.次に、我々は、この損失のバックプロパゲーションネットワークと発電機に決定し、その重量を更新します。私たちは、の広がりを逆にするアダムやその他のオプティマイザを選択することができます

これは、GANのトレーニングプロセスです。

尾注

GANは、研究の活発な領域です。ほぼ毎週、私たちは定期的に更新にGANの次のバージョンで表示されます。あなたはここに研究者によって行われた仕事を見ることができます。

https://github.com/zhangqianhui/AdversarialNetsPapers

次回の記事では、私はケーススタディを実施し、新たな画像を生成するために、生成するネットワーク(GAN)の実装面に対して示しています。私たちを待って楽しいです!

原題:

生成モデルとガンズは何ですか?コンピュータビジョンのマジック

オリジナルリンク:

https://www.analyticsvidhya.com/blog/2020/01/generative-models-gans-computer-vision/

編集者:王ジン

林Yilin:によるレビュー

公開された462元の記事 ウォンの賞賛703 ビュー147万+

おすすめ

転載: blog.csdn.net/weixin_42137700/article/details/104455045