HOW TO:深度神经网络权重初始化


10

给定艰巨的学习任务(例如高维,固有的数据复杂性),深度神经网络变得难以训练。为了缓解许多问题,可以采取以下措施:

  1. 规范化&&精选质量数据
  2. 选择其他训练算法(例如RMSprop而不是Gradient Descent)
  3. 选择较陡峭的渐变成本函数(例如,交叉熵而不是MSE)
  4. 使用不同的网络结构(例如,卷积层而不是前馈层)

我听说有一些聪明的方法可以初始化更好的权重。例如,您可以选择更好的幅度:Glorot和Bengio(2010)

  • 对于S形单位:对具有的Uniform(-r,r)进行采样r=6Nin+Nout
  • 或双曲正切单元:对的Uniform(-r,r)进行采样r=46Nin+Nout

有什么一致的方法可以更好地初始化权重?

Answers:


7

据我所知,您给出的两个公式几乎都是标准初始化。我之前进行过文献综述,如果有兴趣,请在下面将其复制。


[1]解决了这个问题:

首先,权重不应设置为零,以免反向传播时破坏对称性:

偏移通常可以初始化为零,但是权重需要仔细初始化以打破同一层隐藏单元之间的对称性。因为不同的输出单元接收不同的梯度信号,所以这种对称破坏问题与输出权重(进入输出单元)无关,因此也可以将其设置为零。

一些初始化策略:

  • [2]和[3]建议按扇入平方根的倒数进行缩放
  • Glorot和Bengio(2010)以及《深度学习教程》结合了扇入和扇出:
    • 对于S型单位:对具有的Uniform(-r,r)进行采样(fan-in是单位的输入)。r=6fan-in+fan-out
    • 对于双曲正切单元:采样的Uniform(-r,r)(fan-in是单元的输入数量)。r=46fan-in+fan-out
  • 对于RBM,零均值高斯和0.1或0.01左右的小标准偏差就可以很好地进行初始化(Hinton,2010年)。
  • 正交随机矩阵初始化,即W = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)再使用u为您的初始化矩阵。

此外,在某些情况下,无监督的预培训可能会有所帮助:

一个重要的选择是,是否应该使用无监督的预训练(以及要使用哪种无监督的特征学习算法)来初始化参数。在大多数情况下,我们发现无人值守的预训练可以提供帮助,而很少受到伤害,但这当然意味着需要更多的训练时间和额外的超参数。

一些ANN库也有一些有趣的列表,例如Lasagne

Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b])   Glorot weight initialization.
GlorotNormal([gain, c01b])  Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b])   He weight initialization.
HeNormal([gain, c01b])  He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain])  Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.

[1] Bengio,Yoshua。“ 基于梯度的深度架构培训的实用建议。 ”神经网络:交易技巧。Springer Berlin Heidelberg,2012年。437-478。

[2] LeCun,Y.,Bottou,L.,Orr,GB和Muller,K.(1998a)。高效的反向传播。在神经网络中,交易技巧

[3] Glorot,Xavier和Yoshua Bengio。“ 了解训练深度前馈神经网络的难度。” 国际人工智能和统计会议。2010。


2
您似乎缺少的是批处理规范化。在此处描述:arxiv.org/abs/1502.03167 可能有用。
Joonatan Samuel

何开明,张向宇,任少卿,孙健发表了一篇较新的文章,其中包括Glorot和Bengio的Xavier重量初始化的另一种形式:“深入整流器:在ImageNet分类上超越人类水平的性能”
mjul
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.