动手学习深度学习笔记7-数值稳定性

文章讨论了深度学习网络中数值稳定性的关键问题,包括梯度消失和梯度爆炸现象,以及如何通过合理的参数初始化如Xavier初始化来应对这些问题。此外,还提到了训练与测试数据分布不一致导致的环境和分布偏移问题,以及相应的纠正策略。
摘要由CSDN通过智能技术生成

一. 数值稳定性

1. 网络表示

我们的网络可以表示为:

h ( l ) = f l ( h ( l − 1 ) )  因此  o = f L ∘ … ∘ f 1 ( x ) . \mathbf{h}^{(l)} = f_l (\mathbf{h}^{(l-1)}) \text{ 因此 } \mathbf{o} = f_L \circ \ldots \circ f_1(\mathbf{x}). h(l)=fl(h(l1)) 因此 o=fLf1(x).

如果所有隐藏变量和输入都是向量,
我们可以将 o \mathbf{o} o关于任何一组参数 W ( l ) \mathbf{W}^{(l)} W(l)的梯度写为下式:

∂ W ( l ) o = ∂ h ( L − 1 ) h ( L ) ⏟ M ( L ) = d e f ⋅ … ⋅ ∂ h ( l ) h ( l + 1 ) ⏟ M ( l + 1 ) = d e f ∂ W ( l ) h ( l ) ⏟ v ( l ) = d e f . \partial_{\mathbf{W}^{(l)}} \mathbf{o} = \underbrace{\partial_{\mathbf{h}^{(L-1)}} \mathbf{h}^{(L)}}_{ \mathbf{M}^{(L)} \stackrel{\mathrm{def}}{=}} \cdot \ldots \cdot \underbrace{\partial_{\mathbf{h}^{(l)}} \mathbf{h}^{(l+1)}}_{ \mathbf{M}^{(l+1)} \stackrel{\mathrm{def}}{=}} \underbrace{\partial_{\mathbf{W}^{(l)}} \mathbf{h}^{(l)}}_{ \mathbf{v}^{(l)} \stackrel{\mathrm{def}}{=}}. W(l)o=M(L)=def h(L1)h(L)M(l+1)=def h(l)h(l+1)v(l)=def W(l)h(l).

2. 梯度消失

0.01的N次幂,如果N足够大,结果约等于0;

当sigmoid函数的输入很大或是很小时,它的梯度都会消失。
ReLU激活函数缓解了梯度消失问题

3. 梯度爆炸

1.01的N次幂,如果N足够大,结果可能会溢出

二. 参数初始化

由于可能发生梯度消失或爆炸的问题,需要对初始化参数进行合理的设置。
方式一:默认初始化,使用正态分布
方式二:Xavier初始化
Xavier初始化从均值为零,方差
σ 2 = 2 n i n + n o u t \sigma^2 = \frac{2}{n_\mathrm{in} + n_\mathrm{out}} σ2=nin+nout2
的高斯分布中采样权重。
其他初始化方法
需要用启发式的初始化方法来确保初始梯度既不太大也不太小

三. 环境和分布偏移

现象:训练效果很好,但是实际预测效果极差。
原因:由于训练样本与实际样本的不一致。训练集和测试集并不来自同一个分布

1. 分布偏移

  1. 协变量偏移(无法适应新的领域,比如照片和卡通图片)自变量太多?
    纠正方式:对数几率回归
  2. 标签偏移(原本A特征引起的问题,变成了B特征校准?)
    纠正方式:真实风险中的恒等式进行更正
  3. 概念偏移(内容未持续更新)
    纠正方式:使用新数据更新现有网络

真实风险是从真实分布中抽取的所有数据的总体损失的预期。然而,这个数据总体通常是无法获得的。经验风险是训练数据的平均损失,用于近似真实风险。在实践中,我们进行经验风险最小化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值