论文阅读-谱归一化_SN-GANs
明人不说暗话,这篇论文是即将出炉的下一篇的博文:论文阅读-自注意力GAN_SAGAN的前导篇。
何出此言?因为即将到来的下一篇SA-GAN里面用到了这个谱归一化(Spectral Normalization),所以我也就仔细看了看,这里写出来分享一下。
- paper:Spectral Normalization for Generative Adversarial Networks
- codes:https://github.com/pfnet-research/sngan_projection
谱归一化约束,通过约束 GAN 的 Discriminator 的每一层网络的权重矩阵(weight matrix)的谱范数来约束 Discriminator 的 Lipschitz 常数, 从而增强 GAN 在训练过程中的稳定性。
好了,嘚瑟了一段看起来很屌的名词,下面听我慢慢道来~~
1. 前情提要
开玩笑,说是前情提要,其实就是描述一下背景知识~~😏
我们假设一个简单的多层神经网络作为 Discriminator,那么有:
\[f(x,\theta )=W^{L+1}a_L(W^L(a_{L-1}(W^{L-1}(...a_1(W^1x)...))))\]式中,$\theta = \lbrace W^1,…,W^L,W^{L+1}\rbrace$,为了简化,略去了 bias。那么 discriminator 的输出为:
\[D(x, \theta)= A(f(x,\theta))\]式中,$A$是激活函数。那么标准的 GAN 的公式就是:
\[\underset{G}{min}\ \underset{G}{max}\ V(G,D)\]然后作者就说,机器学习社区认为 Discriminator 的函数空间对 GAN 的性能影响十分关键,很多针对 Lipschitz 一致性的工作在开展,
从而来确保数据的边界性。
啥是 Lipschitz?
我的理解是一个类似凹函数、凸函数定义的东西:
对于在实数集的子集的函数${ f\colon D\subseteq \mathbb {R} \to \mathbb {R} }$,若存在常数$K$,
使得$|f(a)-f(b)|\leq K|a-b|\quad \forall a,b\in D$,则称$f$符合利普希茨条件,
对于$f$最小的常数$K$称为$f$的利普希茨常数。
Lipschitz连续比一致连续要强。它限制了函数的局部变动幅度不能超过某常量。
ok,说完了背景知识,下面步入正题~~
2. 谱归一化(SPECTRAL NORMALIZATION)
开篇说了,这篇论文提出的谱归一化,是实施在 Discriminator 的每一层的权重矩阵上的,其实也就是权重矩阵的谱范数。
啥又是谱范数?咋又来个专有名词?
不要怕,不要有畏难情绪,其实理解了的话,都不是啥难事儿:
我们知道向量的1-范数
、2-范数
等等,1-范数
表示向量元素绝对值之和,2-范数
表示向量元素绝对值的平方和再开方。
扩展开来,向量的p-范数
表示的意思是向量所有元素绝对值的p
次方和的1/p
次幂。
了解了向量的范数的概念,其实矩阵的范数就是在向量的基础上推广开来而已,不过因为矩阵多了一维,所以定义看起来复杂了一些。
矩阵的1-范数
,则是列和范数,即矩阵的所有列向量绝对值之和的最大值,矩阵的2-范数
,是A*A
矩阵的最大特征值的开平方,即:
式中,$\lambda _{max}(A^TA)$为$A^TA$的特征值的绝对值的最大值。
其实,矩阵的诱导p-范数
也可以类似向量的p-范数
推广开来:
那么,啥又是矩阵的谱范数?
就是矩阵的2-范数
!。其值为矩阵A
的最大的奇异值或者半正定矩阵A*A
的最大特征值的平方根。
好了,解释完了矩阵的谱范数的概念,我们继续说谱归一化。
对于网络的一个layer:$g:h_{in} \to h_{out}$,从定义上来说,其Lipscchitz norm
\(\left \|g \right \|_{Lip}\)
的值等于\(sup_h\sigma(\bigtriangledown g(h))\),其中$\sigma(A)$即指矩阵A
的谱范数。
那么,$\left| g \right|_{Lip}=sup_h\sigma(\bigtriangledown g(h))=sup_h\sigma(W)=\sigma(W)$,
则根据Lipschitz 定义的不等式,有:
于是,当约束权重矩阵 W
使其LIpschitz constraint
$\sigma(W)=1$,则有:
那么,当我们这样约束的时候,带入上一个不等式,便可得到$\left |f \right |_{Lip}$ is bounded from above by 1
。
好了,现在我们说完了谱归一化的原理,回过头来重新看看开头的那句总结:
谱归一化约束,通过约束 GAN 的 Discriminator 的每一层网络的权重矩阵(weight matrix)的谱范数来约束 Discriminator 的 Lipschitz 常数,从而增强 GAN 在训练过程中的稳定性。
是不是有种豁然开朗的感觉?
3. Trivials
论文里剩下的部分就是一些实现时的 tricks 了,这里就不赘述了,感兴趣的话可以阅读原文自行探索~~
那么,说完了这一篇Spectral Normalization for Generative Adversarial Networks前导篇, 敬请期待我的下一篇论文阅读-自注意力GAN_SAGAN~~
微信公众号:璇珠杂俎(也可搜索oukohou),提供本站优质非技术博文~~
regards.
oukohou.
既已览卷至此,何不品评一二: