It's Alive!

for my final year project i am attempting to teach a computer to think like a three month old baby..

obviously it must must lie around drooling a bit before it can gurgle and play hidey-peep with me but we've passed the first hurdle.  I built a completely general purpose Perceptron. (yes, look impressed)

what's more i've done on practically my first attempt at playing with Matlab.. I'm rather proud.. here's the code.

% perceptron delta rule solution script
% data files :
%               percept.input
%               percept.teach

IN = load('percept.input');     % load input data
OUT = load('percept.teach');    % load target outputs

[datarows, inelem]=size(IN);    % find size of data arrays
[testrows, outelem]=size(OUT);

nepochs = 1000;
gamma = 0.2;
TotError = zeros(nepochs*datarows,2);

W = 0.05* randn(inelem,outelem); % initialise random weight matrix

for n = 1:nepochs
   for p = 1:datarows
       % get appropriate input & target rows
       A = IN(p,1:inelem);        
       T = OUT(p,1:outelem)';
       
       % feedforward
       O = activation(A*W,1,0);
       
       % calculate & apply the delta adjustments
       dW = gamma * (T - O) .* d_activation(A*W,1,0) * A';
       W = W + dW;    
       
       % running count of total error
       totsweep = (n-1)*datarows+p;
       TotError(totsweep,1) = totsweep;
       TotError(totsweep,2) = SumSquaresError(T,O);
   end
end


see how it solves the logical AND problem and fails on XOR !! (ooh... aah...)