人类的学习过程伴随着模仿(生成)、评价(辨别或反馈)、改进。反馈和评价越准确、越高效,学习效率就越高[1]。如果没有任何形式的反馈,我们就无法获得任何能力,而会孤立地工作,一遍又一遍地重复同样的错误,如同悲剧的西西弗斯[2]。在强化学习中,Agent的学习需要不断与环境交换信息,从自身行动的结果(评价与反馈)和新的探索选项(试错)中获得下一步的行走策略。而行动的结果由奖励函数产生。训练的目的和过程就是最大化奖励函数,而不管每一步训练的精确步骤和策略[3]。人工智能领域的强化学习算法就是通过模拟人类学习过程的特点而得到的[4]。
在人工智能领域,按功能可分为两大类模型:生成模型和判别模型。生成模型根据训练集的分布生成新数据,新生成的数据必须符合训练集的分布特征,例如高斯混合模型(GMM)[5]经过多轮训练后,可以生成与训练样本相似的数据。判别模型对大多数人来说更为熟悉,判别模型的目的是判断数据属于多个类别中的哪一个。容易理解的是,所有的分类算法都可以归为判别模型,例如人脸识别算法就是一个相对复杂的判别模型,需要在大量类别中对新数据做出判断。
根据上述定义,生成模型需要生成样本X'~D',使得D'尽可能接近训练样本X的分布D。如果将判别模型应用于生成样本X'和训练样本X,任务就是判断该样本属于哪个类别。对于一个已知数学定义的生成模型,生成模拟样本数据的过程无疑可以被准确描述,方法也相对简单,但在深度神经网络中,由于模型参数的缺乏,这个问题变得复杂得多。
为此,设计了生成对抗网络(GAN),同样包含两个模型:生成模型G(Z)和判别模型D(X)。若X被认为是真实样本数据(测试数据),则D(X)=1,反之若X被认为是生成模型生成的样本数据,则D(X)=0。两个模型在训练过程中相互竞争,生成模型根据训练样本生成数据,判别模型进行分类,最终V(G,D)求出最小值与最大值[6]:
翻译成通俗易懂的语言就是,判别模型认为样本X属于测试样本和生成样本Z的概率是随机的,也就是说,判别模型完全无法区分二者的区别:
然而,最初的 GAN 训练并不稳定,经常产生无意义的输出。为了避免这些问题,进行了以下关键改进 [7]:
- 将池化层替换为步长卷积层和分数步长卷积层,分别用于判别和生成,这样网络就可以使用自己的空间下采样进行学习。这将网络变为全卷积网络 [8]。
- 在生成模型和判别模型中都应用巴赫规范化[9]。这使得网络学习更加稳定。
- 删除全连接层
- 在生成模型中使用ReLU激活函数,在判别模型中使用LeakyReLU激活函数,使得收敛性更好。
最终得到如下网络结构(根据具体的训练任务而定):
我使用 MNIST 手写数字数据集[10]来测试结果:
将上图中中间的训练结果和下图的真实数据对比,我们可以发现对抗网络生成的数据和真实数据几乎无法区分。毕竟MNIST的数据特征比较简单,人眼对于手写数字的变形不太敏感,不足以说明问题。相比之下,人脸数据的特征则比较复杂,人脑对面部信息敏感度较高(有专门的大脑区域进行面部识别),很容易识别出其中的“非人类”特征。那么对抗网络对于人类数据的实用性有多强呢?我们从自动化研究所[11]的WebFace数据集中提取了36万人脸,并进行了测试:
可以看出,在前几个训练epoch中,网络在生成数据方面的表现提升很快,但经过多次训练后,生成的样本表现出特征收敛的现象。另外,无论训练多少epoch,都会生成一些无法识别为人脸的奇怪数据。显然,生成模型在训练过程中崩溃了。生成模型与判别模型在对抗中达到了一个纳什均衡点[12],但这个均衡点并不是系统的唯一均衡点。为了防止生成模型崩溃,必须在训练过程中告知其生成数据之间的相似性。
一种显而易见的策略是让判别模型判断每个生成样本的特征与测试样本的相似性,而不是判断一批生成样本与测试样本的相似性。这样,如果生成样本相似,它们自然就会与测试样本不相似。这被称为 Minibatch Discrimination [13]:
当然,这种策略虽然可以解决生成模型崩溃的问题,但无法避免生成怪异数据的问题。算法是对图像特征进行重新整合,这些特征可能与真实人脸一致,也可能不一致,有一定的随机性。此外,由于这些特定特征在神经网络训练中被抹杀,因此无法避免丢失一些个人细节的问题。
--------
[1] Hattie, John. “800 多项与成就相关的元分析综合”。(2014 年)。
[2] 加缪,阿尔伯特。《西西弗斯神话及其他散文》。企鹅经典出版社(1955 年)。
[3] Sutton, RS 和 AG Barto。“强化学习:简介。”神经网络 IEEE 汇刊 9.5(2013):1054。
[4] Maia, Tiago V 和 MJ Frank。“从强化学习模型到精神和神经疾病。”《自然神经科学》14.2(2011):154-62。
[5] Quatieri, Thomas F. 和 Robert B. Dunn。“使用自适应高斯混合模型进行说话人验证。”《数字信号处理》10.1(2000 年):19-41。
[6] Goodfellow, Ian 等人。“生成对抗网络。”神经信息处理系统进展(2014 年):2672-2680。
[7] Radford, Alec、L. Metz 和 S. Chintala。“利用深度卷积生成对抗网络进行无监督表征学习。”《计算机科学》(2015 年)。
[8] Srivastava、Rupesh Kumar 等人,“了解局部竞争网络。”Eprint Arxiv(2014 年)。
[9] Ioffe, Sergey 和 C. Szegedy。“批量标准化:通过减少内部协变量偏移来加速深度网络训练。”《计算机科学》(2015 年)。
[10] Lecun, Yann 和 C. Cortes。“手写数字的 MNIST 数据库。”。
[11] Yi, Dong 等人,“从头开始学习人脸表征。”计算机科学(2014 年)。
[12] Nash, John. “非合作博弈。” Ann. math.stud 54.3(1951):286-295.
[13] Salimans, Tim 等人,“改进的 GAN 训练技术。”(2016 年)。