三种参数初始化方法:
zero initialization:将输入参数初始化为0
random initialization:随机初始化输入参数,权重w初始化的值较大
He initialization:在一定范围内随即初始化权重w值
zero initialization实现代码:
for l in range(1, L):
parameters['W' + str(l)] = np.zeros((layers_dims[l], layers_dims[l-1]))
parameters['b' + str(l)] = np.zeros((layers_dims[l], 1))
训练结果是cost函数不下降,一层中的每个神经元学习的内容都一样,导致无法打破对称性。为了打破对称性,w的值需要随机初始化,b的值则可以初始化为0.
random initialization实现代码:
for l in range(1, L):
parameters['W' + str(l)] = np.random.randn(layers_dims[l], layers_dims[l-1]) * 10
parameters['b' + str(l)] = np.zeros((layers_dims[l], 1))
权重w随机初始化为较大的值,b初始化为0,这