关于在训练/有效/测试集上减去平均值的问题


11

我正在进行数据预处理,然后在数据上构建一个Convonets。

我的问题是:假设我有100个图像的总数据集,我正在为100个图像中的每个图像计算平均值,然后从每个图像中减去它,然后将其拆分为训练集和验证集,我这样做给定测试集上进行处理的步骤,但根据此链接,看来这不是正确的方法:http : //cs231n.github.io/neural-networks-2/#datapre

常见的陷阱。进行预处理的重要一点是,任何预处理统计信息(例如数据均值)都必须仅在训练数据上计算,然后应用于验证/测试数据。例如,计算均值并从中减去整个数据集中的每幅图像然后将数据拆分为训练/验证/测试分割将是一个错误,相反,必须仅对训练数据计算平均值,然后从所有分割(训练/验证/测试)中均等地减去均值。 ”

我猜作者在说什么,不要计算平均值并在每个图像中减去它,而是计算整个图像集的平均值(即(image1 + ... + image100)/ 100),然后减去平均值每个图像。

我不太明白有人可以解释吗?并且还可能解释为什么我在做什么错了(如果确实错了)。


欢迎来到社区。请在下面查看我的答案。
usεr11852

Answers:


6

假设您总共有100张图片;90是训练数据,10是测试数据。

μ^μ^

μ^μ^


μ^

1
μ^

@usεr11852为什么更多的信息会损害我们的模型?这不会导致“样本外响应变量”的信息以任何方式干扰我们的训练,对吗?那么为什么火车误差会很低呢?
GeneX

1
μ^

……偶然地,所有的老人都参加了考试。如果仅在训练集中计算平均年龄,则显然得到的平均年龄将比整个样本的平均年龄低。A如果A不能很好地推广到不同年龄,则使用这种明显有偏差的均值可能会降低模型的性能。如果我们在整个数据集中计算平均年龄,我们将获得更具代表性的平均年龄。如果我们现在在模型中使用这种无偏均值A,尽管可能A无法很好地推广到不同的年龄,但我们可能会获得比以前更好的性能。)
usεr11852'17
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.