wordpress打不开rss,网站排名优化,黄岩建设局网站,wordpress评论黑名单生成式对抗网络是一种用于训练生成器模型的深度学习体系结构。GAN由两个模型组成#xff0c;一个称为生成器(Generator)#xff0c;另一个称为判别器(Discriminator)。顾名思义#xff0c;生成器生成新样本#xff0c;判别器负责对生成的样本进行真伪分类。GAN实际如何运作…生成式对抗网络是一种用于训练生成器模型的深度学习体系结构。GAN由两个模型组成一个称为生成器(Generator)另一个称为判别器(Discriminator)。顾名思义生成器生成新样本判别器负责对生成的样本进行真伪分类。GAN实际如何运作的判别器模型的性能用于更新生成器和判别器本身的网络权重。生成器实际上从未看到过数据而是根据判别器的性能不断地进行调整更具体地说是根据从判别器传回来的误差梯度进行调整。生成器逐渐学会通过产生与真实样本完全相同的样本来欺骗判别器。在这篇文章中我们将选择一个简单的一维函数来直观地理解GAN。本文分为5个部分选择一个一维函数实现判别器模型实现生成器模型训练GAN模型性能评估1.一维函数我们需要选择一个一维函数来制作模型。一维函数的形式为y f(x)其中x是输入y是对应的输出为简单起见我将使用函数y x。您可以自由选择任何函数。我们将保持输入在-0.5和0.5之间。下面给出了一个计算输入的简单函数 该函数简单地接受N个随机值并将每个值减去0.5以便将输入范围保持在-0.5和0.5之间。当为real时y1当为fake时y0。2.判别器模型判别器只是一个简单的分类模型它可以预测样本是real还是fake。判别器将两个实数值的样本作为输入并输出样本是real还是fake。我们处理的问题非常简单所以我们不需要非常复杂的神经网络我们将只采用一个隐藏层其中有25个节点。您可以自由地试验节点数或层数以提高生成器的准确性。我们将对隐藏层使用ReLu激活对输出层使用sigmoid激活。Python实现如下3.生成器模型对于生成器我们将噪声输入提供给生成器此噪声输入也称为潜在变量。潜在变量是潜在空间中的隐藏变量或未观察到的变量潜在空间是这些变量的多维空间。直到我们的生成器受到训练并赋予这些点意义该潜在空间才有意义这些点被映射到判别器的输入。我们将定义一个3维的潜在空间(可以更改维数)并实验生成器的行为和准确度如何变化。我们将对潜在空间中的每个变量使用高斯分布。生成器使用一个隐藏层该隐藏层将由15个具有ReLu激活函数的神经元组成。输出层将由两个神经元组成这两个神经元将连接到判别器层的输入。4.训练GAN模型训练GAN模型的方法有很多最简单的方法是创建一个新的模型该模型由生成器和判别器两部分组成。我们只是在逻辑上封装了生成器和判别器网络。我们将把GAN模型作为一个整体进行训练这样来自判别器的反向传播误差也会更新生成器的权重。如果判别器能够很好地进行分类那么生成器的权重将更新得更多如果判别器不能很好地进行分类那么生成器的权重将更新得少一些。这样在生成器和判别器之间就形成了一种对抗关系。Python实现代码如下判别器模型的可训练属性被设置为false这样就可以仅对standalone模型进行训练。现在我们只剩下对GAN模型进行整体训练了。我们将编写一个函数来做这个的事情。该函数将运行10000个epochs每运行2000个epochs它将评估判别器和生成器的性能。Python实现的代码如下5.评估性能在每隔一定的epochs之后我们将调用show_performance函数该函数将从生成器中获取真实样本和虚假样本并预测结果。我们还将在散点图上绘制结果以便我们可以查看GAN的性能。Python实现的代码如下在epoch 2000之后我们得到了散点图如下您的图可能会有所不同。红点表示real点蓝点表示生成器生成的点。我们可以看到蓝点已开始呈y x的形状。如果我们继续进行10000个epochs您将得到类似下面的图像。您可以尝试使用更多个epochs(例如15000或20000个epochs)来获得更好的准确性。现在我们可以看到我们已经从生成器中得到了一个更确定的样本我们可以说生成器已经学习并拟合了这个函数。也就是说仅仅通过误差梯度生成器就学会了这个函数。