Está en la página 1de 28

Sistemas Inteligentes y Redes Neuronales (SI01)

Laboratorio: 4
La RNA Perceptron

Ing. Jos C. Bentez P.

Las RNA Perceptron


l l l l l Objetivo Fundamento terico: La RNA Perceptron. Implementacin de la RNA Perceptron. Conclusiones. Tarea.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Objetivo
p p p p

Revisar los conceptos de las RNA Perceptron. Mediante el Toolbox de Redes Neuronales de MatLab se implementara algunas Perceptron. Identificar el proceso de implementacin de una RNA. Al final del laboratorio el alumno debe presentar un documento grafico en word con el desarrollo del laboratorio y adjuntar sus fuentes que le han ayudado a fortalecer sus destrezas en el presente laboratorio. Presentar las fuentes y el informe en USB.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Las RNA Perceptron


El Perceptron es una RNA que est en capacidad de realizar separaciones lineales veamos como se puede realizar un problema de estos con ayuda del toolbox de redes neuronales del MATLAB Entre las funciones utilizadas por el MATLAB para el Perceptron se tienen: NEWP Crea el Perceptron. PLOTPV - Grafica los vectores de entrada cuando la salida es 1/0. PLOTPC - Grafica la lnea de clasificacin que genera el Perceptron. TRAIN - Entrena la red con el algoritmo del Perceptron. SIM - Simula o prueba la red.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Las RNA Perceptron


1. Grfica de patrones de aprendizaje: Los patrones de aprendizaje se utilizarn para entrenar las redes neuronales. En Matlab:
>> X=[1 1 0 0; 1 0 1 0]; %Posibles entradas en la RNA >> D=[1 0 0 0] %Es el resultado de la funcin lgica AND >> plotpv(X,D) %Grafica los patrones de aprendizaje.

Nos mostrar el grfico mostrado. Como se puede observar, MATLAB grafica los puntos dados en el vector X y le asigna un smbolo para la clasificacin dependiendo de la salida deseada, en esta caso: Para salida deseada cero (0) = o Para salida deseada uno (1) = +
5

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Las RNA Perceptron


2. El problema de funcin lgica AND La funcin lgica se define como: X=[1 1 0 0; 1 0 1 0] % Las dos variables lgicas. D=[1 0 0 0] % El resultado de hacer AND con las dos variables lgicas Solucin: Pasos para resolver este problema con el MATLAB : a. Definicin del problema b. Inicializacin de la RNA c. Entrenamiento de la RNA d. Validacin de la RNA

D
6

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Las RNA Perceptron


a. Definicin del problema Se debe proporcionar a la RNA la informacin necesaria para que puede llevar la tarea con xito. Se debe definir los patrones de aprendizaje de la RNA que se van a utilizar en el proceso de entrenamiento. En MATLAB esto se hace definiendo dos matrices una para las entradas (X) y otra para las salidas (D) donde cada patrn de aprendizaje se define por columnas. En Matlab: >> X=[0 0 1 1 ; 0 1 0 1 ] ; % Definicin de la funcin lgica AND >> D=[0 0 0 1] ; %Las salidas Para ver la grfica de estos patrones se usa el comando plotpv >> plotpv(X,D)

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Las RNA Perceptron


La grfica resultante es la que se muestra y corresponde al patrn de aprendizaje:

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

Las RNA Perceptron


b. Inicializacin de la red neuronal Ahora se crea la RNA, para el caso del Perceptron se usa la funcin newp de la siguiente manera: >> red = newp([0 1;0 1],1) Donde: red = objeto donde se va almacenar la red creada por el MATLAB [0 1;0 1] = Rango del valor de la entrada de la RNA. El nmero de filas de esta matriz lo utilizar MATLAB para definir el nmero de entradas que tiene la RNA. 1 = Nmero de neuronas que tiene la red neuronal en la capa de salida. Para mayor informacin: En Matlab: >> help newp
NET = NEWP(P,T,TF,LF) takes these inputs, P - RxQ matrix of Q1 representative input vectors. T - SxQ matrix of Q2 representative target vectors. TF - Transfer function, default = 'hardlim'. LF - Learning function, default = 'learnp'. Returns a new perceptron. The transfer function TF can be HARDLIM or HARDLIMS. The learning function LF can be LEARNP or LEARNPN.
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P. 9

Las RNA Perceptron


Ahora se proceder a generar unos pesos iniciales a la red, este paso no es necesario hacerlo, pero permite generar un Perceptron con una superficie de separacin conocida. >> red.iw{1,1}=[1 1]; >> red.b{1}=0.5; >> Pesos=red.iw{1,1}; >> Bias=red.b{1}; Con el siguiente comando se grafica la lnea de separacin que tiene el Perceptron >>plotpc(Pesos,Bias) Este comando agrega la recta clasificadora al grfico generado por plotpv, la grfica quedara as:
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P. 10

Las RNA Perceptron


c. Entrenamiento de la RNA El entrenamiento de la red se realiza con el comando train el cual implementa un entrenamiento con la regla de aprendizaje tipo Perceptron. En MATLAB: >> red = train(red,X,D) Donde red = red a ser entrenada por el MATLAB. X = Entrada de los patrones de aprendizaje. D = Salida deseada de los patrones de aprendizaje.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

11

Las RNA Perceptron


Al entrenar MATLAB nos grafica la manera como va evolucionando error al transcurrir las iteraciones.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

12

Las RNA Perceptron


Cuando se ha entrenado la red, se puede visualizar en la grfica donde se muestra la lnea clasificadora que la red ha llevado a cabo la tarea. En Matlab: >> figure; >> Pesos=red.iw{1,1}; >> Bias=red.b{1}; >> plotpv(X,D) >> plotpc(Pesos,Bias)

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

