balun2877
sure1ee
2019-04-19 17:12

深度学习做回归问题如何对数据集进行标准化,归一化?

  • python
  • 深度学习
  • 神经网络

问题描述

使用深度学习RNN模型预测目标轨迹。输入过去一段时间目标的运动轨迹预测未来某一时刻目标的位置。现在已有一些轨迹的数据,在训练之前应该如何对数据进行标准化/或者归一化呢?或者是不需要进行这个处理?(自己试了没有标准化数据时模型难以训练,使用的损失函数是mean_squared_error)

找的一些标准化/归一化方法

  1. zero-mean normalization

    x  = (x - μ ) / σ  # μ是样本均值,σ是样本方差
    

    很多文献和网上的例子使用这种方法,但是这个方法有个很严重的问题,公式中的μ , σ是更具已有的数据集计算得到的,实际运用中是想利用新测到的数据预测目标未来的位置,显然新测量到的数据无法使用原来的μ ,σ进行处理。

  2. 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,这样计算反正切结果为负,所以放弃这种方法。

寻求的帮助

请问各位大佬,这类问题应该怎么对数据集进行预处理,网上找的很多方法,并没有很好的解决。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答