我开始开发一些LSTM模型,现在对归一化有一些疑问。
假装我有一些时间序列数据,大约在+500到-500之间。将数据从-1缩放到1还是将其缩放为0到1是更好的方法,这是更现实的做法,我对其进行了测试,并且0到1似乎更快。有错误的方法吗?还是会变得更慢?
第二个问题:什么时候可以对数据进行规范化?我将数据分为训练数据和测试数据,是否必须分别缩放/标准化该数据?训练数据可能仅在+300到-200之间,而测试数据则在+600到-100之间。我猜那不是很好。
但是,另一方面,如果我缩放/归一化整个数据框并在之后将其拆分,则该数据可以很好地进行训练和测试,但是如何处理真正的新传入数据呢?该模型经过训练可以缩放数据,所以我也必须缩放新数据,对吗?但是,如果新数据为1000,该怎么办?归一化会将其转化为大于1的值,因为它的数量比以前的其他任何事物都大。
长话短说,什么时候可以规范化数据,而全新的数据又会如何?
我希望我能弄清楚我的问题是什么:D
非常感谢您!
答案 0 :(得分:1)
想知道如何处理现实……
请注意:
通常,神经网络受益于来自高斯标准分布(均值0
和方差1
)的数据。
诸如批处理规范化(简化)之类的技术可帮助神经网络在整个网络中具有此特征,因此通常是有益的。
您还提到了其他方法,以可靠地告诉您什么才是您需要检查和衡量的问题和指定体系结构的帮助。
应该从训练数据集中收集均值减去和方差以除以每个实例(或通过前面提到的任何归一化方案收集的任何其他统计信息)。如果从测试中删除它们,则会执行数据泄漏(有关测试分布的信息已纳入训练中),并且可能会给人留下错误的印象,即算法的性能要比实际情况好。
因此,只需计算训练数据集上的统计数据,并将其也用于传入/验证/测试数据即可。