数学建模社区-数学中国
标题:
关于BP神经网络归一化的问题,求大神解答~
[打印本页]
作者:
南风哥哥sky
时间:
2016-5-26 21:35
标题:
关于BP神经网络归一化的问题,求大神解答~
求问BP神经网络的归一化是按行还是整个矩阵的归一化?
& |5 w# d- z/ p; O( Z
比如input=[1 2 3 4 5;
4 O7 [, H8 L; I/ a& J
2 3 4 5 6;
% `; b9 S6 V7 G3 j
3 4 5 6 7];
/ F4 D: c! L* i+ E1 D% ]/ v4 y
output=[4 5 6 7 8];
% n: J, B5 ^0 |! K, J( D1 T# P
input_test=[6;
. I/ g9 ^% o/ \6 K/ s7 z: ~% ^
7;
1 K, J0 {& `- k
8];
# U" B e9 e* w, s) D/ F* v) l
输入输出分别归一化,可以直接[inputn,inputs]=mapminmax(input,0,1);
* l- H; I8 X/ V# z. d
[outputn,ouputs]=mapminmax(output,0,1); 吗?
o5 A% d1 d' b, I7 \- w4 O7 g
这样就是按行归一化了吧~
6 q j7 \% R- x, k) r1 M' z
如果是整个矩阵归一化,也就是这样
7 j2 r5 U; _( T p( U' D; D
imax=max(max(input));
1 [. R. O, p7 q; x; r0 g, [& ?
imin=min(min(input));
; W9 C j$ b' C2 c* d! e' g- I$ \
inputn=(1-0)*(input-imin)/(imax-imin);%%input的归一化
, v7 a3 X6 N4 L9 J
omax=max(max(output));
$ F" Z% [1 U; S) P% e! A4 v
omin=min(min(output));
+ w* k9 ]% ?4 E# ~9 w% R5 o& _
outputn=(1-0)*(output-omin)/(omax-omin);%%output的归一化
; M y3 e* l+ B- G1 s$ L6 ]; c
然后再训练,预测~
3 r5 m, p3 @$ z+ \) l; o2 I6 p9 y0 ]
那么问题来了,预测时的input_testn是如何归一化得到的?如果还是按input的方法归一化,也就是上面的inputn=(1-0)*(input-imin)/(imax-imin);得到的input_testn会有大于1的数吧~
* m! E3 n) c* n
另外,得到预测结果resultn后,如何反归一化呢?如果resultn里面有大于1或者小于0的数又怎么办呢?
. U+ A$ f5 P2 _. p
3 t) Q: q7 _1 K3 }8 Q
作者:
阳光照耀的日子
时间:
2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
! v6 Y- h" W, V9 g, w5 O) X
作者:
阳光照耀的日子
时间:
2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
- Q7 Q: P6 H) C2 ] {
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5