为什么用高斯分布除以一层中神经元数量的平方根来初始化权重如此普遍?

人工智能 神经网络
2021-11-11 07:57:24

我在几个 jupyter 笔记本中看到人们使用以下方法初始化 NN 权重:

np.random.randn(D, M) / np.sqrt(D)

其他时候他们只是这样做:

np.random.randn(D, M)

将高斯分布除以层中神经元数量的平方根有什么好处?

谢谢

1个回答

我认为他们使用 Xavier/Glorot 的初始化方法。您可以从原始论文中阅读:

我们将偏差初始化为 0,权重Wij在每一层使用以下常用的启发式方法:

WijU[1n,1n]

在哪里U[a,a]是区间内的均匀分布(a,a)n是前一层的大小(的列数W)

有些人使用它,因为一些报告说这种初始化方法会导致更好的结果