您如何规范化数据以输入超出训练数据范围的神经网络?

Posted

技术标签:

【中文标题】您如何规范化数据以输入超出训练数据范围的神经网络?【英文标题】:How do you normalize data to feed into a neural network that lies outside the range of the data it was trained on? 【发布时间】:2014-10-25 05:41:17 【问题描述】:

我有一个用于分类的神经网络的输入,该网络是在一个数据集上进行训练的,其中值是从 1 到 5,例如。然后我将所有这些训练数据归一化,使其从 0 到 1。如果我想对输入超出 1-5 范围的内容进行分类,我会向网络提供什么。例如,如何将 5.3 的值归一化?

【问题讨论】:

【参考方案1】:

根据您的神经网络的条件,可以通过多种方式处理该值。其中包括:

1/. 输入可以最大化到 1

2/. 这可能超过 1,具体取决于所应用的归一化算法以及神经网络是否被设计为允许(通常,如果所有数据均已归一化,这些值应保持在 0 和 1 之间)

3/.(仅限分类)- 如果输入是分类的,而不是 1 到 5 之间的定量值,我不确定 5.3 的值是否有意义。根据您的问题,也许为“未知”状态添加另一个神经元可能会有所帮助,但我有一种直觉,这有点矫枉过正。

我假设此类案例的出现是由于在培训完成后将不可预见的未来案例用于估计目的。一般来说,处理实际上归结为 (i) 神经网络的编程,以及 (ii) 归一化输入的计算。

【讨论】:

以上是关于您如何规范化数据以输入超出训练数据范围的神经网络?的主要内容,如果未能解决你的问题,请参考以下文章

神经网络的训练数据范围

如果给定的数据在使用 R 或 Python 的范围(-1 到 1)内,如何以 (-3 ,-2,-1,0,1,2,3) 格式规范化数据?

DataSet 规范化输入值的范围

预测Keras中的类 - IndexError:索引196超出了轴0的大小为196的范围

tf.nn.in_top_k:目标超出范围

如何在 Keras 中训练网络以适应不同的输出大小