深度神经网络初始化问题汇总,更新中。。。、

摘自《云梯社区》

一、全0初始化,导致所有梯度一样,无法发挥神经网络优势。

二、随机初始化权重,sigmoid或者tanh作为激活函数的情况下,可能导致梯度消失或梯度爆炸。

改进:

一、使用ReLU或Leaky ReLU作为激活函数,可以避免梯度消失,或梯度爆炸,因为梯度相对固定。

二、根据激活函数启发式初始化权重

不使用标准正态分布,而是k/n为方差的正态分布初始化W,即,随机生成权重后乘以\sqrt{k/n}。k取决于激活函数。

2.1 ReLU:随机生成的权重乘以因子标准差,其中k=2,n为前一层节点数目

2.2 tanh:同上,除了k=1。

2.3 另一个常用的方法:k=2,n取本层节点与当前层节点之和。

三、梯度修正,该方法可以处理梯度爆炸,当梯度的选择函数(梯度的2范数)大于某个阈值时,梯度归一化,除以2范数乘以阈值。

猜你喜欢

转载自blog.csdn.net/weareu/article/details/82290533