GANs属于一类基于博弈理论学习生成模型的方法。GANs由两个网络构成,分别是生成器和判别器,生成器用于生成样本,判别器用于判别样本是真实样本还是生成样本,也就是说生成器需要利用判别器提供的信号学习,且需要学会欺骗判别器。本质上来说,GANs模型的训练属于两个玩家的零和博弈问题,需要寻找非凸博弈的Nash均衡。由于梯度下降方法属于寻找成本函数的最小值,而不是找到博弈的Nash均衡,因此GANs的训练往往无法很好的收敛。

Improved Techniques for Training GANs作者们基于对非收敛问题的启发式理解,提出了一系列鼓励GANs博弈收敛的技术。

训练方法

Nash均衡是一个点$(\theta^{(D)},\theta^{(G)})$,该点上判别器$J^{(D)}$在$\theta^{(D)}$取到最小值,且生成器$J^{(G)}$在$\theta^{(G)}$取得最小值。由于GAN博弈的成本函数属于非凸的,因此随机梯度下降算法无法求解。具体的说,若导致$J^{(D)}$降低的$\theta^{(D)}$会导致$J^{(G)}$增加,反之亦然。

Feature matching

特征匹配通过为生成器确定一个新的目标函数,阻止其在当前分类器上过渡的训练,从而处理GANs的不稳定性。代替直接最大化分类器的输出,新的目标函数只需要生成器生成与真实数据相匹配的统计信息,那么分类器只需要确定哪些统计信息值得匹配。确切的说,作者们训练生成器匹配特征在分类器中间层上的特征。通过这种方式,可使分类器寻找生成数据与真实数据之间最具有区分性的特征。

若$\mathbf{f}(\mathbf{x})$表示分类器中间层的激活函数,那么生成器的目标函数被定义为$\Vert\mathbb{E}_{x\sim p_{data}}f(x)-\mathbb{E}_{z\sim p_z(z)}f(G(z)\Vert_2^2$。虽然理论上无法保证这种方式收敛到固定点,但是实验结果表明特征匹配确实有效。

plus: 有时候,科学与技术之间的关系真的很微妙,即使无科学理论保证,技术仍有效 :smile: 。因此,在工程上,以结果为标准还是很有道理的。

Minibatch discrimination

GAN的主要失效模式是生成器坍塌到一个参数设置,即其总是输出相同的值。若在坍塌到单个模式开始时,判别器的梯度可能对相似的点指向相似的方向。这是因为判别器独立的处理每个例子,梯度之间没有互通信息,也就没有机制通知生成器的输出应该有不相似的地方。相反,所有输出均向判别器认为高度真实的单个点方向行进。在坍塌之后,判别器学习到了该单个点来自生成器,但是梯度下降无法区分相同的输出。最终,判别器的梯度永远的把该单个点推向了生成器产生的空间。一种显而易见的避免模式坍塌的方式是允许分类器关注多个数据样本,即是minibatch discrimination

那么,建模minibatch中样本紧密度或相似度的方法是:若$\mathbf{f}(x_i)\in\mathbb{R}^A$表示输入$x_i$在判别器中间层的特征向量。接下来,对$\mathbf{f}(x_i)$与$T\in\mathbb{R}^{A\times B\times C}$相乘,产生矩阵$M_i\in\mathbb{R}^{B\times C}$。然后,再计算矩阵$M_i,i\in\{1,2,\ldots,n\}$的行之间的$L_1$距离,再利用负指数度量距离:$c_b(x_i,x_j)=exp(-\Vert M_{i,b}-M_{j,b}\Vert_{L_1})\in\mathbb{R}$。那么,每个样本$x_i$在minibatch层的输出$o(x_i)$被定义为其它样本$c_b(x_i,x_j)$之和
$$
\begin{aligned}
o(x_i)_b=\sum_{j=1}^n c_b(x_i,x_j)\in\mathbb{R} \\
o(x_i)=[o(x_i)_1,o(x_i)_2,\ldots,o(x_i)_B]\in\mathbb{R}^B \\
o(\mathbf{X})\in\mathbb{R}^{n\times B}
\end{aligned}
$$
接下来,把minibatch层的输出$o(x_i)$与中间特征$f(x_i)$进行concat,再把结果输入到判别器。作者们独立的计算来自生成器和来自训练数据样本的minibatch特征。与之前一样,判别器仍需要输出样本来自训练数据的概率。同时,判别器可利用别的样本作为side information

为了便于理解,贴出论文中minibatch discrimination的工作原理图, 可见图1所示。

图1 minibatch discrimination的工作原理图

这种方式可使模型很快的输出视觉上有吸引力的样本,在这方面性能优于特征匹配。

Historical averaging

该方法是对每个玩家的成本包含一项$\Vert\theta-\frac{1}{t}\sum_{i=1}^t\theta[i]\Vert^2$。其中,$\theta[i]$为过去时刻$i$的平均值。由于历史平均可在线更新,因此该方法扩展性很好。作者们表明这种方式能够找到低维连续非凸博弈的均衡,例如:极小极大博弈。

One-sided label smoothing

对$0,1$标签进行平滑,有利用减少神经网络对对抗样本的脆弱性。具体的说,利用$\alpha$替换正标签,$\beta$替换负标签,那么最优分类器为$D(x)=\frac{\alpha p_{data}(x)+\beta p_{model}(x)}{p_{data}(x)+p_model(x)}$

由于在$p_{data}$为0和$p_{model}$很大的地方,分子中$p_{model}$的存在使来自$p_{model}$的错误样本没有动机接近数据。因此,在实现中,作者们只把正标签平滑至$\alpha$

Virtual batch normalization

DCGAN中,batch normalization可极大提升神经网络的优化。然而,该方式会使神经网络的输出高度依赖minibatch中其它的样本。为了避免该问题,作者们利用从参考batch中收集样本的统计信息对每个样本进行标准化。一旦选择,那么该统计信息在训练的开始就确定了。参考batch的标准化只会利用自己的统计信息。由于在两个minibatches中进行VBN的前向计算成本很高,因此只对生成器使用了VBN。

其它结论

以上技术中,feature matching与利用最大化均值差异训练生成器网络的原理相似;minibatch features是部分想法源于batch normalizationvirtual batch normalization属于batch normalization的直接扩展。

标签: GANs

版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接

添加新评论