本质矩阵svd分解_GAN 的谱归一化(Spectral Norm)和矩阵的奇异值分解(SVD)

73e4585ef6f0e58ea59df366e5408a5c.png

在文献 [2] 中作者分析了 GAN [1] 难以训练的原因在于原生 GAN 的目标函数等价于优化生成数据的分布 pgpg 和真实数据的分布 prpr 之间的 J-S 散度 (Jensen–Shannon Divergence)。

接着作者提出 WGAN [3],使用性质优良的 Wasserstein distance 代替原生 GAN 中的 J-S 散度。 然后利用KR对偶原理将 Wasserstein distance的求解问题转换为求解最优的利普希茨连续函数的问题。 为了使得判别器 D 满足利普希茨连续性,作者使用“梯度裁剪”将过大的参数直接裁剪到一个阈值以下。

本文要介绍的这篇文章 “Spectral normalization for generative adversarial network” (以下简称 Spectral Norm) 使用一种更优雅的方式使得判别器 D 满足 利普希茨连续性。

由于知乎的编辑器对公式的输入和交叉引用不太友好,我只手动的把一部分公式转换到合适的格式,有一部分行内公式和公式引用有格式问题。这部分公式通过“脑补”

代码应该能够看懂。如果想看比较清晰完整的版本,请阅读原文。
GAN 的谱归一化(Spectral Norm)和矩阵的奇异值分解(Singular Value Decompostion)​kaizhao.net

WGAN 和 Wasserstein distance

为了说明 Spectral Norm背后的动机,我们从 Wasserstein distance (以下简称 W distance)开始说起。 W distance的定义为:

(1)

上式 的定义看起来比较难懂。 其中 $inf$ 可以简单地理解为 取最小值

表示边缘分布分别为为 $p_r$ 和 $p_g$ 的一个联合分布。

当然这样解释仍然让很多人难以理解,这里举一个简单的例子:

假设有五个工厂生产食品,产量分别为

, 另外有五个城市消费食品,所需的食
品量分别是,假设
。 现在制定了供应方案:从 $A_i$ 运输到 $B_j$ 的食品量为
, 显然有:

(2)

这也就是所谓的 "

是边缘分布分别为 $A$ 和 $B$ 的联合分布”。 假设从 $i$ 地每运输一份食品到 $j$ 地的成本是
, 那么运输方案的总成本即为:

(3)

求解 上式式的最小运输成本,其实就是求解离散情况下的 Wasserstein Distance,而最小运输 成本所对应的运输方案

,就是
最优传输。 这类问题被称为 最优传输问题 (optimal transport)。

然而 Wasserstein distance 的求解并不那么直接。 式 $ref{eq:total-cost}$ 所描述的问题一般可以通过线性规划 (Linear programming) 求解,因为问题中的求解目标以及约束条件均为线性。 即便如此,在每一次训练的迭代去求解一个线性问题仍然是非常耗时的,而且我们并不需要得到最优传输,我们只需要得到最优传输对应的 最小传输代价,以及该代价的导数。 在文献 [3] 中作者使用了 K-R 对偶将 wasserstein distance 求解的问题转换为求解最优函数的问题。 K-R 对偶指出,当测度

的时候,(1)式所对应的问题可以转换为寻找一个满足利普希茨连续的函数 $f(x)$, 使得下式取得最大值:

(4)

至于 (4) 式的结论为什么成立可以参考这篇文章。 本文关注另外一个问题,就是如何让函数 f满足“利普希茨连续性” (Lipschitz continuity)。


利普希茨连续性 (Lipschitz Continuity)

利普希茨连续性 (Lipschitz continuity) 的定义很简单,他要求函数 $f(x)$ 满足对任意 $x, y$ 都有:

(5)

实际上式(5)甚至都没有要求函数 $f(x)$ 可导。 在 K-R 对偶中,要求 $k=1$,也即:

(6)

在 WGAN[3] 中作者使用一个神经网络来逼近函数 $f(x)$,并且使用一个简单的 trick 使得函数 $f(x)$ 满足利普希茨连续性: 在每一次更新网络参数之后,如果参数大于某个阈值,则强行将参数剪裁到这个阈值。 这样这个神经网络的每一层的梯度都不会大于这个阈值,总体上这个神经网络的就一定满足利普希茨连续性。

但这样的做法似乎有些暴力,因为这样强行更改网络参数可能会影响到网络的收敛。 于是在文献[4]中作者提出了 Spectral Norm,对网络参数进行谱归一化使得网络满足利普希茨连续条件。


