本文对CS231中的Training Neural Networks的权重更新部分进行记录
权重的初始化在深度神经网络中起着比较大的重要,算是一个trick,但在实际应用上确是个大杀器。
1. 如果一开始把网络中的权重初始化为0,会发生什么?
因为权重初始为0, 由于网络中的神经元的更新机制完全相同,由于网络的对称性,会产生各个layer中产生相同的梯度更新,导致所有的权重最后值相同,收敛会出现问题。
所以在初始化参数的时候,一个重要的设置原则就是破坏不同单元的对称性质。
2. 一个简单的方法,初始化一个比较小的值
高斯初始化,给权重较小的值。这种更新方式在小网络中很常见,然而当网络deep的时候,会出现梯度弥散的情况
从图上可以发现,第一层的output分布正常,之后的layer中逐渐趋于0。这很好理解(0.9^30 = 0.04), 在