Loss-sensitive GAN几乎是和WGAN同时提出的,两者从不同的角度出发,但殊途同归,最后都对判别器添加了Lipschitz限制 [ 5 ] 。本节将对Loss-sensitive GAN做详细的介绍并对比其与WGAN的异同,使读者对Lipschitz限制有更多元的认识。
Loss-sensitive GAN同样包括生成器和判别器两个部分,生成器与大多数GAN一样,接收均匀或正态噪声输入 z 并输出样本 x ,该神经网络的参数由 φ 表示,即 G φ ( z )。在Loss-sensitive GAN中,判别器称为“损失函数” L θ ( x ),损失函数的输入为样本,输出为一个损失函数数值,由 θ 参数化。注意,虽然称 L θ ( x )为损失函数,但它并不是指训练神经网络时的目标函数,而是指一种对样本的“评分”函数,损失函数 L θ ( x )对来自训练数据集中的样本 x 应该有较小的损失数值,对来自生成器 G 的样本 G φ ( z )应该有比较大的损失数值,并且 L θ ( x )还需要满足如下限制条件:
其中Δ( x , G φ ( z ))表示 x 和 G φ ( z )的间隔,即 L θ ( G φ ( z ))和 L θ ( x )至少要有Δ( x , G φ ( z ))大小的间隔。如图2-18所示,左图满足限制条件而右图不满足。
图2-18 损失函数 L 间隔示意图
这个限制使得两类样本可以通过损失函数被分开。损失函数 L θ ( x )的训练目标函数应该使来自训练数据集中的样本 x 损失数值小,且两类样本产生一定间隔。将硬间隔约束条件写为软约束条件,可得目标函数:
其中,( a ) + =max(0, a )。生成器的目标是希望将样本生成在 L θ ( x )较小的位置,即
实际计算时,上述表达式使用经验平均值近似。对 n 个噪声{ z (1) , z (2) ,…, z ( n ) }和 n 个来自训练数据集的样本{ x (1) , x (2) ,…, x ( n ) },判别器的经验目标函数为:
生成器的经验目标函数为:
我们对判别器的目标函数第二项进行讨论,当 L θ ( G φ ( z )) -L θ ( x )≥Δ( x , G φ ( z ))时,第二项为0,不参与目标函数的最小化;当 L θ ( G φ ( z )) -L θ ( x )≤Δ( x , G φ ( z ))时,第二项会出现在目标函数中来最小化,即拉低 x 的损失函数值,拉升 G φ ( z )的损失函数值,如图2-19所示。
图2-19 Loss-sensitive GAN原理
需要说明的是,Loss-sensitive GAN施加Lipschitz限制的方法同WGAN-GP相同,均采用梯度惩罚的软方法。Loss-sensitive GAN在损失函数 L θ ( x )的目标函数中添加正则项:
但在细节上,WGAN是在全部空间上要求1-Lipschitz限制的,WGAN-GP做了简化,即在中间样本上使判别器输出对输入的梯度接近1,而Loss-sensitive GAN的Lipschitz限制是施加在真实数据的流形上,故只在 p data 上计算即可;该正则项并不像WGAN中以1为中心,而是希望损失函数对输入的梯度接近0,这是由于Loss-sensitive GAN的泛化性证明中,收敛所需的样本数量与梯度成正比,故使其数值尽量小。
Loss-sensitive GAN训练时具有一定的“按需分配”能力。例如,存在一个来自训练集的真实样本 x r 和两个生成器生成的样本 x g-f 和 x g-n ,其中 x g-n 距离 x r 很近,而 x g-f 距离 x r 比较远,训练完损失函数后, L θ ( x g-f )至少大于Δ( x g-f , x r )+ L θ ( x r ),同样 L θ ( x g-n )约等于 L θ ( x r ),自然训练生成器时会更关注 x g-f 使其靠向 x r 。
我们对Loss-sensitive GAN的思想进行说明。原始GAN对训练数据集的分布 p data 没有任何限制,不存在任何先验知识,那么当分布 p data 非常复杂时, D ( x )为了实现最优:
则要求判别器具有无限建模能力,即要求模型有无穷大的容量以便拟合任意复杂的函数。在无限建模能力的基础上,当两个流形重叠部分可以忽略时(这在实践中发生的概率很高),由于JS散度值为常数从而造成梯度消失的现象,此时WGAN选择使用Wasserstein距离改善该问题,但Loss-sensitive GAN选择直接对判别器的无限建模能力进行改进,它假设训练数据集的分布 p data ( x )是满足 k -Lipschitz限制的,同时要求设计的损失函数 L θ 也满足 k -Lipschitz限制。在此基础上,可证明 p g ( x )是可以收敛到 p data ( x )上的。第一个Lipschitz限制是针对Lipschitz密度的,其要求真实的密度分布不能变化得太快,即密度不能随着样本的变化无限变大。这个条件对于大部分分布是可以满足的,是一种自然而然的限制。例如,对图像的像素做轻微调整,它仍然应该是真实的图像,在真实图像中的密度在Lipschitz假设下不应该会有突然、剧烈的变化。第二个Lipschitz限制是针对损失函数 L θ ( x )的,它限制了损失函数 L θ ( x )无限建模的能力,将其控制在满足Lipschitz限制的函数空间中,这是为了证明分布的收敛性和泛化能力增加的假设条件。同时,可以证明,Loss-sensitive GAN也能有效解决梯度消失的问题,具体不再展开。
现在对Loss-sensitive GAN和WGAN做一个比较,在WGAN中,判别器(critic)的目标函数为:
其中,|| f θ ( x )|| L ≤1 。1-Lipschitz限制是由于对偶问题求解而产生的。从另一个角度而言,判别器尝试将训练样本和生成样本的 f θ ( x )的一阶矩的差异最大化,如果不对 f θ ( x )施加1-Lipschitz限制,它会不停将生成样本的 f θ ( x )值变小而使判别器的目标函数数值无界;在Loss-sensitive GAN中,它对成对的样本进行处理,对于目标函数里的( a ) + 函数,当 L θ ( G ( z ))大于 L θ ( x )+Δ( x , G ( z ))时,该项在目标函数中为0,即不再优化 L θ ( G ( z )),故Loss-sensitive GAN也不会使 L θ ( G ( z ))值过大而造成目标函数数值无界。
WGAN和Loss-sensitive GAN从不同的角度添加了1-Lipschitz限制,前者更多依靠“技术”,后者更多依靠“直觉”,这表明了对判别器进行一定程度的约束是很有必要的。