Goodfellow, Ian, et al. “Generative adversarial nets.” Advances in Neural Information Processing Systems. 2014.
本文是Ian Goodfellow在2014年的经典之作,在许多tutorial中作为非监督深度学习的代表作给予推广。
本文解决了非监督学习中的著名问题:给定一批样本,训练一个系统,能够生成(generate)类似的新样本。
作者给出了基于Pylearn21的源码(戳这里)。不过本文的结果稍显平凡,以理解思想为主,代码仅做参考。
在本文之前,大家是怎样做非监督学习的呢?
直白的想法是,根据训练集估计样本分布
对于低维样本,可以使用简单的,只有少量参数的概率模型(例如高斯)拟合
一个经典方法是使用RBM(Restricted Boltzmann Machine)构造一个无向图,图的能量和节点取值的概率有指数关系。利用训练集设定图中节点和边的系数,用来表述
还有一种方法是DBN(Deep Belief Networks),用单个RBM和若干有向层构成网络。一样存在计算复杂的问题。
这两种方法在本次DL热潮早期(2010年之前),曾经和CNN并驾齐驱,但如今在图像领域已经鲜有应用。CNN虽然在分类、分割等监督学习方面立竿见影,但如何进行非监督学习一直是个难题。
本文采取的方法如下,使用两个网络互相竞争,称之为对抗式(adversarial)结构。
训练好的生成网络,能把任意一个噪声向量转化成和训练集类似的样本。该噪声可以看做该样本在低维空间的编码。
针对不同数据集,作者设计了不同复杂程度的网络。
生成网络
鉴别网络
生成网络。隐结点维度增大,但编码(输入噪声)仍然是100维。
鉴别网络
生成网络。在最后一级,用解卷积网获得图像。
鉴别网络
在训练时,每更新一次生成网络,要更新
FaceBook AI Reasearch提供了一个在线页面,可以看到实时生成的模拟图像。
2015年的DCGAN把类似的理念应用到人脸图像上。通过对编码(输入的随机向量)进行代数运算,控制生成人脸图像的属性。
Yan LeCun在Quora的这个回答中,给出了更多扩展阅读。
联系客服