【GANs学习笔记】(十)SNGAN

本文深入解析SNGAN(频谱归一化生成对抗网络)的设计思路与实现原理,阐述其如何通过频谱范数正则化及W矩阵归一化控制梯度,实现对生成模型的稳定训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完整笔记:http://www.gwylab.com/note-gans.html
———————————————————————
本章借鉴内容:
https://baike.baidu.com/item/%E5%A5%87%E5%BC%82%E5%80%BC/9975162
https://blog.youkuaiyun.com/zhongkejingwang/article/details/43053513

 

7. SNGAN

7.1 SNGAN设计思路

       现在我们的目的,是要保证对于每一个位置的x,梯度的模都小于等于1。在神经网络中,将梯度的模限制在一个范围内,抽象地来说就是让产生的函数更平滑一些,最常见的做法便是正则化。SNGAN(频谱归一化GAN)为了让正则化产生更明确地限制,提出了用谱范数标准化神经网络的参数矩阵W,从而让神经网络的梯度被限制在一个范围内。

7.2 频谱范数

       我们先以前馈神经网络为一个简单的例子来解释频谱范数(下称谱范数)的作用。(7.2-7.4节是一些相关的理论基础,如果不感兴趣可以直接跳到7.5节)

一个前馈神经网络可以表示为级联计算:。其中代表层数,是第层的输入,是第层的输出,是一个(非线性的)激活函数,分别代表层的权重矩阵和偏置向量。现在我们把全体参数的集合记作ΘΘ=;全体网络层所形成的函数记作,即有:。给定K组训练数据,,损失函数定义为:,通常L被选择为交叉熵或是距离,分别用于分类和回归任务。要学习的模型参数是Θ

       现在我们开始考虑如何获得对输入的扰动不敏感的模型。 我们的目标是获得一个模型Θ,使得f(x +ξ)-f(x)的模(指的是2-范数,即各个元素的平方和)很小,其中ξ是具有小的模的扰动向量。假设我们选用的激活函数是ReLUmaxout等分段线性函数,在这种情况下,也是分段线性函数。 因此,如果我们考虑x的小邻域,我们可以将视为线性函数。 换句话说,我们可以用仿射映射表示它,,其中是矩阵,是向量,它们都取决于Θx的值。 然后,对于小扰动ξ,我们有:

       其中σ就是的谱范数的计算式,数学上它等价于计算矩阵的最大奇异值(奇异值的介绍见7.2节)。矩阵最大奇异值的表达式参见下式:

       上述论证表明我们应当训练模型参数Θ,使得对于任何x的谱范数都很小。 为了进一步研究的性质,让我们假设每个激活函数都是ReLU(该参数可以很容易地推广到其他分段线性函数)。注意,对于给定的向量x充当对角矩阵,其中如果中的对应元素为正,则对角线中的元素等于1; 否则,它等于零(这是ReLU的定义)。于是,我们可以重写为下式:

       又注意到对于每个,有σ1,所以我们有:

       至此我们得出了一个非常重要的结论,为了限制的谱范数,只需要每个限制的谱范数就足够了。这促使我们考虑谱范数正则化,这将在7.3节中描述。

7.3* 奇异值与奇异值分解

       在介绍频谱范数正则化之前,先简要介绍一下后面会用到的技巧:奇异值分解。奇异值是线性代数中的概念,奇异值分解是矩阵论中一种重要的矩阵分解法,奇异值一般通过奇异值分解定理求得。如果读者了解奇异值的话这一节可以跳过。

      

奇异值的定义

       Am*n矩阵,q=min(m,n)A*Aq个非负特征值的算术平方根叫作A的奇异值。

 

       奇异值分解定理

设给定 https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D65/sign=ed9814813312b31bc36cce2c8718a1bc/5243fbf2b21193132e6b77766f380cd790238dc8.jpg ,令 https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D94/sign=9df17d0bf6039245a5b5ed0b86947d64/7af40ad162d9f2d30913af29a3ec8a136227ccf2.jpg ,并假设 https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D70/sign=4fc2165406f431adb8d241394a36d819/c2cec3fdfc0392452bfd12c98d94a4c27c1e25a8.jpg

(a) 存在酉矩阵 https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D53/sign=bb8a75e543540923ae69637d93580961/b219ebc4b74543a9b41d710a14178a82b80114f5.jpg  https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D59/sign=88239bdbde2a283447a636025ab5f72b/bd3eb13533fa828b4e641625f71f4134960a5ab5.jpg ,以及一个对角方阵

https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D152/sign=936d62325bda81cb4ae687c86067d0a4/4b90f603738da97707110cedba51f8198618e33e.jpg

使得https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D255/sign=c04bccc58d44ebf86971633aecf8d736/30adcbef76094b360784ee2ba9cc7cd98c109de6.jpg 以及 https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D95/sign=637952aedb09b3deefbfe86dcdbf0463/eac4b74543a98226facbdee18082b9014b90ebea.jpg

