数学建模社区-数学中国
标题:
关于BP神经网络归一化的问题,求大神解答~
[打印本页]
作者:
南风哥哥sky
时间:
2016-5-26 21:35
标题:
关于BP神经网络归一化的问题,求大神解答~
求问BP神经网络的归一化是按行还是整个矩阵的归一化?
) N% h3 h! i; E5 f. i
比如input=[1 2 3 4 5;
) W+ Q3 `( N) ?" z$ H
2 3 4 5 6;
6 S1 ]/ u- r6 k b" g* ?; M
3 4 5 6 7];
) e; }9 Q; k+ Y! X
output=[4 5 6 7 8];
2 a9 ]5 m4 w+ V- }5 c3 ?
input_test=[6;
- a! N; {" K* D" U$ U R8 L! z. h
7;
, u; Y+ | j* w/ Q' B- S
8];
$ X( R& S* _# M
输入输出分别归一化,可以直接[inputn,inputs]=mapminmax(input,0,1);
" f0 ]8 h7 u3 u: S
[outputn,ouputs]=mapminmax(output,0,1); 吗?
) }+ d; q$ m& i/ f) T) m8 V6 {
这样就是按行归一化了吧~
8 c. k+ y3 m. o* Q' E$ Y. p
如果是整个矩阵归一化,也就是这样
: h' T& L5 E- M4 X0 g+ C4 U+ \5 n
imax=max(max(input));
( Z0 o2 w' @$ t4 `9 i0 a
imin=min(min(input));
7 P8 h4 @: X0 X2 y
inputn=(1-0)*(input-imin)/(imax-imin);%%input的归一化
/ {) N0 ^, ?; {( S E/ E4 i
omax=max(max(output));
1 J( @' _( m9 _# S& i9 W3 _
omin=min(min(output));
+ L: a1 V" ?& s8 y3 m
outputn=(1-0)*(output-omin)/(omax-omin);%%output的归一化
% \' t M( @# M$ L( C* z& a
然后再训练,预测~
; h" B( ]6 l1 d: D
那么问题来了,预测时的input_testn是如何归一化得到的?如果还是按input的方法归一化,也就是上面的inputn=(1-0)*(input-imin)/(imax-imin);得到的input_testn会有大于1的数吧~
* o8 }) \. r- O8 A7 }7 i, _# t7 U
另外,得到预测结果resultn后,如何反归一化呢?如果resultn里面有大于1或者小于0的数又怎么办呢?
5 E% ], ~$ [! y% B2 k3 P0 T
* f: k( D9 X5 Q6 P
作者:
阳光照耀的日子
时间:
2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
7 j7 L5 t- {2 B/ w( A! }: p
作者:
阳光照耀的日子
时间:
2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
( q7 t0 Y1 C6 X+ H
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5