在 training/validation/test 中使用标准化或规范化参数
Use of standardization or normalization's parameters in training/validation/test
最佳做法是 normalize/standardize 训练集,然后使用其参数(min
& max
进行归一化,mean
& std
用于标准化)normalize/standardize 验证集。
我想知道的是,在验证集中有不同的 min/max 值并因此以范围不在区间 (0,1) 内的值结束。
这对神经网络的训练有何影响?
最后一个疑问:当我们使用测试集评估模型在未见数据上的性能时,我们是否应该再次normalized/standardize具有训练参数的数据?由于这些参数实际上与训练模型绑定在一起。
缩放时,您通常知道数据的范围:
- 对于图像,你从 0-255 到 0-1,没关系,你事先知道范围
- 对于其他特征,你缩放的不是均匀分布,而是高斯分布,在这种情况下你一定不能不受输出[0,1]区间(或[-1, 1]).
所以通常,如果你知道你想要什么样的输出(概率或图像),你也知道你可以拥有的输入的真正完整范围。
当您不知道输入范围时,您通常不希望在输出端有一个 S 型曲线,因为它对您的网络的限制超出了您应有的范围。
是的,您需要使用与训练数据相同的预处理管道,这意味着经过训练的归一化参数。
最佳做法是 normalize/standardize 训练集,然后使用其参数(min
& max
进行归一化,mean
& std
用于标准化)normalize/standardize 验证集。
我想知道的是,在验证集中有不同的 min/max 值并因此以范围不在区间 (0,1) 内的值结束。
这对神经网络的训练有何影响?
最后一个疑问:当我们使用测试集评估模型在未见数据上的性能时,我们是否应该再次normalized/standardize具有训练参数的数据?由于这些参数实际上与训练模型绑定在一起。
缩放时,您通常知道数据的范围:
- 对于图像,你从 0-255 到 0-1,没关系,你事先知道范围
- 对于其他特征,你缩放的不是均匀分布,而是高斯分布,在这种情况下你一定不能不受输出[0,1]区间(或[-1, 1]).
所以通常,如果你知道你想要什么样的输出(概率或图像),你也知道你可以拥有的输入的真正完整范围。
当您不知道输入范围时,您通常不希望在输出端有一个 S 型曲线,因为它对您的网络的限制超出了您应有的范围。
是的,您需要使用与训练数据相同的预处理管道,这意味着经过训练的归一化参数。