问题描述
使用深度学习RNN模型预测目标轨迹。输入过去一段时间目标的运动轨迹预测未来某一时刻目标的位置。现在已有一些轨迹的数据,在训练之前应该如何对数据进行标准化/或者归一化呢?或者是不需要进行这个处理?(自己试了没有标准化数据时模型难以训练,使用的损失函数是mean_squared_error)
找的一些标准化/归一化方法
-
zero-mean normalization
x = (x - μ ) / σ # μ是样本均值,σ是样本方差
很多文献和网上的例子使用这种方法,但是这个方法有个很严重的问题,公式中的μ , σ是更具已有的数据集计算得到的,实际运用中是想利用新测到的数据预测目标未来的位置,显然新测量到的数据无法使用原来的μ ,σ进行处理。
-
Min-max normalization
x = (x - min)/(max - min) #min是样本最小值,max是样本最大值
由于目标的位置,例如(x, y)未知,min和max无法确定,网友建议使用理论的最大值,最小值计算,但是这可能导致数据发布极不平衡,暂时没尝试过这种方法。
3.**atan函数转换**
x = atan(x) * 2 / π
这个方法可以把数据映射到[0,1]。使用这个方法遇到了两个个问题,使用反正切计算后得到的预测结果偏差很大(模型训练时损失在0.02以下),另一个问题是,由于模型有误差,当真实值接近1(标准化以后)时,模型预测可能超过1,这样计算反正切结果为负,所以放弃这种方法。
寻求的帮助
请问各位大佬,这类问题应该怎么对数据集进行预处理,网上找的很多方法,并没有很好的解决。