数学建模社区-数学中国

标题: 关于BP神经网络归一化的问题,求大神解答~ [打印本页]

作者: 南风哥哥sky    时间: 2016-5-26 21:35
标题: 关于BP神经网络归一化的问题,求大神解答~
  求问BP神经网络的归一化是按行还是整个矩阵的归一化?
" `7 V* @$ j7 v- d$ l  比如input=[1 2 3 4 5;$ ~# ]' R( ~$ I6 ~# f
                     2 3 4 5 6;
( i. [% P& X! @" H, V# Z                     3 4 5 6 7];) z1 y6 H6 }! o* P* C
         output=[4 5 6 7 8];$ T9 P9 N" H5 s8 ~) L( s' g
         input_test=[6;
2 q8 d( a" i4 m                            7;
; z0 d& i- K5 w# p                            8];6 ?: K6 z3 A( W8 [$ [5 U/ i4 n
  输入输出分别归一化,可以直接[inputn,inputs]=mapminmax(input,0,1);
8 U$ K) L4 V3 U# b2 J: W$ j                                                   [outputn,ouputs]=mapminmax(output,0,1);  吗?
; w5 r2 x9 h9 ~$ L* X  这样就是按行归一化了吧~8 \1 n, z/ A) {& T
  如果是整个矩阵归一化,也就是这样
  `' L* i6 k7 m* [                                        imax=max(max(input));& ?4 m, f2 n& ~9 k/ h; f
                                        imin=min(min(input));
% x8 T' D4 O0 r6 N$ e: ~                                        inputn=(1-0)*(input-imin)/(imax-imin);%%input的归一化
+ }7 F* X9 O5 \                                        omax=max(max(output));
' t* ^& k6 D2 g, e8 u, x6 d) g+ x                                        omin=min(min(output));
/ Z" D9 z2 {( d) _6 o/ }* L- K                                        outputn=(1-0)*(output-omin)/(omax-omin);%%output的归一化
' v' r% L9 \0 }1 N  {  然后再训练,预测~
) N4 C: |' g5 L1 D3 u" K) ^  那么问题来了,预测时的input_testn是如何归一化得到的?如果还是按input的方法归一化,也就是上面的inputn=(1-0)*(input-imin)/(imax-imin);得到的input_testn会有大于1的数吧~$ a. E( s% _) o* x
  另外,得到预测结果resultn后,如何反归一化呢?如果resultn里面有大于1或者小于0的数又怎么办呢?6 P' h% @- N, e8 H

1 v: @5 X: Q" i! ]) h; ?2 q
作者: 阳光照耀的日子    时间: 2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
7 H$ [9 z; A: U7 x  D+ e  [
作者: 阳光照耀的日子    时间: 2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
/ J8 }: N9 W3 {




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5