Neural network 随机启动神经网络节点是否有好处?

Neural network 随机启动神经网络节点是否有好处?,neural-network,Neural Network,让所有节点值都从0开始,还是让它们在0和1之间随机?例如,从0开始会更加一致,但随机地,它们可以更快地接近正确的值。许多计算结构对初始条件非常敏感。改变初始条件是探索解空间以找到更多全局最大值的一种好方法。您应该随机设置它们,每次运行都不同。如果您将所有参数都设置为零,那么由于神经网络由线性部分组成,所有这些部分也将输出零,最终的神经网络输出将为零。梯度也将为零,网络将无法学习 听起来不太好 这就是我们随机初始化神经网络参数的原因,这是一种“打破对称性”的方法。它通常在[-1,1]范围内初始化,

让所有节点值都从
0
开始,还是让它们在0和1之间随机?例如,从0开始会更加一致,但随机地,它们可以更快地接近正确的值。

许多计算结构对初始条件非常敏感。改变初始条件是探索解空间以找到更多全局最大值的一种好方法。您应该随机设置它们,每次运行都不同。

如果您将所有参数都设置为零,那么由于神经网络由线性部分组成,所有这些部分也将输出零,最终的神经网络输出将为零。梯度也将为零,网络将无法学习

听起来不太好


这就是我们随机初始化神经网络参数的原因,这是一种“打破对称性”的方法。它通常在[-1,1]范围内初始化,但这不是唯一的方法。例如,Glorot的方法将这个范围扩展为神经元的1/(输入+输出),还有其他方法,但肯定都使用随机初始化。

因为其他提到的网络初始化非常重要,可以决定网络是否收敛,收敛速度等

文献中有相当多的初始化方案,而且每隔一段时间就会出现更多的初始化方案。 您可以在下面的中看到对这些方案的详细讨论以及我在下面讨论的内容


当讨论随机初始化时,你需要考虑a)你将从B中抽取什么样的分布),你将从中得到什么样的比例或范围?

关于分布,通常使用均匀分布或高斯分布,两者之间的选择似乎没有太大影响

然而,随机权重的尺度或范围对结果有很大影响

最终,这取决于您的架构选择,但选择范围的两种常见策略是:

其中,
m
是层的输入数量,
n
是输出数量


注意这不一定是您可以选择的“完美”初始化,您应该尝试一些,并找到适合您需要的。

还要注意渐变消失。例如,逻辑函数的导数是
d_sigma(x)=s(x)*(1-s(x))
,它在x的高值和低值都消失。因此,梯度方向上的反向传播将不起作用,因为梯度已消失。这是一个关于初始条件有多重要的例子。我在某个地方读到,它们应该是介于
-1和
之间的随机数,平均值为0(近似值)。这是正确的,还是有更好的方法?