为什么随机权重初始化比在ANN中使用0作为权重要好?

在训练好的神经网络中,权重分布通常会接近于零。因此,我认为将所有权重初始化为零是合理的。然而,像-1到1之间的随机分配和Nguyen-Widrow方法等方法的表现都优于零初始化。为什么这些随机方法比使用零更好呢?


回答:

激活与学习:

除了cr0ss所说的内容外,在一个普通的多层感知器(MLP)中,层n+1的激活是层n的输出与层n和n+1之间权重的点积…所以基本上你会得到层n中神经元i的激活a的这个方程:

其中w是神经元j(父层n-1)与当前神经元i(当前层n)之间连接的权重,o是神经元j(父层)的输出,b是当前层中当前神经元i的偏置。

很容易看出,如果用零初始化权重,实际上会“停用”权重,因为父层输出的权重乘积将等于零,因此(在最初的学习步骤中)你的输入数据将不会被识别,数据将被完全忽略。所以在最初的几个周期中,学习将依赖于偏置提供的数据。

这显然会使网络的学习变得更加困难,并大大增加所需的学习周期数。

初始化应针对你的问题进行优化:

用-1 <= w <= 1的随机浮点数分布来初始化权重是最典型的初始化方法,因为总体来说(如果你没有分析你正在处理的问题/领域),这可以保证一些权重从一开始就相对较好。此外,使用固定初始化和随机初始化可以使其他神经元更快地相互适应,从而确保更好的学习。

然而,-1 <= w <= 1的初始化并不适合所有问题。例如:生物神经网络没有负输出,所以当你试图模仿生物网络时,权重应该是正的。此外,例如在图像处理中,大多数神经元要么有相当高的输出,要么几乎不输出。考虑到这一点,通常将权重初始化在0.2 <= w <= 1之间是一个好主意,有时甚至0.5 <= w <= 2也显示出良好的结果(例如在暗图像中)。

因此,正确学习一个问题所需的周期数不仅取决于层、它们的连接性、传输函数和学习规则等,还取决于你的权重初始化。你应该尝试几种配置。在大多数情况下,你可以找出哪些解决方案是合适的(例如,对于处理暗图像,使用更高、正的权重)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注