1.为什么不能全部设为0

参数初始化

参数初始化

参数初始化

https://zhuanlan.zhihu.com/p/27190255

简单来讲就是如果全为零那么每次更新的时候权重都一样

这里的deltaw和之前正想传播学习的a值什么的相关:因为正想传播所有的那个都一样,从而deltaw一样

参数初始化

参考:https://zhuanlan.zhihu.com/p/24801814 

本来我们希望不同的结点学习到不同的参数,但是由于参数相同以及输出值都一样,不同的结点根本无法学到不同的特征!这样就失去了网络学习特征的意义了。

参数初始化

参考链接:https://zhuanlan.zhihu.com/p/38315135

 

简单的说:

随机初始化的缺点是因为网络输出数据分布的方差会随着神经元个数改变(而且也和上一层输出神经元的方差相关)

从而(?)这个梯度在每一层是不一样的,要么就是导致**失灵/要么就是**饱和,导致剃度接近0,就是导致很难更新了

随机初始化就是搞一些很小的值进行初始化,实验表明大了就容易饱和,小的就**不动

看一下第一个分布:sigmoid+标准差=0.01的随机初始化

可以看到**之在0.5附近啊,很容易梯度就是0了,这就没法学习了

参数初始化

 sigmoid+标准差=1的随机初始化

你看看**函数都饱和成什么样子了!在-1,1附近还是梯度很小啊,没法学习

参数初始化

现在Tanh+随机初始化看看发生了什么

同时伴随着Z值消失**消失 

 

参数初始化

增大标准差会怎么样

从最后一个隐藏层反向传播至第一个隐藏层的过程中,梯度越来越大?另外,类似sigmoid**函数,Z值区间太宽了,导致**塌缩到大多数值要么是零要么是一的情形。同样,这不好 

参数初始化

看看冠军搭配0.1

参数初始化

  • 首先,梯度所有层相似(同时位于一个适宜的尺度——约为权重的1/20)
  • 其次,Z值位于一个适宜的区间(-1, 1),在所有层上相似(虽然可以观察到一些收缩)
  • 最后,**没有塌缩到二值模式,并且在所有层上相似(同样,有一些收缩)

简单来说,这意味着我们可以在网络后面堆叠另一层,然后期望Z值**梯度分布仍然是相似的。我们肯定希望网络表现出塌缩消失爆炸

到这里我们应该看出来了,关键在权重的标准差选取上!!

 

所有有了X初始化(但X适合和tanh不适合relu)

参数初始化

参数初始化

 参数初始化

 参数初始化

 参数初始化

 参数初始化

 参数初始化

 参数初始化

所以有了H初始化

然后又有了BN

 

 

相关文章: