ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spectral Normalization 谱归一化-原理及实现

2022-01-05 15:39:15  阅读:322  来源: 互联网

标签:Spectral 判别 梯度 归一化 Lipschitz 范数 Normalization


//

一、谱范数及其计算方法

见我的这篇blog 谱范数求解方法-奇异值分解&幂迭代法

//

二、谱归一化提出背景

谱归一化由论文《Spectral Normalization For Generative Adversarial Networks》论文链接 提出。

原生 GAN 的目标函数等价于优化生成数据的分布真实数据的分布之间的 J-S 散度 (Jensen–Shannon Divergence)
而由于二者间几乎不可能有不可忽略的重叠,所以无论它们相距多远JS散度都是常数log2,最终导致生成器的梯度(近似)为0,梯度消失。
也就是说判别器训练越好,生成器梯度消失越严重

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

“梯度裁剪”技术从每层神经网络的参数矩阵的谱范数角度,引入利普希茨连续性约束,使神经网络对输入扰动具有较好的非敏感性,从而使训练过程更稳定,更容易收敛。(深度学习模型存在“对抗攻击样本”,比如图片只改变一个像素就给出完全不一样的分类结果,这就是模型对输入过于敏感的案例。)

我们可以这样理解:局部最小点附近如果是平坦(flatness)的话(斜率有约束),那么其泛化的性能将较好,反之,若是不平坦(sharpness)的话,稍微一点变动,将产生较大变化,则其泛化性能就不好,也就不稳定。

Spectral Norm使用一种更优雅的方式使得判别器 D 满足利普希茨连续性,限制了函数变化的剧烈程度,从而使模型更稳定。

//

三、Lipschitz 连续性

Lipschitz 条件限制的是函数变化的剧烈程度,即函数的最大梯度

K-Lipschitz表示函数的最大梯度为K,K称为Lipschitz constant(Lipschitz常量)。例如 y = sinx的最大斜率为1,所以它是是 1-Lipschitz的。
image

那么:
image

关键定理: 对矩阵A除以其谱范数可以使其具有 1-Lipschitz continuity证明)。

//

四、谱归一化

对GAN做Spectral Norm,实际就是要使得判别器D满足1-Lipschitz条件。

注意:
判别器 D 使用了 Spectral norm 之后,就不能使用 BatchNorm (或者其它 Norm) 了。 原因也很简单,因为 Batch norm 的“除方差”和“乘以缩放因子”这两个操作很明显会破坏判别器的 Lipschitz 连续性。

参考 :
Spectral Normalization 谱归一化
令人拍案叫绝的Wasserstein GAN
Thanks

标签:Spectral,判别,梯度,归一化,Lipschitz,范数,Normalization
来源: https://www.cnblogs.com/wonderlust/p/15767225.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有