1. 概述
在深度学习中,可以在输入、权重和输出中注入噪声,已达到不同的目的。
- 输入噪声注入:将噪声作用于输入的数据集,是一种数据增强的方法。
- 权重噪声注入:将噪声作用于权重,相当于在非权重噪声注入的代价函数上加入正则项,其作用为防止过拟合,且缩小扰动对模型预测结果的影响。目前权重噪声注入主要用于RNN。
- 输出噪声注入:大多数数据集的 y y y 标签都有一定的错误,对标签上的噪声进行显式建模能够更好的最大化 log p ( y ∣ x ) \log p(y \mid \boldsymbol{x}) logp(y∣x)
2. 权重噪声注入
下证:权重噪声注入的带价函数等于非权重注入的代价函数加上一个参数正则项。
假设有一个无噪声注入的深度前馈网络:
P
mokd
(
y
∣
x
⃗
;
θ
⃗
)
=
N
(
y
;
f
(
x
⃗
;
θ
⃗
)
,
I
)
P_{\text {mokd }}(y \mid \vec{x} ; \vec{\theta})=N(y ; f(\vec{x} ; \vec{\theta}), I)
Pmokd (y∣x;θ)=N(y;f(x;θ),I)则其交叉熵代价函数为
J
(
θ
⃗
)
=
−
E
x
→
,
y
∼
p
^
data
log
p
model
(
y
∣
x
→
;
θ
⃗
)
=
1
2
E
x
→
,
y
∼
p
^
deta
∥
y
−
f
(
x
→
;
θ
⃗
)
∥
2
J(\vec{\theta})=-\mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}} \log p_{\text {model }}(y \mid \overrightarrow{\mathbf{x}} ; \vec{\theta})=\frac{1}{2} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {deta }}}\|y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta})\|^{2}
J(θ)=−Ex,y∼p^data logpmodel (y∣x;θ)=21Ex,y∼p^deta ∥y−f(x;θ)∥2
其中
x
→
,
y
∼
p
^
data
\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}
x,y∼p^data 表示
x
→
,
y
\overrightarrow{\mathbf{x}}, y
x,y 服从
p
^
data
\hat{p}_{\text {data }}
p^data 分布,
E
x
→
,
y
∼
p
^
data
\mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}
Ex,y∼p^data 表求关于
p
^
data
\hat{p}_{\text {data }}
p^data 求期望。
向每个权重添加一个随机扰动
ϵ
W
∼
N
(
ϵ
;
0
→
,
η
I
)
\epsilon \mathbf{W} \sim \mathcal{N}(\epsilon ; \overrightarrow{\mathbf{0}}, \eta \mathbf{I})
ϵW∼N(ϵ;0,ηI),服从均值为0,方差为
η
\eta
η 的正态分布。增加扰动后的模型为
p
~
model
(
y
∣
x
→
;
θ
⃗
,
ϵ
W
)
=
N
(
y
;
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
,
I
)
\tilde{p}_{\text {model }}(y \mid \overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon \mathbf{W})=\mathcal{N}(y ; \tilde{f}(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon \mathbf{W}), \mathbf{I})
p~model (y∣x;θ,ϵW)=N(y;f~(x;θ,ϵW),I)
假设有
E
p
(
ϵ
W
)
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
=
f
(
x
→
;
θ
⃗
)
\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)} \tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)=f(\overrightarrow{\mathbf{x}} ; \vec{\theta})
Ep(ϵW)f~(x;θ,ϵW)=f(x;θ),即模型加入扰动后的期望等同于原来的模型。则添加扰动后的代价函数为
J
~
(
θ
⃗
)
=
1
2
E
p
(
x
→
,
y
,
ϵ
W
)
∥
y
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
∥
2
=
E
p
(
ϵ
w
)
[
1
2
E
x
→
,
y
∼
p
^
data
∥
y
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
∥
2
]
=
1
2
E
p
(
ϵ
W
)
E
x
→
,
y
∼
p
^
data
[
(
y
−
f
(
x
→
;
θ
⃗
)
)
2
+
(
f
(
x
→
;
θ
⃗
)
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
)
2
+
2
(
y
−
f
(
x
→
;
θ
⃗
)
)
(
f
(
x
→
;
θ
⃗
)
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
)
]
=
1
2
E
p
(
ϵ
W
)
E
x
→
,
y
∼
p
^
data
(
y
−
f
(
x
→
;
θ
⃗
)
)
2
+
1
2
E
p
(
ϵ
w
)
E
x
→
,
y
∼
p
^
data
(
f
(
x
→
;
θ
⃗
)
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
)
2
+
E
x
→
,
y
∼
p
^
data
(
y
−
f
(
x
→
;
θ
⃗
)
)
E
p
(
ϵ
W
)
(
f
(
x
→
;
θ
⃗
)
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
)
\begin{aligned} \tilde{J}(\vec{\theta})&=\frac{1}{2} \mathbb{E}_{p\left(\overrightarrow{\mathbf{x}}, y, \epsilon_{\mathbf{W}}\right)}\left\|y-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right\|^{2}\\ &=\mathbb{E}_{p\left(\epsilon_{\mathbf{w}}\right)}\left[\frac{1}{2} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}\left\|y-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right\|^{2}\right]\\ &=\frac{1}{2} \mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}\left[(y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta}))^{2}+\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right)^{2}+\right. \left.2(y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta}))\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right)\right]\\ &= \frac{1}{2} \mathbb{E}_{p(\epsilon \mathrm{W})} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}(y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta}))^{2}+\frac{1}{2} \mathbb{E}_{p(\epsilon \mathbf{w})} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right)^{2} \\ &\quad+\mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}(y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta})) \mathbb{E}_{p(\epsilon \mathbf{W})}\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right)\\ \end{aligned}
J~(θ)=21Ep(x,y,ϵW)∥∥∥y−f~(x;θ,ϵW)∥∥∥2=Ep(ϵw)[21Ex,y∼p^data ∥∥∥y−f~(x;θ,ϵW)∥∥∥2]=21Ep(ϵW)Ex,y∼p^data [(y−f(x;θ))2+(f(x;θ)−f~(x;θ,ϵW))2+2(y−f(x;θ))(f(x;θ)−f~(x;θ,ϵW))]=21Ep(ϵW)Ex,y∼p^data (y−f(x;θ))2+21Ep(ϵw)Ex,y∼p^data (f(x;θ)−f~(x;θ,ϵW))2+Ex,y∼p^data (y−f(x;θ))Ep(ϵW)(f(x;θ)−f~(x;θ,ϵW))由于函数式不含有扰动项,可以忽略计算关于扰动的期望
1
2
E
p
(
ϵ
W
)
E
x
→
,
y
∼
p
^
data
(
y
−
f
(
x
→
;
θ
⃗
)
)
2
=
1
2
E
x
→
,
y
∼
p
^
data
(
y
−
f
(
x
→
;
θ
⃗
)
)
2
=
J
(
θ
⃗
)
\frac{1}{2} \mathbb{E}_{p\left(\epsilon_{\mathbb{W}}\right)} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}(y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta}))^{2}=\frac{1}{2} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}(y-f(\overrightarrow{\mathbf{x}} ; \vec{\theta}))^{2}=J(\vec{\theta})
21Ep(ϵW)Ex,y∼p^data (y−f(x;θ))2=21Ex,y∼p^data (y−f(x;θ))2=J(θ) 由于添加扰动前后的期望值不变
E
p
(
ϵ
W
)
(
f
(
x
→
;
θ
⃗
)
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
)
=
f
(
x
→
;
θ
⃗
)
−
E
p
(
ϵ
W
)
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
=
0
\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)}\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right)=f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)} \tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)=0
Ep(ϵW)(f(x;θ)−f~(x;θ,ϵW))=f(x;θ)−Ep(ϵW)f~(x;θ,ϵW)=0
于是有
J
~
(
θ
⃗
)
=
J
(
θ
⃗
)
+
1
2
E
p
(
ϵ
W
)
E
x
→
,
y
∼
p
^
duta
(
f
(
x
→
;
θ
⃗
)
−
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
)
2
+
0
\tilde{J}(\vec{\theta})=J(\vec{\theta})+\frac{1}{2} \mathbb{E}_{p(\epsilon \mathbf{W})} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {duta }}}\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})-\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)\right)^{2}+0
J~(θ)=J(θ)+21Ep(ϵW)Ex,y∼p^duta (f(x;θ)−f~(x;θ,ϵW))2+0将
f
~
\tilde{f}
f~ 在
w
\mathbf{w}
w 处进行一阶泰勒展开,有
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
=
f
(
x
→
;
θ
⃗
)
+
∇
W
f
(
x
→
;
θ
⃗
)
T
ϵ
W
\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)=f(\overrightarrow{\mathbf{x}} ; \vec{\theta})+\nabla_{\mathbf{W}} f(\overrightarrow{\mathbf{x}} ; \vec{\theta})^{T} \epsilon_{\mathbf{W}}
f~(x;θ,ϵW)=f(x;θ)+∇Wf(x;θ)TϵW则
E
p
(
ϵ
W
)
[
(
f
~
(
x
→
;
θ
⃗
,
ϵ
W
)
−
f
(
x
→
;
θ
⃗
)
)
2
]
=
E
p
(
ϵ
W
)
(
f
(
x
→
;
θ
⃗
)
+
∇
W
f
(
x
→
;
θ
⃗
)
T
ϵ
W
−
f
(
x
→
;
θ
⃗
)
)
2
=
E
p
(
ϵ
W
)
(
∇
W
f
(
x
→
;
θ
⃗
)
T
ϵ
W
)
2
=
∥
∇
W
f
(
x
→
;
θ
⃗
)
∥
2
⋅
[
E
p
(
ϵ
W
)
(
ϵ
W
)
2
−
(
E
p
(
ϵ
W
)
(
ϵ
W
)
⏞
噪声均值为0
)
2
]
⏟
噪声方差
=
∥
∇
W
f
(
x
→
;
θ
⃗
)
∥
2
η
\begin{aligned} \mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)}\left[\left(\tilde{f}\left(\overrightarrow{\mathbf{x}} ; \vec{\theta}, \epsilon_{\mathbf{W}}\right)-f(\overrightarrow{\mathbf{x}} ; \vec{\theta})\right)^{2}\right]&=\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)}\left(f(\overrightarrow{\mathbf{x}} ; \vec{\theta})+\nabla_{\mathbf{W}} f(\overrightarrow{\mathbf{x}} ; \vec{\theta})^{T} \epsilon_{\mathbf{W}}-f(\overrightarrow{\mathbf{x}} ; \vec{\theta})\right)^{2}\\ &=\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)}\left(\nabla_{\mathbf{W}} f(\overrightarrow{\mathbf{x}} ; \vec{\theta})^{T} \epsilon_{\mathbf{W}}\right)^{2}\\ &=\left\| \nabla_{\mathbf{W}} f(\overrightarrow{\mathbf{x}} ; \vec{\theta})\right\|^{2}\cdot\underbrace{\left[\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)}(\epsilon_{\mathbf{W}})^2-(\overbrace{\mathbb{E}_{p\left(\epsilon_{\mathbf{W}}\right)}(\epsilon_{\mathbf{W}})}^{\text{噪声均值为0}})^2\right]}_{\text{噪声方差}}\\ &=\left\|\nabla_{\mathbf{W}} f(\overrightarrow{\mathbf{x}} ; \vec{\theta})\right\|^{2} \eta \end{aligned}
Ep(ϵW)[(f~(x;θ,ϵW)−f(x;θ))2]=Ep(ϵW)(f(x;θ)+∇Wf(x;θ)TϵW−f(x;θ))2=Ep(ϵW)(∇Wf(x;θ)TϵW)2=∥∥∥∇Wf(x;θ)∥∥∥2⋅噪声方差
⎣⎡Ep(ϵW)(ϵW)2−(Ep(ϵW)(ϵW)
噪声均值为0)2⎦⎤=∥∥∥∇Wf(x;θ)∥∥∥2η因此
J
~
(
θ
⃗
)
=
J
(
θ
⃗
)
+
η
2
E
x
→
,
y
∼
p
^
data
∥
∇
W
f
(
x
→
;
θ
⃗
)
∥
2
\tilde{J}(\vec{\theta})=J(\vec{\theta})+\frac{\eta}{2} \mathbb{E}_{\overrightarrow{\mathbf{x}}, y \sim \hat{p}_{\text {data }}}\left\|\nabla_{\mathbf{W}} f(\overrightarrow{\mathbf{x}} ; \vec{\theta})\right\|^{2}
J~(θ)=J(θ)+2ηEx,y∼p^data ∥∥∥∇Wf(x;θ)∥∥∥2其中
η
\eta
η 是噪声的方差
这说明,权重噪声注入的带价函数等于非权重注入的带价函数加上一个参数正则化项:
- 噪声方差 η \eta η 越大,正则化项越大
- 正则化项为梯度的二范数,因此该正则化项将会鼓励参数进入梯度更小的区域,即代价函数平坦的区域,这也意味着最终的得到的网络对小的扰动不敏感
- 权重噪声注入对简单的线性回归并不适用,由于简单线性回归模型 f ( x → ; θ ⃗ ) = w → T x → + b f(\overrightarrow{\mathbf{x}} ; \vec{\theta})=\overrightarrow{\mathbf{w}}^{T} \overrightarrow{\mathbf{x}}+b f(x;θ)=wTx+b 关于权重的倒数为 x → \overrightarrow{\mathbf{x}} x,只与数据集有关为常量,因此正则项在梯度下降过程中不起作用。
参考文献
Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.
https://www.bookstack.cn/read/huaxiaozhuan-ai/spilt.4.d07cc9a8a1364f3d.md