gpt4 book ai didi

keras - 时间序列数据的 BatchNormalization 层的 axis 参数设置什么?

转载 作者:行者123 更新时间:2023-12-02 17:47:59 24 4
gpt4 key购买 nike

我正在通过时间序列数据训练 LSTM 网络,并希望对数据进行标准化,因为我的特征具有不同的规模。

我的数据形状是

(n_samples x n_timestamps x n_features)

我想使用BatchNormalization layer .

我应该将 axis 设置为 2(功能,如文档中所述)还是 1(时间戳)?我希望我的特征进入 [0..1] 范围,尽管它们的规模非常不同。

问题是文档并没有说明该层实际做什么,而是为 CNN 提供了建议。

最佳答案

通常,您会使用特征维度:-1。

它将单独处理每个特征并根据每个其他维度进行标准化。但它不会使它们进入 0 到 1 的范围。它将使用 (x - 平均值)/方差 并在标准化后应用比例因子和偏差。

例如。取特征0:

  • 查看批处理中所有样本和所有时间步的特征 0 的值
  • 获取所有这些值的均值和方差
  • 计算所有样本和步骤的特征零的归一化值
  • 为特征 0 应用比例因子
  • 对特征 0 应用偏差

对特征 1 重复相同的操作,使用另一个均值、另一个方差、尺度和偏差。

如果您使用时间步维度,它将单独查看每个步骤,并为每个步骤提供一个比例因子,这没有多大意义,因为步骤都应该具有相似的性质,这与可能意味着完全不同的事物的特征不同。

如果您确实需要 0 到 1 之间的值,则只需应用 Activatoin('sigmoid') 即可。如果您担心值会过于饱和,可以应用 BatchNormalization(),然后应用 Activatoin('sigmoid')

关于keras - 时间序列数据的 BatchNormalization 层的 axis 参数设置什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53963181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com