一、两种初始化方法
1、在逻辑回归中,一般就直接初始化为0
# 全部初始化为0
import numpy as np
def initialize_parameters_zeros(layers_dims):
parameters = {}
L = len(layers_dims)
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))
return parameters
2、在较小范围内随机初始化
# 在较小的范围内随机初始化
def initialize_parameters_he(layers_dims):
np.random.seed(3)
parameters = {}
L = len(layers_dims) - 1
for l in range(1, L + 1):
parameters['W' + str(l)] = np.random.randn(layers_dims[l],layers_dims[l-1])/np.sqrt(layers_dims[l-1])(这里网上有好几种写法)
parameters['b' + str(l)] = np.zeros((layers_dims[l], 1))
return parameters
二、为什么要随机初始化
假如hidden layer有两个由输入值产生的神经元,