生成对抗网络入门指南(内含资源和代码)

生成对抗网络(GAN)是由两个相互竞争的网络组成的深度神经网络架构。

2014年,Lan Goodfellow和蒙特利尔大学包括Yoshua Bengio在内的其它研究人员在论文中介绍了生成对抗网络。Facebook的AI研究主管Yann LeCun称对抗训练是“近10年来最有趣的机器学习(ML)”

生成对抗网络具有很大的潜力,因为它们可以学习模拟任何数据的分布。换句话说,在任何领域,我们都可以教生成对抗网络创造出与我们类似的世界:图像,音乐,演说,散文。从某种意义上来说,它们是机器人艺术家,能够创造出令人印象深刻甚至是伤感的东西。

生成算法判别算法

为了理解生成对抗网络,首先应该了解生成算法的是如何工作的,为此,现将生成算法和判别算法进行对比以便更好的理解。判别算法试图对输入数据进行分类:即给定一个数据实例的特征,来预测该数据所属的标注或类别。

例如:给定一封电子邮件的所有单词,判别算法能够预测该邮件是否为垃圾邮件。垃圾邮件是其中的一种标注,从邮件中收集到的单词则构成了输入数据的特征。用数学表达式表述这一问题,y表示标注,x表示特征,公式p(y|x)表示“给定x,y的概率”,则该事件可描述为“给定邮件中所包含的单词,邮件为垃圾邮件的概率”。因此,判别算法将特征映射到标注,只关注二者之间的相关性。

一种理解生成算法的方式是,生成算法做相反的事情。生成算法并不预测给定特征的标注,而是试图预测给定标注的特征。

生成算法试图解决的问题是:假设这封电子邮件为垃圾邮件,它的特征可能是什么?判别模型关注y和x之间的关系,而生成模型关注的是如何得到x。这允许你得到p(x|y),即给定y,x的概率或给定一个类,特征的概率。(也就是说,生成算法可用作分类器,只不过它不仅仅只是对输入数据进行分类)。

另一种区分判别模型和生成模型的理解方式是:判别模型学习类间的边界,而生成模型模拟各个类的分布。

阅读原文

你可能感兴趣的:(生成对抗网络入门指南(内含资源和代码))