utp sirn sl4 la rna perceptron 2012-2

28
Sistemas Inteligentes y Redes Neuronales (SI01) Ing. José C. Benítez P. (SI01) La RNA Perceptron Laboratorio: 4

Upload: jcbenitezp

Post on 14-Jun-2015

2.888 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Utp sirn sl4 la rna perceptron 2012-2

Sistemas Inteligentesy Redes Neuronales

(SI01)

Ing. José C. Benítez P.

(SI01)

La RNA Perceptron

Laboratorio: 4

Page 2: Utp sirn sl4 la rna perceptron 2012-2

l Objetivol Fundamento teórico: La RNA Perceptron.l Implementación de la RNA Perceptron.l Conclusiones.l Tarea.

Las RNA Perceptron

Tarea.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P. 2

Page 3: Utp sirn sl4 la rna perceptron 2012-2

Objetivo

p Revisar los conceptos de las RNA Perceptron.p Mediante el Toolbox de Redes Neuronales de MatLab se

implementara algunas Perceptron.p Identificar el proceso de implementación de una RNA.

Al final del laboratorio el alumno debe presentar unp Al final del laboratorio el alumno debe presentar undocumento grafico en word con el desarrollo dellaboratorio y adjuntar sus fuentes que le han ayudado afortalecer sus destrezas en el presente laboratorio.

p Presentar las fuentes y el informe en USB.

3Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 4: Utp sirn sl4 la rna perceptron 2012-2

§ 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.

Las RNA Perceptron

ü PLOTPV - Grafica los vectores de entrada cuando la salida es 1/0.ü PLOTPC - Grafica la línea de clasificación que genera el Perceptron.ü TRAIN - Entrena la red con el algoritmo del Perceptron.ü SIM - Simula o prueba la red.

4Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 5: Utp sirn sl4 la rna perceptron 2012-2

1. Gráfica de patrones de aprendizaje:Los patrones de aprendizaje se utilizarán 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 función lógica AND

>> plotpv(X,D) %Grafica los patrones de aprendizaje.

Nos mostrará el gráfico mostrado.

Las RNA Perceptron

Nos mostrará el gráfico mostrado.

5

Como se puede observar, MATLAB grafica los puntos dados en el vector X y le asigna un símbolo para la clasificación dependiendo de la salida deseada, en esta caso:Para salida deseada cero (0) = oPara salida deseada uno (1) = +

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 6: Utp sirn sl4 la rna perceptron 2012-2

2. El problema de función lógica ANDLa función lógica se define como:X=[1 1 0 0; 1 0 1 0] % Las dos variables lógicas.D=[1 0 0 0] % El resultado de hacer AND con las dos variables lógicas

Solución:Pasos para resolver este problema con el MATLAB :

a. Definición del problema

Las RNA Perceptron

a. Definición del problemab. Inicialización de la RNAc. Entrenamiento de la RNAd. Validación de la RNA

6Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

X D

Page 7: Utp sirn sl4 la rna perceptron 2012-2

a. Definición del problemaSe debe proporcionar a la RNA la información 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

Las RNA Perceptron

En MATLAB esto se hace definiendo dos matrices una para las entradas (X) y otra para las salidas (D) donde cada patrón de aprendizaje se define por columnas.En Matlab:

>> X=[0 0 1 1 ; 0 1 0 1 ] ; % Definición de la función lógica AND>> D=[0 0 0 1] ; %Las salidasPara ver la gráfica de estos patrones se usa el comando plotpv>> plotpv(X,D)

7Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 8: Utp sirn sl4 la rna perceptron 2012-2

La gráfica resultante es la que se muestra y corresponde al patrón de aprendizaje:

Las RNA Perceptron

8Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 9: Utp sirn sl4 la rna perceptron 2012-2

b. Inicialización de la red neuronalAhora se crea la RNA, para el caso del Perceptron se usa la función newpde 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 número de filas de

esta matriz lo utilizará MATLAB para definir el número de entradas que tiene la RNA.

Las RNA Perceptron

entradas que tiene la RNA.1 = Número de neuronas que tiene la red neuronal en la capa de salida.

Para mayor información:En Matlab:>> help newp

9Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

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.

Page 10: Utp sirn sl4 la rna perceptron 2012-2

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 separación conocida.>> red.iw{1,1}=[1 1];>> red.b{1}=0.5;>> Pesos=red.iw{1,1};

Las RNA Perceptron

>> Pesos=red.iw{1,1};>> Bias=red.b{1};Con el siguiente comando se grafica la línea de separación que tiene el Perceptron>>plotpc(Pesos,Bias)Este comando agrega la recta clasificadora al gráfico generado por plotpv, la gráfica quedaría así:

10Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 11: Utp sirn sl4 la rna perceptron 2012-2

c. Entrenamiento de la RNAEl 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)

Las RNA Perceptron

>> red = train(red,X,D)Dondered = red a ser entrenada por el MATLAB.X = Entrada de los patrones de aprendizaje.D = Salida deseada de los patrones de aprendizaje.

11Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 12: Utp sirn sl4 la rna perceptron 2012-2

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

Las RNA Perceptron

12Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 13: Utp sirn sl4 la rna perceptron 2012-2

Cuando se ha entrenado la red, se puede visualizar en la gráfica donde se muestra la línea clasificadora que la red ha llevado a cabo la tarea.En Matlab:>> figure;>> Pesos=red.iw{1,1};>> Bias=red.b{1};

Las RNA Perceptron

>> Bias=red.b{1};>> plotpv(X,D)>> plotpc(Pesos,Bias)

13Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 14: Utp sirn sl4 la rna perceptron 2012-2

