lunes, 9 de noviembre de 2020

Evidencia entrenamiento de un perceptron multicapa para el reconocimiento de patrones

 Hola!






CÓDIGO:

% Letras I J K L
clc;

I=[-1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1];

%%%Modificacion I
I_mod_1 = [ 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1];
I_mod_2 = [ -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1  -1 -1 1 -1 -1  -1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1];

J=[-1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1];

%%%Modificacion J
J_mod_1 = [-1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 1 -1 1];
J_mod_2 = [-1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 -1];

K=[-1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1];

%%%Modificacion K
K_mod_1 = [1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1];
K_mod_2 = [-1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 1];

L = [1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 1 1 1];

%%%Modificacion L
L_mod_1 = [1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 1 1 1];
L_mod_2 = [1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 1 -1 -1];


p=[I;J;K;L]; %patrones

p=transpose(p); %transponiendo la información

%%Tres salidas
Target=eye(4);

%%Target=transpose(Target)

net=newff(minmax(p),[5,4],{'tansig','tansig'},'traingd');

net=init(net);

net.trainParam.lr = 0.1;   % learning rate
net.trainParam.epochs = 100000;
net.trainParam.goal = 1e-3;     %0.001   es 1 x 10 ^-3

[net,tr]=train(net,p,Target);

%%%%%%%%%%  EVALUACION DE PATRONES

Letra=transpose(K_mod_2);       %definir el patron

y1=sim(net,Letra);              %Realizar la simulacion

R=compet(y1);

[i, j]=find(R==1);
 i=i+72;      
Respuesta=char(i);









No hay comentarios.:

Publicar un comentario