NoisyNN, Generalization Performance

在本博客中,我们一起读一下Guozhong An的文章: The Effects of Adding Noise During Back-propagation Training on a Generalization Performance.

I 系统模型

本文考虑一个多层神经网络 fff:

  • 参数向量(包括weights和bias)是 w\bm{w}w;
  • 输入是向量 x\bm{x}x;
  • 输出是一个数 f(x,w)f(\bm{x,w})f(x,w).
  • 训练数据 zμ=(xμ,yμ),μ=1,2,...,N\bm{z}^\mu=(\bm{x}^\mu, y^\mu), \mu=1,2,...,Nzμ=(xμ,yμ),μ=1,2,...,N.
  • 给定 w\bm{w}w 时,一个训练数据的 loss e(zμ,w)e(\bm{z}^\mu, \bm{w})e(zμ,w), 整个训练集上的平均 loss
    E(w)=1N∑n=1Ne(zμ,w)(1)E(\bm{w})=\frac{1}{N}\sum_{n=1}^{N}e(\bm{z}^\mu, \bm{w})\tag{1}E(w)=N1n=1Ne(zμ,w)(1)
  • Steepest/gradient descent:
    wt+1=wt+Δwt=wt−ηt∇E(w)(2)\bm{w}_{t+1}=\bm{w}_{t} + \Delta\bm{w}_{t}=\bm{w}_{t} - \eta_t \nabla E(\bm{w})\tag{2}wt+1=wt+Δwt=wtηtE(w)(2)
  • Stochastic gradient descent (SGD):
    wt+1=wt+Δwt=wt−ηt∇e(zμ,w)(3)\bm{w}_{t+1}=\bm{w}_{t} + \Delta\bm{w}_{t}=\bm{w}_{t} - \eta_t \nabla e(\bm{z}^\mu, \bm{w})\tag{3}wt+1=wt+Δwt=wtηte(zμ,w)(3)

总的来说, 神经网络的输出 f(x,w)f(\bm{x,w})f(x,w)x\bm{x}xw\bm{w}w 的函数。x\bm{x}xw\bm{w}w 上的扰动会导致

  • inference阶段:输出结果的变化。
  • training 阶段:输出的变化进一步导致loss的变化,从而影响NN的训练。

本文考虑三种noise

  1. Data noise: zμ=zμ+ζ\bm{z}^\mu=\bm{z}^\mu+\bm{\zeta}zμ=zμ+ζ
    注意这里相当于是对输入输出同时加噪声,可以这么做的原因是这两部分噪声的effect可以分开。
  2. Weight noise: w=w+ξ\bm{w}=\bm{w}+\bm{\xi}w=w+ξ
    这是在weights上直接加噪声。
  3. Langevin noise: Δw=Δw+ξ\Delta\bm{w}=\Delta\bm{w}+\bm{\xi}Δw=Δw+ξ
    这是在梯度的更新方向 (gradients) 上加噪声。

II Training with data noise

本节主要的研究目标是,训练时输入输出数据上加的噪声会对训练有什么样的影响。更具体地说,对我们要minimize的目标函数 (loss function) 有什么样的改变。

A. 加噪声后数据分布的改变

给定 w\bm{w}w, 原本的网络输出是 f(zμ,w)f(\bm{z}^\mu,\bm{w})f(zμ,w), 对输入输出加噪声后网络输出是 f(zμ+ζ,w)f(\bm{z}^\mu+\bm{\zeta},\bm{w})f(zμ+ζ,w). 由于 ζ\bm{\zeta}ζ 是随机的,因此相当于我们故意增加了很多组原本数据附近的训练数据。

[假设1] 噪声 ζ\bm{\zeta}ζ follows density ρ(ζ)\rho(\bm{\zeta})ρ(ζ).

