我正在研究WGAN,并希望实施WGAN-GP。
在其原始论文中,由于1-Lipschitiz约束,WGAN-GP以梯度代价实现。但是像Keras这样的软件包可以将梯度范数裁剪为1(根据定义,它等同于1-Lipschitiz约束),那么为什么还要麻烦惩罚梯度呢?为什么我们不剪裁渐变呢?
答案 0 :(得分:0)
原因是从数学意义上讲,裁剪通常是一个相当困难的约束,而不是从实现复杂性的角度来看。如果检查原始的WGAN纸,则会注意到剪辑过程输入模型的权重和一些超参数 c ,它们控制剪辑的范围。
如果 c 很小,那么权重将被严格限制在一个很小的值范围内。问题是如何确定适当的 c 值。它取决于您的模型,问题中的数据集,培训过程等等。那么,为什么不尝试软处罚而不是硬剪辑呢?这就是为什么WGAN-GP论文在损失函数中引入附加约束的原因,该约束迫使梯度的范数尽可能接近 1 ,避免硬折叠到预定值。
答案 1 :(得分:0)
CaptainTrunky的回答是正确的,但我也想指出一个非常重要的方面。
引用原始的WGAN-GP论文:
通过权重裁剪实现k-Lipshitz约束会使评论家偏向更简单的功能。如先前在[推论1]中所述,最优的WGAN评论家在Pr和Pg下几乎到处都有单位梯度范数;在权重削减约束下,我们观察到试图获得最大梯度范数k的神经网络架构最终学习了非常简单的函数。
因此,如您所见,减重可能会(取决于您要生成的数据-本文的自动售货员指出,并非总是如此)会导致不良行为。当您尝试训练WGAN以生成更复杂的数据时,任务很有可能失败。