专栏名称: Hic Rhodus, hic salta
目录
相关文章推荐
51好读  ›  专栏  ›  Hic Rhodus, hic salta

人脸识别:人脑认知与计算机算法<4>

Hic Rhodus, hic salta  · 知乎专栏  · AI  · 2016-08-24 17:46

正文

请到「今天看啥」查看全文


本篇主题: 生成、 反馈 与 判别

人类学习的过程中伴随着 模仿(生成)、评估(判别或反馈)以及改进,反馈和评估来地越准确越高效,学习的效率也会越高[1]。没有任何形式的反馈,我们不能习得任何能力,而是闭门造车、不断的重复同样的错误,如悲剧性的西西弗斯一般[2]。在强化学习(Reinforcement Learning)中, Agent的学习需要不断的与环境交换信息,从自己的行动产生的结果(评估和反馈)和新的探索选项(Trial and Error)中得到下一步的行走策略。行动产生的结果由回报函数产生,训练的目的和过程在于使汇报函数最大,而不在乎每步训练的精确步骤和策略[3]。人工智能领域的强化学习算法是通过模拟人类学习过程的特征得来的[4]。

在人工智能领域,按照功能可以划分出两类主要的模型:生成模型(Generative Model)和判别模型(Discriminative Model). 生成模型根据训练集的分布产生新的数据,新产生的数据要符合训练及的分布特征,比如高斯混合模型(Gaussian Mixture Model, GMM) [5] 在经过多轮训练之后就能用来产生跟训练样本类似的数据。而判别模型对于大部分人来说要熟悉的多了,判别模型的目的在于给出数据在多类中属于哪一个,容易理解地,所有的分类算法都可以划归为判别模型。比如人脸识别算法就是一类较为复杂的判别模型,它需要对新来的数据在极多个类中作出判别。


按照上面的定义,生成模型需要生成样本X' ~D‘,使得D’尽量接近于训练样本X的分布D. 而判别模型如果应用在生成样本X'和训练样本X上,任务则是判别样本到底属于生成样本和训练样本的哪一类。对于已知数学定义的生成模型,生成模拟样本数据的过程无疑是可以精确描述的,方法上也相对容易,但在深度神经网络中,因为模型参数的缺失,这个问题就变得复杂的多了。

为此设计了对抗网络(Generative Adversarial Networks, GAN),它也包括两个模型:生成模型G(Z)和判别模型D(X)。如果认为X是真实样本数据(测试数据),那么D(X)=1, 反之如果认为X是生成模型产生的样本数据,那么D(X)=0. 两个模型在训练过程中进行对抗,生成模型根据训练样本生成数据,判别模型作出分类,最终让V(G,D)取得最小最大值[6]:

翻译成容易理解的语言就是:判别模型认为样本X属于测试样本和生成样本Z的概率是随机的,也就是说,判别模型完全无法区分出这两者之间的差异:

<Fig. 训练过程;蓝色虚线:判别分布;黑色点线:训练样本分布;绿色实线:生成样本分布>

但是最初的GAN训练并不稳定,经常产生毫无意义的输出。为了避免这些问题,进行了如下关键改进[7]:

  • 替换pooling层为strided convolution层和fractional-strided convolution层, 分别用作判别和产生,从而让网络能使用自己的空间下采样进行学习。从而将网络改变为All Convolution Network [8].
  • 在生成模型和判别模型中都应用Bach Normalization [9]. 让网络学习更稳定。
  • 去除全连接层
  • 在产生模型中使用ReLU激活函数,在判别模型中使用LeakyReLU激活函数。使收敛性更好

最终得到如下网络结构(根据具体训练任务有所变化):

我使用MNIST手写数字数据集[10]进行测试结果如下:

<Fig. MNIST测试结果:上图,第一个训练epoch的生成Sample; 中图,第200个训练epoch的生成Sample; 下图,真实数据Sample>

比较上图中间的训练结果和下面的真实数据可以发现,对抗网络产生的数据几乎跟真实数据没有人眼可辨的差异。MNIST的数据特征毕竟比较简单,而且人眼对手写数字的变形敏感性比较差,因此还不足以说明问题。相对应的,人脸数据特征复杂,而且人类的大脑对人脸信息敏感度很高(有专门的人脸识别脑区),对其中的“非人”特性很容易识别,那么对抗网络对人类数据的实用性如何呢,我们从自动化所的WebFace数据集中提取了36万个人脸[11]进行了测试:


<Fig. CASIA-WebFace测试结果:前十二行中每三行一个epoch.最后三行为第20个epoch的结果>
可以看到网络在前几个训练epoch中的产生数据的效果进步很快,但是经过多次训练之后,生成sample表现出特征的趋同化。另外,无论经过多少个epoch的训练,都会产生一些明显不能被人认定为人脸的奇怪数据。 显然地,生成模型在训练过程中坍缩了,生成模型与判别模型在对抗中达成了纳什均衡点[12],但这个均衡点不是系统的唯一均衡点。为了使生成模型避与坍缩,必须在训练过程中告诉它生成数据之间的相似性。

一个显然的策略在于,对判别模型,我们不让他判别各个生成sample与测试sample特征的相似性,而是判别一批生成sample与测试sample的相似性,这样,如果生成sample趋同,那自然与测试sample不相似了,这被称为Minibatch Discrimination [13]:

当然,使用这种策略虽然能够解决生成模型坍缩问题,但是产生诡异数据的问题仍然无法避免,算法表现为把图像特征进行重新整合,这种整合可能是符合真实人脸的,也可能不符合,存在一定的随机性。另外,一些个人性细节丢失的问题也无法避免,因为这些特异性的特征在神经网络训练中被湮没了。

--------

[1] Hattie, John. "A Synthesis of Over 800 Meta-Analyses Relating to Achievement." (2014).

[2] Camus, Albert. "The Myth of Sisyphus: And Other Essays." Penguin Classics (1955).

[3] Sutton, R. S., and A. G. Barto. "Reinforcement learning : an introduction." Neural Networks IEEE Transactions on 9.5(2013):1054.

[4] Maia, Tiago V, and M. J. Frank. "From reinforcement learning models to psychiatric and neurological disorders." Nature Neuroscience 14.2(2011):154-62.

[5] Quatieri, Thomas F., and Robert B. Dunn. "Speaker Verification Using Adapted Gaussian Mixture Models." Digital Signal Processing 10.1 (2000): 19-41.

[6] Goodfellow, Ian, et al. "Generative Adversarial Nets." Advances in Neural Information Processing Systems (2014):2672-2680.

[7] Radford, Alec, L. Metz, and S. Chintala. "Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks." Computer Science (2015).

[8] Srivastava, Rupesh Kumar, et al. "Understanding Locally Competitive Networks." Eprint Arxiv (2014).

[9] Ioffe, Sergey, and C. Szegedy. "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift." Computer Science (2015).

[10] Lecun, Yann, and C. Cortes. "The mnist database of handwritten digits.".

[11] Yi, Dong, et al. "Learning Face Representation from Scratch." Computer Science (2014).

[12] Nash, John. "Non-cooperative games." Ann.math.stud 54.3(1951):286-295.

[13] Salimans, Tim, et al. "Improved Techniques for Training GANs." (2016).







请到「今天看啥」查看全文