令加完噪声后的输入输出数据 z′=zμ+ζ\bm{z}'=\bm{z}^\mu+\bm{\zeta}z=zμ+ζ, 由假设1可知 z′∼g^(z′)\bm{z}' \sim \hat{g}(\bm{z}')zg^(z) where
g^(z′)=∑μ=1Nρ(z′−zμ)Pr⁡(zμ)=1N∑μ=1Nρ(z′−zμ).(4)\hat{g}(\bm{z}')=\sum_{\mu=1}^N \rho(\bm{z'}-\bm{z}^\mu)\Pr(\bm{z}^\mu)=\frac{1}{N}\sum_{\mu=1}^N \rho(\bm{z'}-\bm{z}^\mu).\tag{4}g^(z)=μ=1Nρ(zzμ)Pr(zμ)=N1μ=1Nρ(zzμ).(4)

换句话说,加完噪声后 z′\bm{z}'z 变成了连续的,且可能由任意一个 zμ\bm{z}^\muzμ 加上噪声得到。由于 zμ\bm{z}^\muzμ 在 SGD 训练中是随机等概率选取的,我们可以得到上式.

B. 加噪声后loss函数的改变

Lemma 1 (Bottou, 1991). 假设 loss 函数 c(u,w)c(\bm{u,w})c(u,w)w\bm{w}w 的连续可微分函数,而 u\bm{u}u 是从分布 g(u)g(\bm{u})g(u) 中采样出的随机向量。如果我们采用 stochastic gradient descent 更新 w\bm{w}w 来 minimize c(u,w)c(\bm{u,w})c(u,w), i.e.,
wt+1=wt−ηt∇wc(u,w).\bm{w}_{t+1}=\bm{w}_t - \eta_t\nabla_\bm{w}c(\bm{u,w}).wt+1=wtηtwc(u,w).

则最终 c(u,w)c(\bm{u,w})c(u,w) converges to C(w)C(\bm{w})C(w) where
C(w)=min⁡wEu[c(u,w)]=min⁡w∫c(u,w)g(u)duC(\bm{w})=\min_{\bm{w}}\mathbb{E}_\bm{u}[c(\bm{u,w})]=\min_{\bm{w}}\int c(\bm{u,w})g(\bm{u}) d\bm{u}C(w)=wminEu[c(u,w)]=wminc(u,w)g(u)du

注:Lemma 1 is subject some assumptions such as ∑tηt=∞\sum_t\eta_t=\inftytηt= and ∑tηt2<∞\sum_t \eta_t^2<\inftytηt2<.

Lemma 1 指出,如果训练数据是从一个分布 g(u)g(\bm{u})g(u) 中采样的,那么SGD最终会收敛到 c(u,w)c(\bm{u,w})c(u,w) 均值的一个最小值点处。那么,

  1. Noiseless data 满足分布 g(z)=∑μ1Nδ(z−zμ)g(\bm{z})=\sum_\mu\frac{1}{N}\delta(\bm{z}-\bm{z}^\mu)g(z)=μN1δ(zzμ), SGD会最终收敛到 E(w)E(\bm{w})E(w) 的一个最小值处。
    E(w)=∑μ1Ne(zμ,w).(5)E(\bm{w})=\sum_\mu\frac{1}{N}e(\bm{z}^\mu,\bm{w}).\tag{5}E(w)=μN1e(zμ,w).(5)
  2. Noisy data 满足分布 g^(z′)=1N∑μ=1Nρ(z′−zμ)\hat{g}(\bm{z}')=\frac{1}{N}\sum_{\mu=1}^N \rho(\bm{z'}-\bm{z}^\mu)g^(z)=N1μ=1Nρ(zzμ), SGD 最终会收敛到 ε(w)\varepsilon(\bm{w})ε(w) 的一个最小值处,其中
    ε(w)=∫e(z′,w)g^(z′)dz′.(6)\varepsilon(\bm{w})=\int e(\bm{z}',\bm{w})\hat{g}(\bm{z}')d\bm{z}'. \tag{6}ε(w)=e(z,w)g^(z)dz.(6)

所以说,输入输出上的噪声使得要 minimize 的 loss 函数由 E(w)E(\bm{w})E(w) 变成了 ε(w)\varepsilon(\bm{w})ε(w).

提升网络generalizability的常用方法: Regularization

由以上结论我们可以联想到一类经常使用的提升网络generalizability的方法: regularization. 即,我们在原本 loss 函数后面加上一个惩罚项 P(w)P(\bm{w})P(w) 构成新的目标函数
C(w)=E(w)+λP(w)C(\bm{w})=E(\bm{w})+\lambda P(\bm{w})C(w)=E(w)+λP(w)

其中 λ>0\lambda>0λ>0.

Lemma 2 (Arfken, 1985). 若 P(w)=constantP(\bm{w})=\text{constant}P(w)=constant 且 constant 的值仅取决于 λ\lambdaλ not w\bm{w}w, 那么minimizing C(w)C(\bm{w})C(w) 同时也会minimize E(w)E(\bm{w})E(w).

在实际中,具体 P(w)P(\bm{w})P(w) 的形式有很多种heuristic的方法,比如

  • In weight decay (Hinton 1996) and weight elimination (Weigend et al. 1991), PPP 是 NN size 的一个表征, 即我们希望模型sparse一点。
  • 在一些maximum a posteriori probability 方法中,P(w)P(\bm{w})P(w)−log⁡-\loglog (a priori probability of w\bm{w}w), e.g., MacKay 1992, Nowlan and Hinton 1992.
  • 在一些信息论的方法中,P(w)P(\bm{w})P(w) 是描述模型所需要的长度,e.g., Rissanen 1989, Kendall and Hall 1993.
  • 其他一些work中, P(w)P(\bm{w})P(w)是一种smoothness measure.

总之,如果 P(w)P(\bm{w})P(w) 的选取与数据的产生过程相一致,往往 minimizing C(w)C(\bm{w})C(w) 会让网络有更好的 generalizability.

C. loss 函数改变了多少

为了和之前的工作联系起来,我们接下来定量的分析一下,输入输出数据上的噪声导致 loss 函数到底改变了多少,令
ε(w)=E(w)+P(w)\varepsilon(\bm{w}) = E(\bm{w}) + P(\bm{w})ε(w)=E(w)+P(w)

则,
P(w)=ε(w)−E(w)=∫e(z′,w)1N∑μρ(z′−zμ)dz′−1N∑μe(zμ,w)P(\bm{w}) = \varepsilon(\bm{w}) - E(\bm{w})=\int e(\bm{z}',\bm{w}) \frac{1}{N}\sum_\mu\rho(\bm{z}'-\bm{z}^\mu) d\bm{z}'-\frac{1}{N}\sum_\mu e(\bm{z}^\mu,\bm{w})P(w)=ε(w)E(w)=e(z,w)N1μρ(zzμ)dzN1μe(zμ,w)

=1N∑μ[∫e(zμ+ζ,w)ρ(ζ)dζ−e(zμ,w)]= \frac{1}{N}\sum_\mu \left[\int e(\bm{z}^\mu+\bm{\zeta},\bm{w}) \rho(\bm{\zeta}) d\bm{\zeta}- e(\bm{z}^\mu,\bm{w})\right]=N1μ[e(zμ+ζ,w)ρ(ζ)dζe(zμ,w)]

=1N∑μ{Eζ[e(zμ+ζ,w)]−e(zμ,w)}(7)= \frac{1}{N}\sum_\mu \Big\{\mathbb{E}_{\bm{\zeta}} \big[e(\bm{z}^\mu+\bm{\zeta},\bm{w}) \big]- e(\bm{z}^\mu,\bm{w})\Big\} \tag{7}=N1μ{Eζ[e(zμ+ζ,w)]e(zμ,w)}(7)

接下来我们分析 e(zμ+ζ,w)e(\bm{z}^\mu+\bm{\zeta},\bm{w})e(zμ+ζ,w) 这一项。将 e(z+ζ,w)e(\bm{z}+\bm{\zeta},\bm{w})e(z+ζ,w)zμ\bm{z}^\muzμ 处 Taylor 展开,我们有
e(z+ζ,w)=e(z,w)+∑i∂e(z,w)∂ziζi+12∑i,j∂2e(z,w)∂zizjζiζj+⋯(8)e(\bm{z}+\bm{\zeta},\bm{w})=e(\bm{z},\bm{w})+\sum_i \frac{\partial e(\bm{z},\bm{w})}{\partial \bm{z}_i} \bm{\zeta}_i+\frac{1}{2}\sum_{i,j}\frac{\partial^2 e(\bm{z},\bm{w})}{\partial \bm{z}_i\bm{z}_j} \bm{\zeta}_i \bm{\zeta}_j + \cdots \tag{8}e(z+ζ,w)=e(z,w)+izie(z,w)ζi+21i,jzizj2e(z,w)ζiζj+(8)

[假设2] 噪声向量 ζ\bm{\zeta}ζ 各项独立,ζi∼ρi(ζ)\bm{\zeta}_i\sim \rho_i(\zeta)ζiρi(ζ).

[假设3] 噪声向量 ζ\bm{\zeta}ζ 各项的分布 ρi(ζ)\rho_i(\zeta)ρi(ζ) 关于 ζ=0\zeta=0ζ=0 对称。

以上两个假设在很多现实场景中都存在,ρi(ζ)\rho_i(\zeta)ρi(ζ) 是高斯分布或者均匀分布的应用最为广泛。

由假设3,我们可以得到 ζ\zetaζ 的奇数次moment均值都是0 (由MGF可得出),即
Eζ[ζ2k+1]=0,      k=0,1,2,3,...\mathbb{E}_\zeta[\zeta^{2k+1}]=0,~~~~~~k=0,1,2,3,...Eζ[ζ2k+1]=0,      k=0,1,2,3,...

好,接下来对 (8) 式两边求平均有
Eζ[e(z+ζ,w)]=Eζ[e(z,w)]+12∑i,j∂2e(z,w)∂zizjζiζj+R.(9)\mathbb{E}_{\bm{\zeta}}\big[e(\bm{z}+\bm{\zeta},\bm{w})\big]= \mathbb{E}_{\bm{\zeta}}\big[e(\bm{z},\bm{w})\big] +\frac{1}{2}\sum_{i,j}\frac{\partial^2 e(\bm{z},\bm{w})}{\partial \bm{z}_i\bm{z}_j} \bm{\zeta}_i \bm{\zeta}_j + R. \tag{9}Eζ[e(z+ζ,w)]=Eζ[e(z,w)]+21i,jzizj2e(z,w)ζiζj+R.(9)

其中所有的奇次项都变成了零,偶次项都保留。特别的,我们只关注二次项,后面的余项 RRR 的具体表达形式我们略过。在weak-noise limit的情况下 (i.e., 噪声向量的每一项方差远小于1),可以得到RRR 远小于二次项可以忽略 (higher order of variance)。

接下来,令 z=zμ\bm{z}=\bm{z}^\muz=zμ, 将 (9) 代入 (7) 且忽略 RRR, 我们有
P(w)≈Eζ[1N∑μ12∑i,j∂2e(zμ,w)∂zizjζiζj].(10)P(\bm{w}) \approx \mathbb{E}_{\bm{\zeta}} \Bigg[ \frac{1}{N}\sum_\mu \frac{1}{2}\sum_{i,j}\frac{\partial^2 e(\bm{z}^\mu,\bm{w})}{\partial \bm{z}_i\bm{z}_j} \bm{\zeta}_i \bm{\zeta}_j \Bigg]. \tag{10}P(w)Eζ[N1μ21i,jzizj2e(zμ,w)ζiζj].(10)

而且注意,Hessen matrix 中非对角线元素全部是0 (由于假设2和3), 只有对角线上元素还存在。令 E[ζi2]=2σi2\mathbb{E}[\bm{\zeta}^2_i] = 2\sigma^2_iE[ζi2]=2σi2, (10) 式可以继续写为
P(w)≈1N∑μ∑i∂2e(zμ,w)∂2ziσi2.(10)P(\bm{w}) \approx \frac{1}{N}\sum_\mu \sum_{i}\frac{\partial^2 e(\bm{z}^\mu,\bm{w})}{\partial^2 \bm{z}_i} \sigma^2_i \tag{10}.P(w)N1μi2zi2e(zμ,w)σi2.(10)

这是我们这一阶段想得到的最终的表达式,它衡量的输入输出数据上的噪声带来的 loss 函数上的变化。

D. Quadratic loss and Cross-entropy loss 下的 loss 变化

接下来,我们考虑两种常用的 loss 函数来measure loss 函数的变化。

Quadratic loss 的情况下:
e(zμ,w)=12[f(xμ,w)−yμ]2;(11)e(\bm{z}^\mu,\bm{w}) = \frac{1}{2}\big[f(\bm{x}^\mu,\bm{w})-y^\mu\big]^2; \tag{11}e(zμ,w)=21[f(xμ,w)yμ]2;(11)

Cross-entropy loss 的情况下:
e(zμ,w)=yμlog⁡yμf(xμ,w)+(1−yμ)log⁡1−yμ1−f(xμ,w).(12)e(\bm{z}^\mu,\bm{w}) = y^\mu\log \frac{y^\mu}{f(\bm{x}^\mu,\bm{w})}+(1-y^\mu)\log\frac{1-y^\mu}{1-f(\bm{x}^\mu,\bm{w})}. \tag{12}e(zμ,w)=yμlogf(xμ,w)yμ+(1yμ)log1f(xμ,w)1yμ.(12)

注意,这个 cross-entropy 的定义实际上是 cross entropy 减去 entropy of distribution (y,1−y)(y, 1-y)(y,1y).

接下来,假设噪声向量的每一项方差相同都是 2σ22\sigma^22σ2。把这两种 loss 代入 (10), 最终我们得到了同样的 PPP 的形式:
P≈σ2(P0+P1+P2).(13)P\approx \sigma^2 (P_0+P_1+P_2). \tag{13}Pσ2(P0+P1+P2).(13)

Quadratic loss

Quadratic loss 的情况下,我们有
P0=1,(14)P_0=1, \tag{14}P0=1,(14)

P1=1N∑μ,i∣∂f(xμ,w)∂xiμ∣2,(15)P_1 = \frac{1}{N} \sum_{\mu,i} \left| \frac{\partial f(\bm{x}^\mu,\bm{w})}{\partial \bm{x}^\mu_i}\right|^2, \tag{15}P1=N1μ,ixiμf(xμ,w)2,(15)

P2=1N∑μ,i[f(xμ,w)−yμ]∂2f(xμ,w)∂2xiμ.(16)P_2 = \frac{1}{N} \sum_{\mu,i} [f(\bm{x}^\mu,\bm{w}) - y^\mu] \frac{\partial^2 f(\bm{x}^\mu,\bm{w})}{\partial^2 \bm{x}_i^\mu}. \tag{16} P2=N1μ,i[f(xμ,w)yμ]2xiμ2f(xμ,w).(16)

Cross-entropy loss

Cross-entropy loss 的情况下,我们有
P0=1N∑μ[yμ(1−yμ)]−1,P_0=\frac{1}{N}\sum_\mu [y^\mu(1-y^\mu)]^{-1},P0=N1μ[yμ(1yμ)]1,

P1=1N∑μ,ifμ2−2yμfμ+yμfμ2(1−fμ)2∣∂f(xμ,w)∂xiμ∣2,P_1 = \frac{1}{N} \sum_{\mu,i} \frac{f_\mu^2-2y^\mu f_\mu+y^\mu}{f_\mu^2(1-f_\mu)^2} \left| \frac{\partial f(\bm{x}^\mu,\bm{w})}{\partial \bm{x}^\mu_i}\right|^2,P1=N1μ,ifμ2(1fμ)2fμ22yμfμ+yμxiμf(xμ,w)2,

P2=1N∑μ,ifμ−yμfμ(1−fμ)∂2f(xμ,w)∂2xiμ.P_2 = \frac{1}{N} \sum_{\mu,i} \frac{f_\mu-y^\mu}{f_\mu(1-f_\mu)} \frac{\partial^2 f(\bm{x}^\mu,\bm{w})}{\partial^2 \bm{x}_i^\mu}.P2=N1μ,ifμ(1fμ)fμyμ2xiμ2f(xμ,w).

分析

  1. 我们是同时在输入输出数据z\bm{z}z上加的噪声,但是在输入上加的噪声和在输出上加的噪声的对loss函数的影响是不一样的。特别的,P0P_0P0 是在输出上加噪声带来的 loss的改变 (这个比较直接),而其他两项都是因为在输入上加噪声带来的loss的改变。
    注意到 P0P_0P0w\bm{w}w 是没关系的,因此在求 gradients 的时候 P0P_0P0 并不会影响 w\bm{w}w 的改变。因此,

结论1: Zero-mean and constant-variance noise added to the labels have no effect on generalization.

  1. 再来看,两个 P1P_1P1 都是恒正的。这也就意味着在输入上加的噪声会在 loss function 上带来一个正偏置,在训练时候我们minimize loss的同时还会刻意minimize P1P_1P1. 换句话说,加了输入噪声之后,神经网络的训练会更倾向于 slow-varing f(x,w)f(\bm{x},\bm{w})f(x,w) 因为一阶导更小。这也与 regularization 方法中加上的penalty terms 有异曲同工之妙。

结论2: Zero-mean and constant-variance noise added to the inputs 会 penalize 对不同输入变化剧烈的 w\bm{w}w. 训练最终得到的 w\bm{w}w 会使得神经网络的输出是输入的一个平滑的函数.

  1. 最后,P2P_2P2 正是区分开 noise injection 和 regularization 方法的关键。可以看出,P2P_2P2 取决于 f(x,w)−yμf(\bm{x,w})-y^\muf(x,w)yμ 和 二阶导 ∂2f(xμ,w)∂2xiμ\frac{\partial^2 f(\bm{x}^\mu,\bm{w})}{\partial^2 \bm{x}_i^\mu}2xiμ2f(xμ,w). In general, 它可正可负。

P2=1N∑μ,ifμ−yμfμ(1−fμ)∂2f(xμ,w)∂2xiμ.(17)P_2 = \frac{1}{N} \sum_{\mu,i} \frac{f_\mu-y^\mu}{f_\mu(1-f_\mu)} \frac{\partial^2 f(\bm{x}^\mu,\bm{w})}{\partial^2 \bm{x}_i^\mu}. \tag{17}P2=N1μ,ifμ(1fμ)fμyμ2xiμ2f(xμ,w).(17)

注:prior works也推导到了这一步得出了 P0P_0P0, P1P_1P1, and P2P_2P2 的形式。但是有些work中没有发现 P2P_2P2, 有些work中基于其假设得出的结论是 P2P_2P2 vanishes,which is not general.

III Training with weight noise

A. Weight noise 转换成 label noise

在上一部分中,我们分析了在输入输出数据中加噪声对训练的影响。我们的结论是,输入输出上的噪声使得训练的神经网络less sensitive to input variations。因此,overfitting被减轻了网络也有更好的generalization performance。在这一部分中,我们分析weight上的噪声对网络 generalizability 的影响。

首先,训练with noisy weights的收敛性是很难分析。因此,我们跳过这一part,直接计算在给定 w\bm{w}w 上加噪声对loss函数的改变, 也就是上文中的 P(w)P(\bm{w})P(w)

注意到,weight noise 影响 training 的方式是通过改变网络输出来实现的。即,训练时候 w\bm{w}w 上的随机噪声会使得输出变为 f(x,w+ξ)f(\bm{x,w+\xi})f(x,w+ξ), loss 变为 e(z,w+ξ)e(\bm{z,w+\xi})e(z,w+ξ), gradient 变为 ∇we(zμ,w+ξ)\nabla_{\bm{w}} e(\bm{z}^\mu, \bm{w+\xi})we(zμ,w+ξ).

假设1: 我们只考虑 quadratic loss e(x,w+ξ)=12[yμ−f(x,w+ξ)]2e(\bm{x,w+\xi})=\frac{1}{2}\left[y^\mu-f(\bm{x,w+\xi})\right]^2e(x,w+ξ)=21[yμf(x,w+ξ)]2.

这样一来, 任何 f(z,w+ξ)f(\bm{z,w+\xi})f(z,w+ξ) 的变化都可以看作输出 yμy^\muyμ 的变化,只不过这种变化不再是简单的加上 i.i.d. 噪声的变化。接下来,我们就来分析 f(z,w+ξ)−f(z,w)f(\bm{z,w+\xi})-f(\bm{z,w})f(z,w+ξ)f(z,w) 有什么规律。

同样的,将 f(x,w+ξ)f(\bm{x,w+\xi})f(x,w+ξ)(x,w)(\bm{x,w})(x,w) 点泰勒展开:
f(x,w+ξ)=f(x,w)+∑i∂f(x,w)∂wiξi+12∑i,j∂2f(x,w)∂wiwjξiξj+...(18)f(\bm{x,w+\xi}) = f(\bm{x,w})+\sum_i\frac{\partial f(\bm{x,w})}{\partial\bm{w}_i}\bm{\xi}_i+\frac{1}{2}\sum_{i,j} \frac{\partial^2 f(\bm{x,w})}{\partial \bm{w}_i\bm{w}_j}\bm{\xi}_i\bm{\xi}_j+... \tag{18}f(x,w+ξ)=f(x,w)+iwif(x,w)ξi+21i,jwiwj2f(x,w)ξiξj+...(18)

Denote by ζ0=f(x,w+ξ)−f(x,w)\zeta_0=f(\bm{x,w+\xi})-f(\bm{x,w})ζ0=f(x,w+ξ)f(x,w), 我们有
ζ0=∑i∂f(x,w)∂wiξi+12∑i,j∂2f(x,w)∂wiwjξiξj+...(19)\zeta_0=\sum_i\frac{\partial f(\bm{x,w})}{\partial\bm{w}_i}\bm{\xi}_i+\frac{1}{2}\sum_{i,j} \frac{\partial^2 f(\bm{x,w})}{\partial \bm{w}_i\bm{w}_j}\bm{\xi}_i\bm{\xi}_j+... \tag{19}ζ0=iwif(x,w)ξi+21i,jwiwj2f(x,w)ξiξj+...(19)

假设2: 噪声向量 ξ\bm{\xi}ξ 各个分量 i.i.d. ξi\bm{\xi}_iξi 均值为 000,方差为 2σi22\sigma^2_i2σi2

由假设2,我们有
E[ζ0]=∑i∂2f(x,w)∂2wiσi2+O(σi4)(20)\mathbb{E}[\zeta_0] = \sum_{i} \frac{\partial^2 f(\bm{x,w})}{\partial^2\bm{w}_i}\sigma^2_i + \mathcal{O}(\sigma^4_i) \tag{20}E[ζ0]=i2wi2f(x,w)σi2+O(σi4)(20)

E[ζ02]=2∑i∣∂f(x,w)∂wi∣2σi2+O(σi4)(21)\mathbb{E}[\zeta^2_0] = 2\sum_i\Big|\frac{\partial f(\bm{x,w})}{\partial\bm{w}_i}\Big|^2\sigma^2_i + \mathcal{O}(\sigma^4_i) \tag{21}E[ζ02]=2iwif(x,w)2σi2+O(σi4)(21)

即,最终 weight 各个 dimension 上的noise 汇集成了输出上的一个random variable ζ0\zeta_0ζ0, 其非零均值方差由 (20) 和 (21) 给出。特别的,在quadratic noise 的情况下,ζ0\zeta_0ζ0 可以看做 labels 上加的噪声。 从而,我们可以进一步分析loss function的变化。

B. Weight noise 带来的 loss 的变化

还记得在上一部分,我们已经得出,z\bm{z}z 上加噪声 ζ\bm{\zeta}ζ 后带来的loss 函数的变化由 (7) 式给出,即
P(w)=1N∑μ{Eζ[e(zμ+ζ,w)]−e(zμ,w)}P(\bm{w})= \frac{1}{N}\sum_\mu \Big\{\mathbb{E}_{\bm{\zeta}} \big[e(\bm{z}^\mu+\bm{\zeta},\bm{w}) \big]- e(\bm{z}^\mu,\bm{w})\Big\}P(w)=N1μ{Eζ[e(zμ+ζ,w)]e(zμ,w)}

其中 e(z+ζ,w)e(\bm{z}+\bm{\zeta},\bm{w})e(z+ζ,w) 可以泰勒展开为 (8) 式,即
e(z+ζ,w)=e(z,w)+∑i∂e(z,w)∂ziζi+12∑i,j∂2e(z,w)∂zizjζiζj+⋯e(\bm{z}+\bm{\zeta},\bm{w})=e(\bm{z},\bm{w})+\sum_i \frac{\partial e(\bm{z},\bm{w})}{\partial \bm{z}_i} \bm{\zeta}_i+\frac{1}{2}\sum_{i,j}\frac{\partial^2 e(\bm{z},\bm{w})}{\partial \bm{z}_i\bm{z}_j} \bm{\zeta}_i \bm{\zeta}_j + \cdotse(z+ζ,w)=e(z,w)+izie(z,w)ζi+21i,jzizj2e(z,w)ζiζj+

现在,weight noise 带来的等价 data noise 是 ζ=[0,0,...,0,0,ζ0]⊤\bm{\zeta}=[0,0,...,0,0,\zeta_0]^\topζ=[0,0,...,0,0,ζ0]. 所以
e(z+ζ,w)−e(z,w)=∂e(z,w)∂yζ0+12∂2e(z,w)∂2yζ02+⋯(22)e(\bm{z}+\bm{\zeta},\bm{w})-e(\bm{z},\bm{w}) = \frac{\partial e(\bm{z},\bm{w})}{\partial y} \zeta_0+\frac{1}{2} \frac{\partial^2 e(\bm{z},\bm{w})}{\partial^2 y} \zeta^2_0 + \cdots \tag{22}e(z+ζ,w)e(z,w)=ye(z,w)ζ0+212y2e(z,w)ζ02+(22)

假设3: 假设 weak noise σi2≪1\sigma^2_i\ll 1σi21,

两边求平均代入 P(w)P(\bm{w})P(w),
P(w)≈1N∑μ{∂e(z,w)∂y∑i∂2f(x,w)∂2wiσi2+12∂2e(z,w)∂2y2∑i∣∂f(x,w)∂wi∣2σi2}P(\bm{w}) \approx \frac{1}{N}\sum_\mu \Big\{ \frac{\partial e(\bm{z},\bm{w})}{\partial y} \sum_{i} \frac{\partial^2 f(\bm{x,w})}{\partial^2\bm{w}_i}\sigma^2_i +\frac{1}{2} \frac{\partial^2 e(\bm{z},\bm{w})}{\partial^2 y} 2\sum_i\Big|\frac{\partial f(\bm{x,w})}{\partial\bm{w}_i}\Big|^2\sigma^2_i \Big\}P(w)N1μ{ye(z,w)i2wi2f(x,w)σi2+212y2e(z,w)2iwif(x,w)2σi2}

=1N∑μ,i{∂e(z,w)∂y∂2f(x,w)∂2wiσi2+∂2e(z,w)∂2y∣∂f(x,w)∂wi∣2σi2}.(23)=\frac{1}{N}\sum_{\mu,i} \Big\{ \frac{\partial e(\bm{z},\bm{w})}{\partial y} \frac{\partial^2 f(\bm{x,w})}{\partial^2\bm{w}_i}\sigma^2_i + \frac{\partial^2 e(\bm{z},\bm{w})}{\partial^2 y} \Big|\frac{\partial f(\bm{x,w})}{\partial\bm{w}_i}\Big|^2\sigma^2_i \Big\}. \tag{23}=N1μ,i{ye(z,w)2wi2f(x,w)σi2+2y2e(z,w)wif(x,w)2σi2}.(23)

假设4: σ12=σ22=...=σ2\sigma^2_1=\sigma^2_2=...=\sigma^2σ12=σ22=...=σ2,

最后再把 quadratic noise 代入 P(w)P(\bm{w})P(w), 得到
P=σ2N∑μ,i∂2f(xμ,w)∂2wi[yμ−f(xμ,w)]+σ2N∑μ,i∣∂f(xμ,w)∂wi∣2.(24)P=\frac{\sigma^2}{N}\sum_{\mu,i}\frac{\partial^2 f(\bm{x}^\mu,\bm{w})}{\partial^2 \bm{w}_i}\big[y^\mu-f(\bm{x}^\mu,\bm{w})\big] +\frac{\sigma^2}{N}\sum_{\mu,i}\Big|\frac{\partial f(\bm{x}^\mu,\bm{w})}{\partial \bm{w}_i} \Big|^2. \tag{24}P=Nσ2μ,i2wi2f(xμ,w)[yμf(xμ,w)]+Nσ2μ,iwif(xμ,w)2.(24)

可以看出,这个式子中的两项与quadratic noise中的 P1P_1P1P2P_2P2 是很相似的。特别的,第一项主要取决于fitting residual yμ−f(xμ,w)y^\mu-f(\bm{x}^\mu,\bm{w})yμf(xμ,w), 第二项是正的。

  1. 当 fitting residual 比较小时,第二项比较重要。最终学习到的 NN 应该是 insensitive to weight perturbation. 这在其他文章中也有得出,即weight上的加的noise会让网络对connection failure的容忍度大大提升。这里作者也提及到一些应用,比如说 analog hardware/circuit 中的模拟噪声问题。
  2. 总的来说,虽然input noise和weight noise 对weight更新梯度 Δw\Delta\bm{w}Δw 的影响的形式差不多 (他们都是通过影响NN的outputs f(x,w)f(\bm{x,w})f(x,w) 来影响Δw\Delta\bm{w}Δw), 且最终得到的 loss function 的改变量的形式也差不多,但是他们还有一些细微的差别的。主要在于,generalization主要还是指input-output mapping的平滑性,但是weight noise 主要影响的是weight-output的平滑性。

C. Case studies

单线性层的NN

接下来我们考虑一个具体的单层NN,其中没有activation function, 没有 hidden layers。令 x0=1\bm{x}_0=1x0=1, 那么bias也可以看做 multiplicative weight,因此神经网络可写为
f(x,w)=x⊤w(25)f(\bm{x,w})=\bm{x}^\top\bm{w} \tag{25}f(x,w)=xw(25)

根据 (15) 和 (24), 我们可以写出 input noise 和 weight noise 对 quadratic noise 的改变量:
P={σ2∣w∣2input noise;σ21N∑μ∣xμ∣2weight noise.P=\begin{cases} \sigma^2|\bm{w}|^2 & \text{input noise;}\\ \sigma^2\frac{1}{N}\sum_\mu |\bm{x}^\mu|^2 & \text{weight noise.} \end{cases}P={σ2w2σ2N1μxμ2input noise;weight noise.

可以看出 input noise 带来的penalty term与weight decay 和 in ridge regression 是一样。但是weight noise带来的penalty却是一个constant。因此,它并不影响NN的generalization performance.

多层网络

接下来,我们来看看多层网络中 weight noise 对NN generalizability 的影响。注意到在 (24) 中,噪声的各个分量是加性关系,因此我们可以大概做一个划分 P=Po+PhP=P_o+P_hP=Po+Ph,其中 PoP_oPo 是加在输出层上的噪声的影响而 PhP_hPh 是加在隐藏层上的噪声的影响。

输出层噪声的贡献P0P_0P0

对于隐藏层,我们有
f(x,w)=h(I)=h(∑jajwj)f(\bm{x,w}) = h(I)=h\left(\sum_j a_j w_j\right)f(x,w)=h(I)=h(jajwj)

其中 hhh 是激活函; aja_jaj 是第 jjj 个隐藏层的值; wjw_jwj 是第 jjj 个隐藏节点到输出的weight. 特别的, w0w_0w0 是bias and a0=1a_0=1a0=1; aja_jaj 是输入 x\bm{x}x (和之前层weights) 的函数而不是最后一层参数 wjw_jwj 的函数。

我们继而可以得出:
∂f(x,w)∂wj=h′(I)aj,    ∂2f(x,w)∂2wj=h′′(I)∣aj∣2\frac{\partial f(\bm{x,w})}{\partial w_j}=h^\prime(I)a_j,~~~~\frac{\partial^2 f(\bm{x,w})}{\partial^2 w_j}=h^{\prime\prime}(I)|a_j|^2wjf(x,w)=h(I)aj,    2wj2f(x,w)=h(I)aj2

代入 (24):
P0=σ2N∑μ,j∣aj(xμ)∣2[h′′(I)(yμ−f(xμ,w))+h′(I)2]P_0=\frac{\sigma^2}{N}\sum_{\mu,j}\big|a_j(\bm{x}^\mu) \big|^2 \Big[h^{\prime\prime}(I)\big(y^\mu-f(\bm{x}^\mu,\bm{w})\big)+h^\prime(I)^2\Big] P0=Nσ2μ,jaj(xμ)2[h(I)(yμf(xμ,w))+h(I)2]

这便是多层网络中加在输出层上的噪声对 PPP 的contribution.

假设5: 假设右边括号中的两项被第二项dominant.

那么 P0=σ2N∑μ,j∣aj(xμ)∣2h′(I)2P_0=\frac{\sigma^2}{N}\sum_{\mu,j}\big|a_j(\bm{x}^\mu) \big|^2 h^\prime(I)^2P0=Nσ2μ,jaj(xμ)2h(I)2. 所以说,输出层上的噪声使得神经网络更偏爱

  1. 隐藏层上小的 activated values {aj}\{a_j\}{aj},即限制了对输出有贡献的隐藏层结点的个数。
  2. 输出层上使得 h′(I)h^\prime(I)h(I) 比较小的 pre-activated value III.

实际上,前者和后者并不是那么和谐的。比如说 sigmoid 函数,minimize前者使得隐藏层activated values更小,但是minimize后者却使得NN更倾向于比较大的 III (so that sigmoid saturates)。

隐藏层噪声的贡献PhP_hPh

简单起见,我们仅考虑有一个隐藏层的NN, 多个隐藏层的NN可以相应得出。

根据以上模型我们可以写出神经网络输出关于参数的一阶导和二阶导:

∂f(x,w)∂wji=h′(I)H′(Ij)wjxi\frac{\partial f(\bm{x,w})}{\partial w_{ji}}=h^\prime(I)H^\prime(I_j)w_jx_iwjif(x,w)=h(I)H(Ij)wjxi

∂2f(x,w)∂2wji=∣xi∣2[H′(Ij)2h′′(I)wj2+h′(I)H′′(Ij)wj]\frac{\partial^2 f(\bm{x,w})}{\partial^2 w_{ji}}=|x_i|^2 \big[H^\prime(I_j)^2 h^{\prime\prime}(I)w^2_j+h^\prime(I)H^{\prime\prime}(I_j)w_j\big]2wji2f(x,w)=xi2[H(Ij)2h(I)wj2+h(I)H(Ij)wj]

将他们带入 (24) 即可得到
Ph=σ2N∑μ,j∣xμ∣2(yμ−fμ)[H′(Ij)2h′′(I)wj2+h′(I)H′′(Ij)wj]+σ2N∑μ,j∣xμ∣2h′(I)2H′(Ij)2wj2P_h=\frac{\sigma^2}{N}\sum_{\mu,j} |\bm{x}^\mu|^2(y^\mu-f_\mu) \big[H^\prime(I_j)^2h^{\prime\prime}(I)w^2_j+h^\prime(I)H^{\prime\prime}(I_j)w_j \big] \\ +\frac{\sigma^2}{N}\sum_{\mu,j}|\bm{x}^\mu|^2h^\prime(I)^2H^\prime(I_j)^2w^2_jPh=Nσ2μ,jxμ2(yμfμ)[H(Ij)2h(I)wj2+h(I)H(Ij)wj]+Nσ2μ,jxμ2h(I)2H(Ij)2wj2

可以看出, 隐藏层参数上加的噪声主要会惩罚一下三项:

  1. 输出层比较大的导数 h′(I)h^\prime(I)h(I);
  2. 输出层比较大的系数 wjw_jwj;
  3. 隐藏层比较大的导数 H′(Ij)H^\prime(I_j)H(Ij).

综合考虑输出层和隐藏层上的噪声,他们对神经网络训练结果的影响是

  • 他们减少了隐藏层节点的个数,从而防止过拟合
  • 他们鼓励激活函数始终工作在saturation states (即要么是开要么是关). 这同时会鼓励网络学习到一个smooth input-output mapping, 因为 ∣∂f(x,w)/∂x∣=h′(I)∣∂I/∂x∣|\partial f(\bm{x,w})/\partial \bm{x}|=h^\prime(I)|\partial I/\partial \bm{x}|f(x,w)/x=h(I)I/x. 从这个角度看,它与输入噪声有很类似的作用。

IV Training with Langevin noise

以上我们考虑的两种噪声分别是直接加在输入输出数据和网络参数上的。他们通过影响 loss 函数从而最终影响到训练的结果。在这一部分中,我们考虑另外一种噪声: Langevin noise. 不同于以上两种噪声,Langevin noise无关于神经网络输出和loss的计算,而是直接加在了梯度上:Δw=Δw+ξ.\Delta\bm{w}=\Delta\bm{w}+\bm{\xi}.Δw=Δw+ξ.

正是由于这种直接对梯度的影响,它与以上我们考虑的噪声有着根本性的不同,因此我们需要使用另一种工具,即statistical mechanics,来分析 Langevin noise 的影响。

有 Langevin noise时,网络的更新方式如下:
wt+1=wt−η∇E(w)+ξ2σ2η\bm{w}_{t+1}=\bm{w}_{t}-\eta \nabla E(\bm{w})+\xi\sqrt{2\sigma^2\eta}wt+1=wtηE(w)+ξ2σ2η

其中,噪声 ξ\xiξ 是高斯随机变量,均值是0,方差是1. 假设 Δt=η\Delta t=\etaΔt=η 很小且是常数, 上式可以看做下面 continuous-time Langevin equation的离散形式
dw=−∇E(w)dt+ξ2σ2dtd\bm{w}=-\nabla E(\bm{w})dt +\xi \sqrt{2\sigma^2 dt}dw=E(w)dt+ξ2σ2dt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值