gpt4 book ai didi

machine-learning - 神经网络 - 训练集和验证集是否需要单独标准化?

转载 作者:行者123 更新时间:2023-11-30 08:32:40 31 4
gpt4 key购买 nike

我正在训练这个 5-5-2 反向传播神经网络,在阅读了这篇很棒的文章之后 article作者:LeCun 我开始将他建议的一些想法付诸实践。

目前我正在使用我自己制作的 10 倍交叉验证算法对其进行评估,其基本上如下所示:

for each epoch      
for each possible split (training, validation)
train and validate
end
compute mean MSE between all k splits
end

我的输入和输出是标准化的(均值 0,方差 1),并且我使用 tanh 激活函数。所有网络算法似乎都能正常工作:我使用相同的实现来近似 sin 函数,并且效果非常好。

现在,问题正如标题所暗示的:我应该单独标准化每个训练/验证集还是只需要标准化整个数据集一次

请注意,如果我执行后者,网络不会产生有意义的预测,但我更喜欢有一个更“理论”的答案,而不是仅仅查看输出。

顺便说一句,我用 C 实现了它,但我也对 C++ 感到满意。

最佳答案

单独标准化每个训练集很可能会更好。交叉验证的目的是了解算法的泛化能力。当您将网络应用于新输入时,输入将不是用于计算标准化参数的输入。如果您一次性标准化整个数据集,您就忽略了新输入超出标准化值范围的可能性。

因此,除非您计划在每次处理新输入时重新标准化(我猜这不太可能),否则您应该只计算正在评估的分区的训练集的标准化参数。此外,您应该仅在分区的训练集上计算这些参数,而不是验证集(即每个 10 倍分区将使用 90% 的数据来计算标准化参数)。

关于machine-learning - 神经网络 - 训练集和验证集是否需要单独标准化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709537/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com