数学建模社区-数学中国
标题:
关于BP神经网络归一化的问题,求大神解答~
[打印本页]
作者:
南风哥哥sky
时间:
2016-5-26 21:35
标题:
关于BP神经网络归一化的问题,求大神解答~
求问BP神经网络的归一化是按行还是整个矩阵的归一化?
. u) C" {) g1 i
比如input=[1 2 3 4 5;
+ w8 D2 z$ h! l% _$ _0 |
2 3 4 5 6;
( E0 u) l; A k9 F, Z
3 4 5 6 7];
4 y# l$ @% I$ H2 V0 R
output=[4 5 6 7 8];
3 M) b v; x) b& T0 i! Z8 K
input_test=[6;
7 O2 I0 ?, {4 D- v1 e3 \1 u6 y) N
7;
4 m" l# V4 p# m1 t8 c+ {) Q5 S) R
8];
1 e7 Y4 T) D' Z" U
输入输出分别归一化,可以直接[inputn,inputs]=mapminmax(input,0,1);
& f9 I d: ~, K% L& H
[outputn,ouputs]=mapminmax(output,0,1); 吗?
$ m. A# I$ G8 g
这样就是按行归一化了吧~
6 ^/ P& Z$ c! m# @. q
如果是整个矩阵归一化,也就是这样
& G/ x" w9 E C) z9 ^
imax=max(max(input));
% l1 j! ~) D2 f v* `2 ?" Z" @+ M$ t! L
imin=min(min(input));
# F7 `5 T" h! ^; ?4 M% l3 U0 T/ a
inputn=(1-0)*(input-imin)/(imax-imin);%%input的归一化
* k( S) v# @, Y+ S3 K1 [. x
omax=max(max(output));
1 G$ T b; n) _/ Q8 z8 W
omin=min(min(output));
) v+ E9 g2 V6 [* R6 q3 s. U
outputn=(1-0)*(output-omin)/(omax-omin);%%output的归一化
2 }! r' C5 [3 _5 @! a
然后再训练,预测~
# w+ |3 r/ u8 u o5 d
那么问题来了,预测时的input_testn是如何归一化得到的?如果还是按input的方法归一化,也就是上面的inputn=(1-0)*(input-imin)/(imax-imin);得到的input_testn会有大于1的数吧~
4 c8 w& G2 Y# d3 I
另外,得到预测结果resultn后,如何反归一化呢?如果resultn里面有大于1或者小于0的数又怎么办呢?
0 r% B( U6 w$ W4 t! J$ u! ?
- y+ N0 u/ e( w; o! C2 w1 j4 c
作者:
阳光照耀的日子
时间:
2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
$ x! y% s) U& I+ p1 b0 d
作者:
阳光照耀的日子
时间:
2016-5-26 22:02
mapminmax是按照每一行进行归一化,即对所有样本的同一个特征进行归一化。神经网络的训练数据要比预测数据的范围大,即预测数据的特征最大最小值范围最好不要超过训练数据的特征,这样子你的问题就不会出现了。
- ?" u# |+ a) @, i6 S# Q
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5