redes neuronales
Objetivos
Conocer el algoritmo de entrenamiento del Perceptrón y su codificación en MATLAB
Conocer la manera como se pueden simular redes neuronales con el MATLAB
Conocer las funciones con las cuales se implementa en el MATLAB las redes tipo Perceptrón.
INTRODUCCIÓN
El hombre no sólo se ha demostrado deseoso de aprender, sino que con frecuencia su curiosidad lo haimpulsado a averiguar cómo se aprende. Desde tiempos muy antiguos hasta la actualidad, con estructuras lógicas y algoritmos matemáticos, han descubierto temas de suma importancia como lo son las redes neuronales artificiales, un claro ejemplo es el estudio del perceptrón como red neuronal con función de activación hardlim o hardlims que sirve para solucionar problemas linealmente separables.
Pues laimportancia del MATLAB como software para la solución de problemas relacionados con el perceptrón, es un paso muy grande para enfrentar nuevos retos reales en la vida profesional.
PROCEDIMIENTO
1. CLASIFICACION USANDO UN PERCEPTRON Y CON AYUDA DEL TOOLBOX DE REDES NEURONALES
X1
X2
D
-0.5
-1.0
0
1.0
1.0
1
1.0
0.5
1
-1.0
-0.5
0
-1.0
-1.0
0
0.5
1.0
1
x=[-0.51 1 -1 -1 0.5;-1 1 0.5 -0.5 -1 1];
d=[0 1 1 0 0 1];
plotpv(x,d)
Una vez se proyectan los puntos sobre un plano XY, podemos observar que el problema es linealmente separable y puede usarse el perceptrón.
Se procede entonces a implementar el código en MATLAB que permite entrenar la red que solucione este problema.
red=newp([-1 1;-1 1],1)%para hardlims se especificared=newp([0 1;0
1],1,'hardlims)
red.iw{1,1}=[1 1]; %Carga a la red el vector de pesos inicial
red.b{1}=2.5; %Carga a la red el vector de bias
pesos=red.iw{1,1}; %Llevar a la vble pesos el vector de pesos inicial
bias=red.b{1}; %Llevar a la vble pesos el vector de bias
plotpc(pesos,bias) %Grafica línea de separación que tiene el perceptronred=train(red,x,d) %grafica la evolucion del error
Esta grafica indica al programador que el entrenamiento de la red ha sido terminado con éxito entregando un error 0 (cero), es decir, que la salida siempre será la deseada de acuerdo a los patrones de entrada; además indica que la red fue entrenada en dos epochs o ciclos de entrenamiento.
figure;
pesos=red.iw{1,1};
bias=red.b{1};plotpv(x,d)
plotpc(pesos,bias) %grafica de línea clasificadora
Una vez realizado este procedimiento se realizan pruebas que comprueben que la red ha sido correctamente entrenada.
in_prueba=[-1;-1]%patron de prueba
a=sim(red,in_prueba)
in_prueba =
-1
-1
a =
0
in_prueba=[1;0.5]%patron de prueba
a=sim(red,in_prueba)
in_prueba =
1.0
0.5a =
1
2. Diseñe y entrene usando el toolbox de redes neuronales del MATLAB un Perceptron que pueda identificar los números del 0 al 9 donde cada número se puede definir en una matriz de 5*3, por ejemplo el número 2 sería :
1 1 1
0 0 1
1 1 1
1 0 0
1 1 1
x=[1 0 1 1 1 1 1 1 1 1;1 0 1 1 0 1 1 1 1 1;1 1 1 1 1 1 1 1 1 1;1 0 0 0 1 1 1 0 1 1;0 0 0 0 0 0 0 0 0 0;1 1 1 1 1 0 0 1 11;1 0 1 1 1 1 1 0 1 1;0 0 1 1 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 1;1 0 1 0 0 0 1 0 1 0;0 0 0 0 0 0 0 0 0 0;1 1 0 1 1 1 1 1 1 1;1 0 1 1 0 1 1 0 1 0;1 0 1 1 0 1 1 0 1 0;1 1 1 1 1 1 1 1 1 1];
d=[0 0 0 0 0 0 0 0 0 1;0 0 0 0 0 0 0 0 1 0;0 0 0 0 0 0 0 1 0 0;0 0 0 0 0 0 1 0 0 0;0 0 0 0 0 1 0 0 0 0;0 0 0 0 1 0 0 0 0 0;0 0 0 1 0 0 0 0 0 0;0 0 1 0 0 0 0 0 0 0;0 1 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0];red=newp([0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1],10);%para hardlims se especifica red=newp([0 1;0 1],1,'hardlims)
red=train(red,x,d);% Entrenamiento de la red
%validacion de la red (patron de prueba el # 9)
v=[1 1 1 1 0 1 1 1 1 0 0 1 0 0 1];% Vector de prueba tipo fila
prueba=v';% Vector de prueba convertido a tipo Columna
a=sim(red,prueba);% Valor...
Regístrate para leer el documento completo.