domingo, 24 de agosto de 2014

Perceptron Simples - Porta AND - Matlab


clear;
clc;
nAmostras = 500


%Formação da matriz de entrada
x = (((rand(nAmostras,2) * 2)-1) / 10)  + round(rand(nAmostras,2));


plot(x(:,1),x(:,2),'.')
title('X0 vs X1');

%Calculo da matriz desejada


d = round(x(:,1))   |  round(x(:,2));

%Treinamento
n = 0.1;
maxEpocas = 100;
W = ones(1,3) * 0.5;

histErros = 0;

%Iterando pelas amostras

for j=1:maxEpocas
 cont=0;
 for i=1:nAmostras
        a = [1, x(i,:) ];
        
        u = a * W';
        
        if u>=0 
            y = 1;
        else
            y = 0;
        end
        
        E = d(i) - y;
       
        W = W + n * E * a;
        
        if(E~= 0)  
            cont = cont + 1;
        end
 end
 histErros = [histErros cont];
end 


hold
plotpc(W(2:3),W(1))


Rede treinada para a porta AND



Nenhum comentário:

Postar um comentário