什么是生成对抗网络(GANs)?
0 1079
0
该提问暂无详细描述
收藏
2021-01-20 17:04 更新 🍊小桔子 •  2437
共 1 个回答
高赞 时间
0

生成对抗网络(GANs)是一种以对抗方式训练的神经网络,用于生成模拟某些分布的数据。

首先,要深入理解这一点,你必须理解什么是生成模型。在机器学习中,两类主要的模型是生成模型和判别模型。

判别模型是一种能够区分两类(或更多)不同数据的模型——例如,卷积神经网络被训练为给定人脸图像输出1,否则输出0。另一方面,生成模型对数据类一无所知,它的目的是生成新的数据符合训练数据的分布——例如,一个高斯混合模型是一个生成模型,训练后的一组点,能够产生新的随机点或多或少地适应训练数据的分布(假设GMM能够模拟数据)。

更具体地说,在从真实分布𝑋采样的训练数据𝑔上训练生成模型𝐷,在给定一些标准随机分布𝑍的情况下,根据某种接近度度量(𝐷𝑧映射到样本𝑔(𝑧)〜𝐷'),产生一个分布𝐷'。

在给定训练数据的情况下,确定生成模型的“标准”方法是最大似然,这需要对边际概率,分区函数,最可能的估计等进行各种计算。当生成模型是GMM,但是如果您想尝试使用深层神经网络建立生成模型,这会变得难以处理。

对抗性训练允许你训练生成模型,而不需要所有这些棘手的计算。让我们假设训练数据𝑋⊂ℝ𝑑。基本的想法是,你将有两个敌对的模型:生成器𝑔:ℝ𝑛→ℝ𝑑和判别器𝑑:ℝ𝑑→{0,1}。

生成器的任务是从标准随机分布中获取给定样本(例如,来自𝑛维Guassian的样本),并产生一个看起来像可能来自𝑋的分布的点。另一方面,判别器将负责从真实数据𝑋和样本生成的人工数据之间进行鉴别。每种模型都试图做到最好-生成器的目的是愚弄判别器,而判别器的目的是不被生成器欺骗。 在我们的例子中,𝑔和𝑑都是神经网络。我们用交替的方式训练它们。他们的每个目标都可以表示为一个损失函数,我们可以通过梯度下降对其进行优化。所以我们训练𝑔几个步骤,然后训练𝑑几个步骤,然后给𝑔提升自我的机会等等。

其结果是,生成器器和判别器在各自的目标上都取得了进步,因此最终,生成器能够愚弄最复杂的判别器。在实践中,这种方法最终会产生生成神经网络,它非常擅长生成新数据(例如,随机的人脸图片)。

收藏
2021-01-20 17:43 更新 Lisa •  1796