我有一组特征值位于区间(-1,1)内。我正在寻找一种双射函数或程序,将数据归一化到特定范围,使其均值接近0,方差接近1。
函数必须是双射的,这一点非常重要,因为我需要将这些特征归一化后作为输入,供使用tanh激活函数的神经网络使用。我的处理流程将是在内存中转换数据,输入到网络中,然后将网络结果转换回初始尺度。
回答:
这种归一化任务在神经网络应用中非常常见。最常见的方法是简单地计算数据的均值和标准差,并将这些值存储在训练程序中。因此,你的数据处理流程如下:
- 计算输入数据的
mean
和sd
,并将其存储在内存中。 - 应用归一化转换:
normed_data = (data - mean) / sd
。 - 训练/评估/使用网络。
- 使用
original_data = (normed_data * sd) + mean
反归一化数据。
我写了一篇关于数据归一化的更长的文章。你可以在这里阅读这里。