神经网络中的数据归一化和标准化

机器算法验证 机器学习 神经网络 正常化 标准化
2022-01-23 04:04:27

我正在尝试使用神经网络(ANN)预测复杂系统的结果。结果(相关)值介于 0 和 10,000 之间。不同的输入变量具有不同的范围。所有变量都大致呈正态分布。

我在训练之前考虑了不同的选项来扩展数据。一种选择是通过使用每个变量的均值和标准偏差值独立计算累积分布函数,将输入(独立)和输出(因)变量缩放到 [0, 1] 。这种方法的问题在于,如果我在输出端使用 sigmoid 激活函数,我很可能会遗漏极端数据,尤其是那些在训练集中没有看到的数据

另一种选择是使用 z 分数。在那种情况下,我没有极端的数据问题;但是,我仅限于输出的线性激活函数。

与 ANN 一起使用的其他公认规范化技术是什么?我试图寻找关于这个主题的评论,但没有找到任何有用的东西。

4个回答

一种标准方法是将输入缩放为均值为 0,方差为 1。线性去相关/白化/pca 也有很大帮助。

如果你对交易技巧感兴趣,我可以推荐LeCun 的高效反向传播论文。

1- 最小-最大归一化保留分数的原始分布,除了一个比例因子,并将所有分数转换到一个共同的范围 [0, 1]。然而,这种方法并不稳健(即,该方法对异常值高度敏感。

2- 标准化(Z-score normalization)最常用的技术,使用给定数据的算术平均值和标准偏差计算。但是,均值和标准差都对异常值敏感,并且这种技术不能保证归一化分数的共同数值范围。此外,如果输入分数不是高斯分布的,则该技术不会在输出端保留输入分布。

3- 中值和 MAD:中值和中值绝对偏差 (MAD) 对异常值和分布极端尾部中的点不敏感。因此它是健壮的。但是,该技术不保留输入分布,也不会将分数转换为通用数值范围。

4- tanh-estimators:Hampel 等人介绍的 tanh-estimators。坚固且高效。归一化由下式给出

tanh 估计器 其中 μGH 和 σGH 分别是 Hampel 估计器给出的真实分数分布的均值和标准差估计值。

因此我推荐 tanh-estimators。

参考 https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt

你可以做

  • 最小-最大归一化(归一化输入/目标以落在 [−1,1] 范围内),或
  • 均值-标准偏差归一化(归一化输入/目标以具有零均值和单位方差/标准偏差)

Rank guass scaler是一种 scikit-learn 风格的转换器,可将数值变量缩放为正态分布。它基于等级转换。第一步是将 linspace 分配给从 0..1 开始的排序特征,然后应用误差函数 ErfInv 的逆函数将它们塑造成高斯函数,然后减去平均值。此 trafo 不涉及二进制特征(例如 1-hot 特征)。

这通常比标准的平均值/标准缩放器或最小值/最大值好得多。

请查看此链接