谱范数正则(Spectral Norm Regularization)的理解

近来,DeepMind的一篇论文《LARGE SCALE GAN TRAINING FOR
HIGH FIDELITY NATURAL IMAGE SYNTHESIS》(arXiv:1809.11096v1)[1](通过大规模Gan训练,得到高精度的合成自然图像)引起了广泛的关注。其中,为保证其大批次(batch够大)Gan训练的稳定性,[1]引入了谱范数正则技术(Spectral Norm Regularization)。该技术从每层神经网络的参数矩阵的谱范数角度,引入正则约束,使神经网络对输入扰动具有较好的非敏感性,从而使训练过程更稳定,更容易收敛。
谱范数正则(Spectral Norm Regularization,简称为SNR)最早来自于2017年5月日本国立信息研究所Yoshida的一篇论文[2],他们后续又于2018年2月再再arXiv发了一篇SNR用于Gan的论文[3],以阐明SNR的有效性。因为当SGD(统计梯度下降)的批次(Batch size)一大的时候,其泛化性能却会降低,SNR能有效地解决这一问题。

SNR的讨论是从网络的泛化((Generalizability))开始的。对于Deep Learning而言,泛化是一个重要的性能指标,直觉上它与扰动(Perturbation)的影响有关。我们可以这样理解:局部最小点附近如果是平坦(flatness)的话,那么其泛化的性能将较好,反之,若是不平坦(sharpness)的话,稍微一点变动,将产生较大变化,则其泛化性能就不好。因此,我们可以从网络对抗扰动的性能入手来提升网络的泛化能力。

一、扰动的表示

对应多层神经网络而言,扰动(Perturbation)的来源主要有两个:1)参数的扰动;2)输入的扰动。[2]是从输入扰动的角度来进行讨论的。假设一个前馈网络的第 l l l 层有如下关系:
x l = f l ( W l x l − 1 + b l ) ( 1 ) \mathbf x^l=f^l(W^l\mathbf x^{l-1}+\mathbf b^l)\qquad(1) xl=fl(Wlxl1+bl)(1)
(1)中, x l \mathbf x^l xl 表示第 l l l 层的输出, x l − 1 \mathbf x^{l-1} xl1 表示第 l l l 层的输入, W l , b l W^l,\mathbf b^l Wl,bl 分别表示该层神经网络的参数矩阵和偏置向量, f l ( ⋅ ) f^l(\cdot) fl() 表示网络的非线性激活函数, l = 1 , ⋯   , L l=1,\cdots,L l=1,,L 即整个网络有L层。于是,整个网络的参数集合可用 Θ = { W l , b l } l = 1 L \Theta = \{ W^l,\mathbf b^l\}^L_{l=1} Θ={ Wl,bl}l=1L 表示。
对于给定训练集: ( x i , y i ) i = 1 K (\mathbf x_i, \mathbf y_i)^K_{i=1} (xi,yi)i=1K,其中 x i ∈ R n 0 , y i ∈ R n L \mathbf x_i \in \mathbb R^{n_0},\mathbf y_i \in \mathbb R^{n_L} xiRn0,yiRnL,则Loss 函数可以表示为:
L o s s = 1 K ∑ i = 1 K L ( f Θ ( x i ) , y i ) ( 2 ) Loss=\frac{1}{K}\sum^K_{i=1}L(f_{\Theta}(\mathbf x_i),\mathbf y_i)\qquad(2) Loss=K1i=1KL(fΘ(xi),yi)(2)
其中, L ( ⋅ ) L(\cdot) L() 表示我们常用的优化目标函数,如:交叉熵用于分类(Classification)任务、最小平方差 l 2 l_2 l2用于回归(Regression)任务。
所谓输入扰动,就指:输入有一个很小的变化,引起的输出变化:
x → x + ξ f ( x ) → f ( x + ξ ) So we define: P = ∥ f ( x + ξ ) − f ( x ) ∥ ∥ ξ ∥ ( 3 ) \mathbf x\rightarrow \mathbf x+\mathbf \xi \\ f(\mathbf x) \rightarrow f(\mathbf x +\mathbf \xi )\\ \text{So we define:}\\ P=\frac{\Vert f(\mathbf x +\mathbf \xi )-f(\mathbf x)\Vert}{\Vert \mathbf \xi \Vert} \qquad(3) xx+ξf(x)f(x+ξ)So we define:P=ξf(x+ξ)f(x)(3)
我们要考察输入扰动的影响,可通过扰动指数—— P P P,定量分析。对于多层神经网络,其非线性的引入是由于非线性激活函数。对于常见的非线性函数,如:ReLU、maxout、maxpooling等,我们可以将它看作是分段线性函数,因此,对于 x \mathbf x x 的邻域来说,可看成是线性函数,如:ReLu。输入扰动发生在 x \mathbf x x 的邻域中,对于单层神经网络(未经激活函数)有以下关系:
∥ f ( x + ξ ) − f ( x ) ∥ ∥ ξ ∥ = ∥

  • 27
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值