图解生产对抗网络GAN

云计算分享者 2024-02-26 15:14:11

生成对抗网络(GAN)是一种深度学习模型,由生成器和判别器两个神经网络组成,它们通过对抗的方式共同训练。GAN 的目标是生成逼真的数据,这可以是图像、文本或其他类型的数据。

生成器(Generator):生成器的任务是生成与真实数据相似的样本。它接收一个随机噪声向量作为输入,通过神经网络生成新的数据样本。生成器的目标是欺骗判别器,使其无法区分生成的样本和真实数据。判别器(Discriminator):判别器的任务是评估输入的数据是真实的还是生成的。它接收来自生成器和真实数据的样本,通过神经网络输出一个概率,表示输入是真实数据的概率。判别器的目标是正确地区分真实数据和生成器生成的数据。

GAN 的训练过程是一个对抗过程,生成器和判别器相互竞争,不断提高各自的能力。生成器试图生成更逼真的数据,而判别器试图更准确地区分真实数据和生成的数据。这种对抗性的训练使得生成器能够生成越来越逼真的样本。

1.输入

输入是4个2维的噪声和4个4维的真实数据

2.生产器的第一层

将噪声向量与权重和偏差相乘以获得新的特征向量(常见的处理方式)

3.对输出进行ReLU

ReLU是最简单的函数,将输出中的数字直接设置为0.

4.生成器的第二层

将特征与权重和偏差相乘以获得新的特征向量。应用 ReLU。 但由于每个值都是正值,因此没有效果。这些新的特征向量是这个简单的 2 层生成器网络生成的“假”数据 。

5.判别器第一层

将假数据 (F) 和真实数据 (X) 馈送到第一个线性层。将 F 和 X 与权重和偏差相乘以获得新的特征向量并应用 ReLU。

6.判别器第二层

将特征与一组权重和偏差相乘以获得新特征。预期效果是将每个数据向量减少到只有一个特征值。

7.判别器:Sigmoid σ

Sigmoid函数(σ),也称为 Logistic函数,是一种常用的激活函数,通常用于神经网络中。其数学形式为:

其中, 是自然对数的底数,是输入

Sigmoid函数具有将任意实数范围的输入映射到(0,1)范围的特性。这使得它在二元分类问题中被广泛使用,因为其输出可以被解释为概率。Sigmoid函数的图像呈现典型的S形曲线,从负无穷趋近于0,然后在0到1之间缓慢上升,最终趋近于1。

将上面一步输出的值使用Sigmoid得到其相应的概率值。

8.训练:鉴别器

通过 的简单方程计算判别器的损失梯度。 为什么这么简单? 因为当我们同时使用 sigmoid 和二元熵损失时,数学会神奇地简化为这个方程。

是从判别器角度来看的目标预测。 判别器必须学会预测四个假数据 (F) 为 0,以及四个真实数据 (X) 预测为 1。 。

请注意,鉴别器的损失涉及假数据和真实数据。

计算出损失梯度后,我们可以启动反向传播过程来更新鉴别器的权重和偏差(蓝色边框)。

反向传播过程本身还是比较复杂,而且在深度学习里面大量使用,需要后面单独看。效果就是要更新那一堆和

9.训练:生成器

通过 的简单方程计算生成器的损失梯度。

是生成器角度的目标预测。 生成器必须愚弄鉴别器,使其对四个假数据 (F) 预测为 1。 。

请注意,生成器的丢失仅涉及假数据。

计算出损失梯度后,我们可以启动反向传播过程来更新生成器的权重和偏差(绿色边框)。

0 阅读:1

云计算分享者

简介:感谢大家的关注