Answers:
如果像MLP [多层感知器]中那样线性组合输入变量,那么至少从理论上讲,几乎没有必要对输入进行标准化。原因是通过更改相应的权重和偏差可以有效地撤消输入矢量的任何重新缩放,从而使您获得与以前完全相同的输出。但是,出于各种实际原因,标准化输入可以使训练更快并减少陷入局部最优的机会。同样,使用标准输入可以更方便地完成权重衰减和贝叶斯估计。
NN的某些输入可能没有“自然定义”的值范围。例如,平均值可能很慢,但会随着时间的推移而不断增加(例如,数据库中的许多记录)。
在这种情况下,将此原始值馈送到您的网络中将无法很好地工作。您将根据范围的较低部分教您的网络,而实际输入将来自该范围的较高部分(并且很可能超出了该网络已学会使用的范围)。
您应该将该值标准化。例如,您可以告诉网络自上次输入以来值已更改了多少。通常可以在特定范围内高概率地定义此增量,这使其成为网络的良好输入。
从外部看神经网络,它只是一个带有一些参数并产生结果的函数。与所有功能一样,它具有一个域(即一组法律论点)。您必须标准化要传递给神经网络的值,以确保它在域中。与所有函数一样,如果参数不在域中,则不能保证结果是适当的。
神经网络对域外部参数的确切行为取决于神经网络的实现。但是总的来说,如果参数不在域中,则结果将无用。
在将输入特征馈送到神经网络之前,我们必须对其进行规范化的原因有两个:
原因1:如果a Feature
中的a 的Dataset
大小比其他a 大,则此大比例的功能将占主导地位,其结果是,神经网络的预测将不准确。
示例:对于雇员数据,如果我们考虑年龄和薪水,年龄将是两位数,而薪水可以是7或8位(100万,等等)。在这种情况下,薪水将主导神经网络的预测。但是,如果我们对这些特征进行归一化,则两个特征的值都将位于(0到1)的范围内。
原因2:神经网络的正向传播涉及具有输入特征的权重的点积。因此,如果值很高(对于图像和非图像数据),则输出的计算会占用大量的计算时间以及内存。反向传播期间也是如此。因此,如果输入未标准化,则模型收敛缓慢。
示例:如果我们执行图像分类,则图像的大小将非常庞大,因为每个像素的值范围从0到255。在这种情况下,规范化非常重要。
下面提到的是规范化非常重要的情况:
我相信答案取决于情况。
考虑将NN(神经网络)作为运算符F,使得F(input)= output。如果此关系是线性的,因此F(A * input)= A * output,那么您可以选择不对输入/输出进行原始形式的标准化处理,或者对两者进行标准化处理以消除A。显然,这种线性假设是在分类任务或几乎所有输出概率的任务中违反的任务,其中F(A *输入)= 1 *输出
在实践中,归一化允许不可拟合的网络可拟合,这对实验人员/程序员至关重要。然而,归一化的精确影响将不仅取决于网络体系结构/算法,而且取决于输入和输出的统计先验。
而且,NN通常被用来以黑盒的方式解决非常棘手的问题,这意味着潜在的问题可能具有非常差的统计表述,从而难以评估标准化的影响,从而导致技术优势(变得可适应)主导其对统计的影响。
从统计意义上讲,归一化删除了被认为在预测输出时无因果的变化,以防止NN将其作为预测变量学习(NN无法看到此变化,因此无法使用它)。
之所以需要进行规范化是因为,如果您查看自适应步骤如何在函数域中的某个位置进行,并且只是将问题简单地传递到等效步骤,该步骤就可以在某个方向上通过某个较大的值进行平移。域,那么您将获得不同的结果。归结为使线性片段适应数据点的问题。工件不转动应移动多少,并且应针对该训练点转动多少?在域的不同部分更改适应程序毫无意义!因此需要归一化以减少训练结果的差异。我还没有写这本书,但是您可以看一下简单线性函数的数学,以及如何在两个不同地方的一个训练点对它进行训练。在某些地方,该问题可能已得到纠正,但是我对它们并不熟悉。在ALN中,问题已得到纠正,如果您写信给wwarmstrong AT shaw.ca,可以给您发送论文
根据我们数据的复杂性使用隐藏层。如果我们具有线性可分离的输入数据,那么我们就不需要使用隐蔽层,例如“或”门,但是如果我们具有不可线性分离的数据,那么我们就需要使用隐蔽层,例如ExOR逻辑门。在任何层上获取的节点数取决于我们输出的交叉验证程度。