零初始化(Zero Initialization):将所有的权重和偏置初始化为零
零初始化可能会导致对称问题,所有参数不仅初始化的值是一样的,而且训练过程中的变化也是一样的,一层中的神经元状态会始终保持一致,没有办法学习和表达更复杂的特征。
随机初始化(Random Initialization):将权重和偏置随机地初始化为均值为0,方差为1的正态分布的随机值
-
因为参数都是独立同分布的采样,那么线性输出y的方差就会叠加。这意味着输入经过神经元后,输出的离散程度被提高了
-
当我们不使用任何激活函数的时候,放大的y值就会被累积在反向传播的过程里,这样就会造成梯度爆炸
-
如果使用双曲正切函数作为激活函数,那么又可能因为y的值过大或过小而得到一个非常小的梯度,这样反而会造成梯度消失的问题
Xavier初始化(Xavier Initialization):也称为Glorot初始化,它是一种针对全连接层的参数初始化方法
为了让输出y的方差落在一个可控的范围内,例如让他等于1,这样求出参数w分布的方差就等于1/n,假设有n个输入。如果我们不仅考虑输入的维度,也考虑下一层神经元的数量,那么平均后的方差就等于
2 / ( Nin+Nout ) ,即2除以输入和输出神经元的总和