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 |