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…)