Het bijgevoegde stukje code simuleert een neuraal net dat het XOR probleem oplost. Ik zou denken dat het netwerk twee inputs en één output zou hebben.
Maar, matlab tekent dit netwerk op de volgende manier:

Het lijkt alsof er maar één input is! Of wordt het impliciet door Matlab begrepen omdat de input data (p) een 2 hoog matrix is?
Matlab versie r2009b
Maar, matlab tekent dit netwerk op de volgende manier:

Het lijkt alsof er maar één input is! Of wordt het impliciet door Matlab begrepen omdat de input data (p) een 2 hoog matrix is?
Matlab versie r2009b
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| p = [0 0 1 1; 0 1 0 1]; % "p"redictors t = [0 1 1 0]; % "t"argets y00 = mean(t) % 0.5 e00 = t-y00 % [-0.5 0.5 0.5 -0.5] MSE00 = mse(e00) % 2.5e-1 rand('state',0) % RNG initialization for i = 1:10 tic net=newff(minmax(p),[2 1],{'tansig','tansig'},'traingdx'); net.trainParam.goal = 10e-6; net.trainParam.epochs = 1000; [net,tr] = train(net,p,t); y(i,:) = sim(net,p); MSE(i) = tr.perf(end); epochs(i) = tr.epoch(end); time(i) = toc; end format short g disp('Time Epochs MSE y(1) y(2) y(3) y(4)') summary = [time' epochs' MSE' y] % Time Epochs MSE y(1) y(2) y(3) y(4) % % 4.057 1000 *1.23e-1 -4.83e-3 0.991 0.501 4.94e-1 % 4.087 1000 *1.25e-1 -3.75e-3 0.984 *0.499 *5.00e-1 % 4.026 1000 *4.19e-5 7.55e-5 0.991 0.991 3.10e-5 % 4.056 1000 *1.25e-1 *5.01e-1 0.984 0.500 6.10e-4 % 3.246 1000 *1.69e-5 9.30e-5 0.993 0.996 5.04e-5 % 4.056 1000 *2.03e-5 -1.18e-4 0.996 0.992 1.55e-3 % 4.041 1000 *1.25e-1 6.66e-3 0.505 0.988 *5.06e-1 % 4.104 1000 *1.52e-5 1.01e-4 0.993 0.997 3.53e-6 % 4.103 1000 *1.25e-1 4.98e-1 0.986 *0.496 -4.62e-3 % 4.182 1000 *1.66e-5 3.22e-5 0.997 0.992 1.93e-4 |