d. Validación de la RNALuego 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 continuación:>> prueba1=[0;0]; % Patrón de prueba>> % Prueba de la red ante el patrón de prueba “prueba1”. W son los pesos y b el bias de la red entrenada.>> a = sim(red, prueba1)

Las RNA Perceptron

>> a = sim(red, prueba1)a =

0>> prueba2=[1;1]; % Otro patrón de prueba “prueba2”.>> a = sim(red, prueba2)a =

1Como se puede observar el comportamiento de la red es el adecuado por lo que se da por finalizado el entrenamiento.

14Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 15: Utp sirn sl4 la rna perceptron 2012-2

Mostrando la clasificaciónEn Matlab:>> red.iw{1,1} % Nuevos Pesosans =

2 1>> red.b{1} %Nuevo Biasans =

-2.5000

Las RNA PerceptronX1 X2 D0 0 00 1 01 1 01 1 1

-2.5000>> plotpv(X,D)>> plotpc(Pesos,Bias)

15Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 16: Utp sirn sl4 la rna perceptron 2012-2

Mostrando la clasificación

Las RNA Perceptron

16Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 17: Utp sirn sl4 la rna perceptron 2012-2

3. Un problema de clasificación.La función se define como:

Pasos para resolver este problema con el MATLAB :

Las RNA Perceptron

X1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

Pasos para resolver este problema con el MATLAB :a. Definición del problemab. Inicialización de la RNAc. Entrenamiento de la RNAd. Validación de la RNA

17Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

X D

Page 18: Utp sirn sl4 la rna perceptron 2012-2

a. Definición del problemaLa función 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]

Las RNA PerceptronX1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

>> D=[1 1 1 0 0; 1 1 0 0 1] >> plotpv(X,D)

18Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 19: Utp sirn sl4 la rna perceptron 2012-2

b. Inicialización de la RNAEn Matlab:>> red=newp([-0.9 0.5;-0.8 0.8],2);

Las RNA PerceptronX1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

19Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 20: Utp sirn sl4 la rna perceptron 2012-2

c. Entrenamiento de la RNAEn Matlab:>> red=train(red,X,D);Mostrar los pesos y las bias calculados:>> red.iw{1,1}ans =

0.8000 1.0000

Las RNA PerceptronX1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

0.8000 1.00002.2000 -0.3000

>> red.b{1}ans =

00

>>

20Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 21: Utp sirn sl4 la rna perceptron 2012-2

d. Validación de la RNAEn Matlab:>> prueba1=[0.1;0,2]>> a=sim(red, prueba1)a =

11

>> prueba2=[-0.9;0,8]

Las RNA PerceptronX1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

>> prueba2=[-0.9;0,8]>> b=sim(red, prueba2)b =

10

>> prueba3=[-0.5;0,2]>> a=sim(red, prueba3)c =

00

21Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 22: Utp sirn sl4 la rna perceptron 2012-2

Mostrando la clasificaciónEn Matlab:>> Pesos=red.iw{1,1}Pesos =

0.8000 1.00002.2000 -0.3000

>> Bias=red.b{1}Bias =

Las RNA PerceptronX1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

Bias =00

>> plotpc(Pesos,Bias)

22Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 23: Utp sirn sl4 la rna perceptron 2012-2

Mostrando la clasificación

Las RNA Perceptron

X1 X2 D1 D20.1 0.2 1 10.2 0.1 1 1-0.9 0.8 1 0-0.7 -0.8 0 00.5 -0.5 0 1

23Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 24: Utp sirn sl4 la rna perceptron 2012-2

Las RNA Perceptron - Tarea

1. Graficar los patrones de aprendizaje de las funciones lógicas:• OR• NOT• XOR• CONDICIONAL• LA BICONDICIONAL

2. Graficar los patrones de aprendizaje de:

24

2. Graficar los patrones de aprendizaje de:X1 X2 D1 D2-0.5 -1.0 0 11.0 1.0 1 11.0 0.5 1 0-1.0 -0.5 0 0-1.0 -1.0 0 10.5 1.0 1 1

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 25: Utp sirn sl4 la rna perceptron 2012-2

3. Con ayuda del toolbox de redes neuronales del MATLAB, clasificar usando un Perceptron el siguiente patrón de aprendizaje.X1 X2 D-0.5 -1.0 01.0 1.0 11.0 0.5 1-1.0 -0.5 0

Las RNA Perceptron - Tarea

-1.0 -0.5 0-1.0 -1.0 00.5 1.0 1

4. Trate de resolver el problema de la XOR con una RNA Perceptron, ¿a que conclusión llega?.

25Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 26: Utp sirn sl4 la rna perceptron 2012-2

5. 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 10 0 11 1 1

Las RNA Perceptron - Tarea

1 1 11 0 01 1 1

6. 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.

26Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.

Page 27: Utp sirn sl4 la rna perceptron 2012-2

Informe de Laboratoriop El Informe de Laboratorio es un documento gráfico en lo posible

y es redactado en Word con el desarrollo del laboratorio.p Niveles de Informe:

p Primer nivel: Observaciones. Imágenes 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).laboratorio.(Requiere haber desarrollado el laboratorio).

p Tercer Nivel: Recomendaciones. (Requiere lectura de otras fuentes).

p Dentro de su Carpeta Personal del Dropbox crear una carpeta para el laboratorio 4 con el siguiente formato:

SIRN_PaternoM_Lab4 p Adjuntar fuentes que le han ayudado en esta carpeta creada.p Las fuentes deben conservar el nombre original de archivo y se

debe agregar _L4 al final.p Presentar el Informe de Laboratorio 4 en esta carpeta creada.

Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P. 27

Page 28: Utp sirn sl4 la rna perceptron 2012-2

Laboratorio 4. Las RNA Perceptron

Blog del curso:utpsirn.blogspot.com

28Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.