除了用于回归分析的缩放功能外,是否还需要缩放目标值?


52

我正在建立回归模型。作为预处理步骤,我将特征值缩放为均值0和标准差1。是否也需要对目标值进行归一化?

Answers:


50

让我们首先分析为什么执行特征缩放。特征缩放改善了最速下降算法的收敛性,该算法不具有缩放不变性。

在随机梯度下降训练示例中,迭代迭代地告知权重更新,如下所示:

wt+1=wtγw(fw(x),y)

其中是权重,是大小,是梯度wrt权重,是损失函数,是参数化的函数,是训练示例,是响应/标签。wγwfwwxy

比较以下凸函数,分别代表适当的缩放比例和不正确的缩放比例。

功能缩放

与正确缩放的情况相比,在正确缩放的情况下,逐步进行一个权重更新大小可以更好地减少误差。下面显示的是的长度。γw(fw(x),y)γ

渐变更新

标准化输出不会影响形状,因此通常没有必要。f

我能想象到的缩放输出的唯一情况是影响,如果您的响应变量很大和/或您正在使用f32变量(这在GPU线性代数中很常见)。在这种情况下,有可能获得权重元素的浮点溢出。症状可能是Inf值,或者会折回其他极端表示形式。


但是,如果我们不缩放输入,而是应用渐变下降,以解决y = theta0 + theta1 * x1 + theta2 * x2之类的theta,如果我们要更新X1和X2的值(通过缩放它们),同时保持Y (预期的输出)相同,那么将theta1,theta2的预测结果应用于原始方程式时,会不会出错?
Prashant

14

通常,没有必要。缩放输入有助于避免这种情况,当一个或多个特征在数量上主导其他特征时,结果,即使较小的缩放变量很强,模型也几乎无法吸收它们的作用。但是,如果缩放目标,则均方误差将自动缩放。MSE> 1表示您的表现要比持续的(天真)预测差。


7

不,响应的线性变换从来没有必要。但是,它们可能有助于您对模型进行解释。例如,如果您的响应以米为单位,但通常很小,则将比例缩放到毫米可能会有所帮助。还要注意,由于相同的原因,对输入进行居中和/或缩放可能很有用。例如,当所有其他预测变量都设置为0时,您可以粗略地将系数解释为对预测变量中单位更改响应的影响。但是对于这些变量,0通常不是有效或有趣的值。将输入居中可让您将系数解释为其他预测变量取平均值时每单位更改的影响。

如果响应在原始尺度上的预测变量不是线性的,则其他转换(即对数或平方根)可能会有所帮助。在这种情况下,您可以阅读有关广义线性模型的信息,以了解它们是否适合您。


1

确实不好的方式影响梯度下降。检查梯度下降的公式:

xn+1=xnγΔF(xn)

可以说是比大1000倍的特征x2x1

对于我们有。达到(0,0)的最佳方式是全局最优,就是跨对角线移动,但是如果其中一个要素在比例方面占主导,则不会发生。F(x)=x2ΔF(x)=2x

举例说明:如果您进行变换,则假定两个坐标的学习率均为并计算梯度,则功能形式相同,但必须将第二个坐标的学习率调整为第一个坐标的学习率的1/1000。如果不协调,则两个将占主导地位,向量将指向该方向。z=(x1,1000x1)γ

zn+1=znγΔF(z1,z2).
Δ

结果,它会使增量偏向于仅指向该方向,从而使收敛变慢。


0

是的,您确实需要缩放目标变量。我将引用此引用

反过来,具有较大值分布的目标变量可能会导致较大的误差梯度值,从而导致权重值急剧变化,从而使学习过程不稳定。

在参考文献中,还有一个关于代码的演示,其中模型误差在训练过程中由于非常大的误差而爆炸,进而为权重更新计算的误差梯度也爆炸了。简而言之,如果您不缩放数据并且具有非常大的值,请确保使用非常小的学习率值。@drSpacy也提到了这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.