machine-learning - 在训练/验证/测试中使用标准化或标准化的参数
问题描述
最佳实践是标准化/标准化训练集,然后使用其参数(min
&max
用于标准化和mean
&std
用于标准化)标准化/标准化验证集。
我想知道的是在验证中设置不同的最小值/最大值的效果,因此最终得到的值的范围不再在区间 (0,1) 内。
这如何影响神经网络的训练?
最后一个疑问:当我们使用测试集来评估模型对看不见的数据的性能时,我们是否应该再次使用训练参数对数据进行归一化/标准化?因为这些参数实际上与训练模型绑定在一起。
解决方案
当您进行扩展时,您通常会知道数据的范围:
- 对于图像,您从 0-255 变为 0-1,这很好,您事先知道范围
- 对于其他特征,您要缩放的不是均匀分布,而是高斯分布,在这种情况下,您不能不受输出的 [0,1] 区间(或 [-1,1])的限制。
所以通常,如果你知道你想要什么样的输出(概率或图像),你也知道你可以拥有的输入的真实完整范围。
当您不知道输入范围时,您通常不希望在输出处使用 sigmoid,因为这对您的网络的限制超出了您的应有范围。
是的,您需要使用与训练数据相同的预处理管道,这意味着训练的标准化参数。
推荐阅读
- c - 从标准输入读取并将每个单词存储在数组的单独列中
- javascript - TypeError: require(...).registerUser 不是一个函数
- ruby - 用于 ruby 的 Google 云视频智能 API 示例
- python-3.x - 在 Solaris Sparc 11.4.29 上从源代码构建 python 3.8.3 时未构建 _ctypes
- r - 分类变量的值限制为 53
- c# - 通过 AuthenticationState 在 Blazor 客户端 Web 程序集中检索自定义声明
- c++ - 使用从 PyTorch 转换的相同 ONNX 模型时,OpenCV 一分为二地崩溃
- flutter - Flutter 中 RenderFlex 溢出和不正确使用父小部件的解决方案是什么?
- c# - 连一个连接都打不开:超时。在从池中获取连接之前经过的超时时间
- testing - 如何获取所有标签下的在testcafe