其中 https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D265/sign=eb30f48cd0b44aed5d4eb9e2861d876a/b3fb43166d224f4a4d8c84d503f790529922d1db.jpg

(b) 参数 https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D78/sign=ce8cc82768d9f2d3241126e7a8ec8426/b90e7bec54e736d19a567bce91504fc2d46269ab.jpg  https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D30/sign=9119552bab44ad342abf8187d1a2dd5d/c9fcc3cec3fdfc03927f147ede3f8794a5c226f4.jpg 的按照递减次序排列的非零特征值的正的平方根,它们与https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D30/sign=9119552bab44ad342abf8187d1a2dd5d/c9fcc3cec3fdfc03927f147ede3f8794a5c226f4.jpg 的按照递减次序排列的非零特征值的正的平方根是相同的。

       在奇异值分解定理中,矩阵 https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D28/sign=3eef1ea25c4e9258a23481e69e8206fb/1f178a82b9014a90c1cfb07ba3773912b21bee07.jpg 的对角元素(即纯量https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D79/sign=760d4ee60be9390152028f3779ec2e82/0ff41bd5ad6eddc45b0e423d33dbb6fd5366330e.jpg ,它们是方阵 https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D31/sign=99d1bcc86d09c93d03f208f69d3d6ce8/1e30e924b899a9011cceadf017950a7b0308f579.jpg 的对角元素)称为矩阵A的奇异值。

 

       *奇异值分解定理的证明

       证明比较复杂,在此不赘述了,推荐一篇博文,感兴趣的读者可以去了解一下:

https://blog.youkuaiyun.com/zhongkejingwang/article/details/43053513

但是要注意的是,7.3节当中提到了一些概念,其中左奇异向量指的是的特征向量,右奇异向量指的是的特征向量。

7.4 频谱范数正则化

       频谱范数正则化方法是175月提出来的,虽然最终的SNGAN没有完全采用这一方法,但是它借鉴了这个方法非常重要的思想。

为了约束每个权重矩阵的频谱范数,我们考虑以下经验风险最小化问题:

       其中λ∈是正则化因子,第二项被称为谱范数正则项,它降低了权重矩阵的谱准则。

       在执行标准梯度下降时,我们需要计算谱范数正则项的梯度。为此,让我们考虑对于一个特定的梯度σ(/2,其中。 设=σ(分别是第一和第二奇异值。 如果>,则σ(/2的梯度为,其中,分别是第一个左奇异向量和第一个右奇异向量。 如果=,则σ(/2是不可微的。 然而,出于实际目的,我们可以假设这种情况从未发生,因为实际训练中的数值误差会让不可能完全相等。

       由于计算在计算上是昂贵的,我们使用功率迭代方法来近似它们。从随机初始化的v开始(开始于层),我们迭代地执行以下过程足够次数:

       最终我们得到了使用频谱范数正则项的SGD算法如下:

       值得注意的是,为了最大化,在SGD的下一次迭代开始时,我们可以用代替第2步中的初始向量v。然后在第7步中右方的标注是,paper作者在实验中发现,只进行一次迭代就能够获得足够好的近似值。文章中还提到对于含有卷积的神经网络架构,我们需要将参数对齐为b×a的矩阵,再去计算该矩阵的谱范数并添加到正则项中。

       综上,频谱范数正则化看起来非常复杂,但是它的实际做法,可以简单地理解为,把传统GANs中的loss函数:

ok

       其中的正则项替换成了谱范数:

       并且谱范数的计算利用了功率迭代的方法去近似。

7.5 SNGAN的实现

       之前我们说到,对于GANs最重要的目的是实现D1-lipschitz限制,频谱范数正则化固然有效,但是它不能保证把的梯度限制在一个确定的范围内,真正解决了这一问题的,是直到182月才被提出的SNGANSNGAN基于spectral normalization的思想,通过对W矩阵归一化的方式,真正将的梯度控制在了小于或等于1的范围内。

       我们先来证明,只要将每一层的谱范数都限制为1,最终得到的函数就会满足1-lipschitz限制。

       对于一个线性层函数g(h)=Wh,我们可以计算出它的lipschitz范式:

       如果激活层函数的lipschitz范式=1(比如ReLU),我们就有如下不等式:

       其中表示复合函数。我们利用上面的不等式,就能够得到lipschitz范式的限制式:

       于是现在,我们只需要保证恒等于1,就能够让函数满足1-lipschitz限制。做法非常简单,只需要将W矩阵归一化即可:

至此,SNGAN通过将W矩阵归一为谱范数恒等于1的式子,进而控制的梯度恒小于等于1,最终实现了对D1-lipschitz限制,最后我们给出SNGAN中的梯度下降算法:

       可以看出,与传统的SGD相比,带有谱归一化的SGD做的额外处理就是对W矩阵做的归一化处理:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值