矩阵的奇异值分解 (Singular Value Decomposition)

为了方便大家理解 Spectral Norm ,我们先介绍一下 SVD 分解。

假设有 $mtimes n$ 的方阵 $A$,对矩阵 $A$ 存在这样一种分解:

(7)

当矩阵 $W$ 是一个实数阵的时候,

  • 是一个
    的正交矩阵 (orthogonal matrix);
  • 是一个
    的对角阵,对角线上的元素为非负实数,这些数称为矩阵A 的“奇异值”;
  • 是一个
    的正交矩阵 (orthogonal matrix)。

矩阵 $A$ 的奇异值计算起来也不麻烦,只需要求得

的方阵
的特征值,然后把特征值开平方根,即为矩阵 A 的奇异值,因为:

关于奇异值的计算并不是本文的重点,我们仔细研究一下(7)式所表达的几何意义。 我们知道,每一个矩阵对应着一个线性变换。而正交矩阵对应的线性变换很特殊,叫旋转变换 (rotation)。 而对角阵对应的变换,叫做拉伸变换 (scale)。 也就是说式 (7) 把矩阵 A 分解为三个变换:

  1. 旋转;
  2. 拉伸;
  3. 旋转。

这里就很有意思了。假设神经网络的某一层权重W为一个

的矩阵,对于输入的特征 x,输出为:

(8)

也相当于对输入做了三次变换。 如果将输入视为一个向量的话,之后

对应的拉伸变换才会改变输入的长度;其他两次旋转变换都不会。

Spectral Normalization

介绍完 SVD 以及几何意义之后,Spectral Normalization的做法就很简单了: 将神经网络的每一层的参数 $W$ 作 SVD 分解,然后将其最大的奇异值限定为1, 具体地,在每一次更新 $W$ 之后都除以 $W$ 最大的奇异值。 这样,每一层对输入$x$最大的拉伸系数不会超过 1。

经过 Spectral Norm 之后,神经网络的每一层 $g_l(x)$,都满足

对于整个神经网络

自然也就满足利普希茨连续性了。

然而,在每一次训练迭代中都对神经网络的每一层作 SVD 分解也是很不现实的,特别是当网络权重维度很大的时候。 因此作者采用了一种叫做 power iteration[5] 的方法去迭代得到奇异值的近似解。

Power iteration 首先初始化一个随机的

然后根据以下公式迭代

最后矩阵 W 的最大奇异值

可以根据u和 v 求得:

在得到

之后,网络每更新一次参数,都对参数 $W$ 进行谱归一化:

值得注意的是,(9) 式的迭代算法通常需要迭代多次才能比较好的逼近

,但是Spectral Normal[4] 在神经网络的每一次更新过程中只进行一次 power iteration 迭代,仍然能取得不错的效果。 这是因为神经网络的每次迭代中参数
是在
缓慢更新的,因此每两次迭代过程中可以认为 W的奇异值是近似相等的。 因此虽然在网络的每一次迭代中,只进行一次power iteration,但是随着网络的训练,power iteration 对奇异值的估计会越来越准。这种做法其实十分巧妙,因为神经网络的优化本身也是个迭代的过程,因此对
的逼近就可以利用神经网络的迭代逐渐来逼近,在网络参数的每一次更新过程中对
的迭代不必太准确。

参考文献

[1] Goodfellow, Ian, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. "Generative adversarial nets." In Advances in neural information processing systems, pp. 2672-2680. 2014. [PDF]

[2] Arjovsky, Martin, and Léon Bottou. "Towards principled methods for training generative adversarial networks." arXiv preprint arXiv:1701.04862 (2017). [PDF]

[3] Arjovsky, Martin, Soumith Chintala, and Léon Bottou. "Wasserstein generative adversarial networks." In International Conference on Machine Learning, pp. 214-223. 2017. [PDF]

[4] Miyato, Takeru, Toshiki Kataoka, Masanori Koyama, and Yuichi Yoshida. "Spectral normalization for generative adversarial networks." arXiv preprint arXiv:1802.05957 (2018). [PDF]

[5] Gulrajani, Ishaan, Faruk Ahmed, Martin Arjovsky, Vincent Dumoulin, and Aaron C. Courville. "Improved training of wasserstein gans." In Advances in Neural Information Processing Systems, pp. 5767-5777. 2017. [PDF]

[6] Yoshida, Yuichi, and Takeru Miyato. "Spectral Norm Regularization for Improving the Generalizability of Deep Learning." arXiv preprint arXiv:1705.10941 (2017).


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值