概
通过限制谱范数来限制Lipschitz常数, 但又不像weight normalization 或者其它的正则化方法一样, 本文提出的方法不会丧失过多的灵活性且保持高效.
主要内容
经过WGAN之后, 有许多方法是探讨如何限制Lipschitz常数的, 即
\[\min_G \max_{\|f\|_{Lip} \le K} V(G, D), \]其中\(f\)为
\[f(x,\theta) = W^{L+1}a_L (W^L(a_{L-1}(W^{L-1}(\cdots a_1(W^1x)\cdots)))), \] \[D(x,\theta) = \mathcal{A}(f(x,\theta)). \]实际上,
\[\|f\|_{Lip} \le \prod_{i=1}^{L+1} \sigma(W^l), \]其中\(\sigma\)为谱范数. 故本文的思想是, 实际使用下面的权重矩阵
\[\bar{W}_{SN} (W) := W/\sigma(W), \]此时\(\|f\|_{Lip} \le 1\).
但是, 由于\(W\)在训练过程中是变化的, 所以, 作者并不是精确求解\(\sigma(W)\), 采用了一种类似running average的方式, 既然
\[\sigma(W) = u_1^T Wv_1, \]其中\(u_1, v_1\)分别为\(\sigma(W)\)所对应的左特征向量和右特征向量.
作者进一步分析, 经过标准化后的\(W\)的梯度的变化
\[\frac{\partial V(G, D)}{\partial W} = \frac{1}{\sigma(W)} (\hat{\mathbb{E}}[\delta h^T] - \lambda u_1v_1^T), \]其中\(\lambda:= \hat{\mathbb{E}}[\delta^T (\bar{W}_{SN}h)]\), \(\delta:= (\partial V(G,D) / \partial (\bar{W}_{SN}h))^T\) . 与原来的梯度仅仅差了后面的一项, 这相当于阻止整个网络仅仅往一个方向学习而产生mode collapse.
实际上, 已经有很多类似的方法了, 一些是在损失函数后面加正则化项, 一些是直接要求多个奇异值的和等于某一个值(WN), 作者认为这些方法会让网络的能力下降, 在某种程度上会迫使权重的奇异值集中在一个维度之上. 还有像正交化的约束, 是能够避免集中在一个维度之上的, 但是这假设所以维度的意义是同等重要, 这个并不合适, 因为谱不一致是有意义的.