神经网络缩放输入和除垢输出

本文关键字:输出 缩放 输入 神经网络 | 更新日期: 2023-09-27 18:34:44

我有很久以前在某处找到的 NN 的缩放输入和除垢输出的方法,但我不确定它们是否有效,我使用 encog 库进行 NN:

public static double Scale(double X)
        {
            double fieldlow = 0;
            double fieldhigh = 1;
            double min = 1;
            double max = 2;
            //double max = 10000;
            double temp = ((X - min) / (max - min)) * (fieldhigh - fieldlow) + fieldlow;
            return temp;
        }
        public static double DeScale(double X)
        {
            double fieldlow = 0;
            double fieldhigh = 1;
            double min = 1;
            double max = 2;
            //double max = 10000;
            double temp = ((min - max) * X - fieldhigh * min + max * fieldlow) / (fieldlow - fieldhigh);
            return temp;
        }

假设字段低和高是 NN 输入和输出的范围(我不确定,但看起来像 ActivationTANH 的范围 0-1(,最小值应该是数据中的最小值,而数据中的最大最高值。我很好奇,如果您获得值更高的新数据,然后您设置的最大值怎么办?你必须重写这种方法并从头开始训练吗?

如果这是错误的,请指出我正确的方向。

神经网络缩放输入和除垢输出

如果我

没记错的话,缩放不仅适用于训练数据特征范围,还适用于所有可能的数据特征范围。这意味着如果训练集中的特征具有最小值 - 25 和最大值 - 45,但实际上可以从 1 到 1000,那么 xMin = 1,xMax = 1000 时调用执行这样值就不能改变

尝试使用以下公式:scaledX = (X - minX(/(maxX - minX(,其中 minX''maxX - 每个输入特征的最小值和最大值