摘自《云梯社区》
一、全0初始化,导致所有梯度一样,无法发挥神经网络优势。
二、随机初始化权重,sigmoid或者tanh作为激活函数的情况下,可能导致梯度消失或梯度爆炸。
改进:
一、使用ReLU或Leaky ReLU作为激活函数,可以避免梯度消失,或梯度爆炸,因为梯度相对固定。
二、根据激活函数启发式初始化权重
不使用标准正态分布,而是k/n为方差的正态分布初始化W,即,随机生成权重后乘以。k取决于激活函数。
2.1 ReLU:随机生成的权重乘以因子标准差,其中k=2,n为前一层节点数目
2.2 tanh:同上,除了k=1。
2.3 另一个常用的方法:k=2,n取本层节点与当前层节点之和。
三、梯度修正,该方法可以处理梯度爆炸,当梯度的选择函数(梯度的2范数)大于某个阈值时,梯度归一化,除以2范数乘以阈值。