13

Las RNA Perceptron


d. Validacin de la RNA Luego de tener una RNA entrenada se procede a validar si el comportamiento de la misma es correcto o no, para esto se usa el comando sim como se muestra a continuacin: >> prueba1=[0;0]; % Patrn de prueba >> % Prueba de la red ante el patrn de prueba prueba1. W son los pesos y b el bias de la red entrenada. >> a = sim(red, prueba1) a= 0 >> prueba2=[1;1]; % Otro patrn de prueba prueba2. >> a = sim(red, prueba2) a= 1 Como se puede observar el comportamiento de la red es el adecuado por lo que se da por finalizado el entrenamiento.
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P. 14

Las RNA Perceptron


Mostrando la clasificacin En Matlab: >> red.iw{1,1} % Nuevos Pesos ans = 2 1 >> red.b{1} %Nuevo Bias ans = -2.5000 >> plotpv(X,D) >> plotpc(Pesos,Bias) X1 0 0 1 1 X2 0 1 1 1 D 0 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

15

Las RNA Perceptron


Mostrando la clasificacin

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

16

Las RNA Perceptron


3. Un problema de clasificacin. La funcin se define como: X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Pasos para resolver este problema con el MATLAB : a. Definicin del problema b. Inicializacin de la RNA c. Entrenamiento de la RNA d. Validacin de la RNA

D
17

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

a. Definicin del problema La funcin se define como: X=[0.1 0.2 -0.9 -0.7 0.5; 0.2 0.1 0.8 -0.8 -0.5] % Las entradas de la RNA. D=[1 1 1 0 0; 1 1 0 0 1] % El resultado deseado de la RNA. En Matlab: >> X=[0.1 0.2 -0.9 -0.7 0.5; 0.2 0.1 0.8 -0.8 -0.5] >> D=[1 1 1 0 0; 1 1 0 0 1] >> plotpv(X,D)

Las RNA Perceptron


X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

18

Las RNA Perceptron


b. Inicializacin de la RNA En Matlab: >> red=newp([-0.9 0.5;-0.8 0.8],2); X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

19

Las RNA Perceptron


c. Entrenamiento de la RNA En Matlab: >> red=train(red,X,D); Mostrar los pesos y las bias calculados: >> red.iw{1,1} ans = 0.8000 1.0000 2.2000 -0.3000 >> red.b{1} ans = 0 0 >> X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

20

Las RNA Perceptron


d. Validacin de la RNA En Matlab: >> prueba1=[0.1;0,2] >> a=sim(red, prueba1) a= 1 1 >> prueba2=[-0.9;0,8] >> b=sim(red, prueba2) b= 1 0 >> prueba3=[-0.5;0,2] >> a=sim(red, prueba3) c= 0 0 X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

21

Las RNA Perceptron


Mostrando la clasificacin En Matlab: >> Pesos=red.iw{1,1} Pesos = 0.8000 1.0000 2.2000 -0.3000 >> Bias=red.b{1} Bias = 0 0 >> plotpc(Pesos,Bias) X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

22

Las RNA Perceptron


Mostrando la clasificacin X1 0.1 0.2 -0.9 -0.7 0.5 X2 D1 0.2 1 0.1 1 0.8 1 -0.8 0 -0.5 0 D2 1 1 0 0 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

23

Las RNA Perceptron - Tarea


1. Graficar los patrones de aprendizaje de las funciones lgicas: OR NOT XOR CONDICIONAL LA BICONDICIONAL Graficar los patrones de aprendizaje de: X1 X2 D1 D2 -0.5 -1.0 0 1 1.0 1.0 1 1 1.0 0.5 1 0 -1.0 -0.5 0 0 -1.0 -1.0 0 1 0.5 1.0 1 1

2.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

24

Las RNA Perceptron - Tarea


3. Con ayuda del toolbox de redes neuronales del MATLAB, clasificar usando un Perceptron el siguiente patrn de aprendizaje. 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 Trate de resolver el problema de la XOR con una RNA Perceptron, a que conclusin llega?.

4.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

25

Las RNA Perceptron - Tarea


5. Disee y entrene usando el toolbox de redes neuronales del MATLAB un Perceptron que pueda identificar los nmeros del 0 al 9 donde cada nmero se puede definir en una matriz de 5*3, por ejemplo el nmero 2 sera : 111 001 111 100 111 Modifique el programa del Perceptron presentado de tal forma que permita trabajar un Perceptron de N neuronas en la capa de entrada y de M neuronas en la capa de salida, pruebe el Perceptron codificado con el ejercicio anterior.

6.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P.

26

Informe de Laboratorio
p p

p p p

El Informe de Laboratorio es un documento grfico en lo posible y es redactado en Word con el desarrollo del laboratorio. Niveles de Informe: p Primer nivel: Observaciones. Imgenes con comentarios cortos. Redactar al ir desarrollando el laboratorio. (Requiere desarrollar el laboratorio). p Segundo nivel: Conclusiones. Redactar al terminar el laboratorio.(Requiere haber desarrollado el laboratorio). p Tercer Nivel: Recomendaciones. (Requiere lectura de otras fuentes). Dentro de su Carpeta Personal del Dropbox crear una carpeta para el laboratorio 4 con el siguiente formato: SIRN_PaternoM_Lab4 Adjuntar fuentes que le han ayudado en esta carpeta creada. Las fuentes deben conservar el nombre original de archivo y se debe agregar _L4 al final. Presentar el Informe de Laboratorio 4 en esta carpeta creada.
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P. 27

Laboratorio 4. Las RNA Perceptron

utpsirn.blogspot.com
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. Jos C. Bentez P. 28

Blog del curso: