南风哥哥sky 发表于 2016-5-26 21:35

关于BP神经网络归一化的问题,求大神解答~

  求问BP神经网络的归一化是按行还是整个矩阵的归一化?
  比如input=[1 2 3 4 5;
                     2 3 4 5 6;
                     3 4 5 6 7];
         output=;
         input_test=[6;
                            7;
                            8];
  输入输出分别归一化,可以直接=mapminmax(input,0,1);
                                                   =mapminmax(output,0,1);  吗?
  这样就是按行归一化了吧~
  如果是整个矩阵归一化,也就是这样
                                        imax=max(max(input));
                                        imin=min(min(input));
                                        inputn=(1-0)*(input-imin)/(imax-imin);%%input的归一化
                                        omax=max(max(output));
                                        omin=min(min(output));
                                        outputn=(1-0)*(output-omin)/(omax-omin);%%output的归一化
  然后再训练,预测~
  那么问题来了,预测时的input_testn是如何归一化得到的?如果还是按input的方法归一化,也就是上面的inputn=(1-0)*(input-imin)/(imax-imin);得到的input_testn会有大于1的数吧~
  另外,得到预测结果resultn后,如何反归一化呢?如果resultn里面有大于1或者小于0的数又怎么办呢?

阳光照耀的日子 发表于 2016-5-26 22:02

mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。

阳光照耀的日子 发表于 2016-5-26 22:02

mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
页: [1]
查看完整版本: 关于BP神经网络归一化的问题,求大神解答~