如果机器学习方法的预测值为 E(y | x),为什么要为 y | 使用不同的成本函数?X?

机器算法验证 回归 分布 期望值 损失函数
2022-04-10 07:44:59

说我们知道Y服从密度分布f. 众所周知,均值E(Y |X)最小化均方根误差 (RMSE)。我们通常对预测值感兴趣y鉴于我们知道x作为E(Y | X).

然后,即使理论上我们可能想要建模f,如果我们只想要一个确定性的预测,为什么还要为不同的分布假设而烦恼Y | X,也就是说,为什么还要使用不同的成本函数,比如负对数似然?

例子

  • 认为YBernoulli(p). 如果我们使用 RMSE 作为成本函数,这显然会最小化Y, 这确实是p,我们想要的值。
  • 认为YGamma(k,θ). 自从E(Y)=kθ,我们可以修复例如θ=1并预测为E(Y)=k. 同样,让我们​​使用 RMSE 作为成本函数,这将获得预期值。那么,为什么要使用伽马分布的负对数似然?
3个回答

使均方根误差最小化的均值往往不是实际情况

众所周知,均值 E(Y |X) 使均方根误差 (RMSE) 最小化。

你是对的,理论平均值E(Y|X)最小化预测的均方根误差(与分布无关)。因此,如果最小化预测的均方误差是您的目标并且您知道理论均值,那么您确实不需要关心分布(除了分布是否存在均值和方差)。

然而,这个理论平均值通常是未知的,我们使用一个估计值来代替。或者我们想要最小化除均方误差之外的其他东西。在这些情况下,您通常需要使用有关误差分布的假设来确定要使用的估计器(以确定哪个是最优的)。

所以一个典型的情况是

  • 从人群中收集数据
  • 根据数据计算人口分布的估计值
  • 直接使用估计(例如根据估计做出一些决定)
  • 或使用估计值进行预测(在这种情况下,由于总体随机性导致的误差高于对该总体估计值的随机性)

你所描绘的情况是通往最后一点的捷径,并假设我们知道人口。很多时候情况并非如此。(这仍然可以是一个实际的案例,例如如果我们有这么多的信息,一个大样本,这样我们就可以高精度地估计人口分布,而预测的最大误差是由于人口的随机性)

如果机器学习方法的预测值为E(y|x),为什么要为不同的成本函数烦恼y|x?

机器学习方法不提供E(y|x)它提供了一个估计E(y|x). 估计器和预测器的好坏取决于总体的基本分布(我们可以从中推断出估计器和预测器的样本分布)。

示例:假设我们希望估计拉普拉斯分布人口的位置参数(并将其用于预测)。在这种情况下,样本中位数是比样本均值更好的估计量(即,样本中位数的分布将比样本均值的分布更接近真实参数。估计的误差会更小)。

展示中位数可以优于均值

图片:展示样本中位数可以是比样本均值更好的估计量。请注意,分布更集中于真实位置参数(在此示例中为 0)。

因此,基于误差是拉普拉斯分布的假设,我们应该决定使用样本中位数作为估计器和预测器,而不是样本均值

用于拟合的成本函数和用于评估的成本函数之间的差异。

另一个潜在问题是关于成本函数的差异。

用于执行拟合的成本函数可以不同于作为目标的成本函数。

在前面的拉普拉斯分布示例中,目标可能是最小化估计/预测的预期均方误差。但是,我们发现通过最小化残差的平均绝对误差来优化这个目标的估计。

一个相关的问题是:用于拟合与调整参数选择的损失函数之间的不匹配是否合理?在那个问题中,您通过交叉验证最小化(目标)成本函数,但在答案中证明,通过与误差分布相关的成本函数执行拟合(在训练期间)仍然是好的测量值。


从聊天中引用

“我的问题与如何选择一个估计器或另一个估计器有关(即一个损失函数而不是另一个损失函数)”

估计量可以表示为数据/样本的某些成本函数的 argmin(例如,样本均值使残差平方和最小化,样本中位数使绝对残差之和最小化)。

但是,这是与用于描述估计器性能的成本函数不同的成本函数。

