随机初始化参数的重要性
参数的随机初始化很重要,而不是直接初始化为0
对于logistic回归,可以将权重初始化为0。
但如果将神经网络的各参数全部初始化为0,再使用梯度下降算法,那会完全无效(把偏置b初始化为0是可行的(当然也可以随机初始化),但是将权重w初始化为0就会出问题)
出问题的原因是因为,当权重初始化为0时,不同的计算会得到相同的结果,吴老师将其称为需要破坏的对称性问题。
至于为什么我们把w在随机生成后还要乘一个0.01
。
这是因为我们通常会把w的初始值设定为很小很小的非零随机数。
因为如果用到tanh和sigmoid激活函数,当权重过大时,计算激活函数的时候会使得z过大或过小(z^ [1]= w^ [1]+b^ [1]、a^ [1]= g^ [1](z^ [1 ]) )。在这种情况下,你最后可能落在tanh函数或sigmoid函数的平缓部分(接近饱和),梯度的斜率非常小,也就意味着梯度下降会非常慢,学习过程也会非常慢。
另外,当要训练一个深度网络的时候,要选用0.01之外的常数。
但不管怎样,初始化的参数一般都很小