Neural Network : Poor Result
2 次查看(过去 30 天)
显示 更早的评论
Hello,
I was trying to simulate MATLAB's NN functions before testing my network. I was training y = x1+x2.
But see how it performed,
>> net = newfit([1 2 3 4 5 0 1 2 5;1 2 3 4 5 1 1 1 1],[2 4 6 8 10
0 2 3 6],15);
>> net = train(net,[1 2 3 4 5 0 1 2 5;1 2 3 4 5 1 1 1 1],[2 4 6 8
10 0 2 3 6]);
>> sim(net,[1;4])
ans =
12.1028
>> sim(net,[4;4])
ans =
8.0000
>> sim(net,[4;1])
ans =
3.0397
>> sim(net,[2;2])
ans =
5.1659
>> sim(net,[3;3])
ans =
10.3024
Can anyone explain what is wrong with these training data? Is it not enough to estimate y = x1+x2 ? Or it just over-specialized?
0 个评论
采纳的回答
Greg Heath
2012-1-31
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PTRN = [1 2 3 4 5 0 1 2 5; 1 2 3 4 5 1 1 1 1]
TTRN = [2 4 6 8 10 0 2 3 6]
PTST = [ 1 4 4 2 3 ; 4 4 1 2 3 ]
[ I NTRN ] = SIZE(PTRN) % [ 2 9 ] [ O NTRN ] = SIZE(TTRN) % [ 1 9 ]
DID YOU MAKE A CONTOUR PLOT OF TTRN VS PTRN?
DID YOU OVERLAY THE POINTS OF PTST ON THE CONTOUR PLOT?
NEQ = NTRN*O % 9 NW = (I+1)*H+(H+1)*O % 30 + 11 = 41
YOU HAVE ONLY 9 TRAINING EQUATIONS FOR 41 UNKNOWN WEIGHTS.
DON'T EXPECT MUCH WHEN YOU USE THIS NET FOR NONTRAINING DATA
UNLESS:
1. YOU USE STOPPED TRAINING WITH A VALIDATION SET AND/OR
2. YOU USE REGULARIZATION VIA TRAINBR AND/OR
3. YOU REDUCE H AND/OR
4. YOU INCREASE NTRN
WHAT DID YOU GET FOR
MSETRN00 = VAR(TTRN)
YTRN = SIM(NET,PTRN)
ETRN = TTRN-YTRN
MSETRN = MSE(ETRN)
R2TRN = 1-MSETRN/MSETRN00
HOPE THIS HELPS.
GREG
1 个评论
Greg Heath
2012-1-31
WHEN YOU MAKE UP EXAMPLES, TAKE THEM FROM SAMPLING A SMOOTH FUNCTION.
TO BE MORE REALISTIC YOU CAN ADD SOME RANDOM NOISE CONTAMINATION.
MAKE SURE NEQ >= NW (PREFERABLY NEQ >> NW)UNLESS YOU ARE TESTING
WAYS TO MITIGATE OVERTRAINING AN OVERFIT NET.
HOPE THIS HELPS.
GREG
P.S. SEE THE OVERFITTING SECTION OF THE COMP.AI.NEURAL-NETS FAQ
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!