所以这就是我们为成本函数而烦恼的原因。这些成本函数使我们能够评估估计器的性能。我们可以计算/估计估计器 X 产生特定错误的频率,并将其与估计器 Y 产生特定错误的频率进行比较。并且由于存在许多大小的错误,我们通过一些成本函数对所有可能性进行加权和。

例如,估计器 X 和 Y 的误差分布可能是(一个简单的例子)

Error size.                  -2     -1     0      1     2     
frequency for estimator X   0.00   0.25   0.50  0.25   0.00
frequency for estimator Y   0.02   0.18   0.60  0.18   0.02

估计器 X 具有更高的平均绝对误差(误差为±1平均绝对误差为 0.5。对于估计量 Y,它是 0.44)。

然而,就预期均方误差而言,估计量 X(0.5)低于估计量 Y(预期均方误差 0.52)。

要计算这些比较,您需要能够知道/估计估计量的样本分布(就像在上面的示例中,这是针对拉普拉斯分布以及样本均值和样本中位数完成的)和一些成本函数来比较这些分布。

(在拉普拉斯分布和样本均值与样本中值的情况下,样本中值随机占优势,对于任何凸成本函数,样本中值都将优于样本均值,因此您并不总是需要知道评估成本函数的详细信息。相关问题:在所有合理损失(评估)函数下最优的估计器


用于创建图形的 R 代码

### generate data
set.seed(1)
s <- 100000
n <- 5
x <- matrix(L1pack::rlaplace(s*n,0,1),s)
medians <- apply(x,1,median)
means <- apply(x,1,mean)

### compute frequency histogram
breaks <- seq(floor(min(medians,means)),ceiling(max(medians,means)), 0.02)
hmedians <- hist(medians, breaks = breaks)
hmeans <- hist(means, breaks = breaks)

### plot results
plot(hmedians$mids, hmedians$density, type = "l",
     ylim=c(0,1.5), xlim = c(-1.4,1.4),
     xlab = "estimate value", ylab = "density / histogram",
     lty=2)

lines(hmeans$mids, hmeans$density)
lines(c(0,0),c(0,2),lty=1,col="gray")
title("samples of size 5 from Laplace distribution
comparision of sample distribution for different estimates", cex.main = 1)

legend(-1.4,1.5, c("sample median","sample mean"), lty = c(2,1), cex = 0.7)

假设我们知道 Y 服从密度为 f 的分布。

如果该陈述是正确的,您将不想尝试不同的分布假设。如果不是这样,那么您应该考虑对不同的假设进行建模,因为它会对您的结果产生重大影响。

为什么还要考虑不同的成本函数,比如负对数似然?

因为我们应该使用真正的损失函数。不幸的是,大多数人接受的培训并没有真正让他们真正通过改变损失函数来解析问题。

让我给你一个现实世界的问题。有些东西必须是这样购买的xk在哪里k是一个未知常数。如果x<k那么购买的材料百分之一百是无法使用的,必须销毁。然后你必须重新开始。

如果您购买x>k然后xk必须销毁,是一种损失。

在任一方面,每单位的损失是浪费时间c.

认为k=1000k^=999, 尽管c=$1000. 左侧一个单位将花费您999,000美元。右侧的一个单元将花费您1,000美元。

最小化二次损失意味着你应该在 50% 的时间里承受灾难性损失。期望是一场灾难。

如果您使用 RMSE 作为目标函数,则现实世界问题的解决方案可能会明显欠佳。

答案比看起来简单。尽管最简单情况下的样本均值或多变量预测变量情况下的最小二乘估计提供了长期均值的无偏估计,但这些估计可能是错误的或非常低效。在简单均值的情况下,即当没有预测变量 X 时,如果样本来自对数正态分布,则原始尺度上的样本均值是对 E(Y) 的可怕估计。最佳估计量是取对数后的均值和标准差的函数。在多变量情况下,如果为模型右侧正确指定了模型结构,则 E(Y|X) 的最小二乘估计提供了均值的无偏估计,但是对于每个观察,作为 X 的函数的 E(Y|X) 的估计值可能是错误的,因为所有回归系数都是错误的,即使它们“加起来”是正确的。例如,如果 Y|X 具有对数正态分布,并且您在计算最小二乘估计时没有采用 log(Y),那么当您以特定于 X 的方式检查预测时,您将得到错误的预测。