1 背景
He初始化是何凯明等提出的一种鲁棒的神经网络参数(W)初始化方法,可以保证信息在前向传播和反向传播过程中能够有效流动,使不同层的输入信号的方差大致相等。
He初始化对应的是非线性激活函数(Relu 和 Prelu)。
2 方法
任意层的权重 ,按照均值为 0,且方差为 的高斯分布进行初始化,可以保证每一层的输入方差尺度一致。
def initialize_parameters_he(layers_dims):
np.random.seed(3)
parameters = {}
L = len(layers_dims) # 网络层数
for l in range(1, L):
parameters['W'+str(l)] = np.random.randn(layers_dims[l],layers_dims[l-1])*np.sqrt(2./layers_dims[l-1])
parameters['b'+str(l)] = np.zeros((layers_dims[l],1))
return parameters
parameters = initialize_parameters_he([2, 4, 1])
print("W1 = " + str(parameters[&