Utp sirn_sl2 la rna perceptron

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

Transcript of Utp sirn_sl2 la rna perceptron

Page 1: Utp sirn_sl2 la rna perceptron

Ing. José C. Benítez P.

Sistemas Inteligentes

y Redes Neuronales

(SI01)

La RNA Perceptron

Laboratorio: 2

Page 2: Utp sirn_sl2 la rna perceptron

� Objetivo

� Fundamento teórico: La RNA Perceptron.

� Implementación de la RNA Perceptron.

� Conclusiones.

� Tarea.

Las RNA Perceptron

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

Page 3: Utp sirn_sl2 la rna perceptron

Objetivo

� Revisar los conceptos de las RNA Perceptron.

� Mediante el Toolbox de Redes Neuronales de MatLab se

implementara algunas Perceptron.

� Identificar el proceso de implementación 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.

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

Page 4: Utp sirn_sl2 la 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 línea de clasificación que genera el Perceptron.

� TRAIN - Entrena la red con el algoritmo del Perceptron.

� SIM - Simula o prueba la red.

Las RNA Perceptron

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

Page 5: Utp sirn_sl2 la rna perceptron

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

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) = o

Para salida deseada uno (1) = +

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

Page 6: Utp sirn_sl2 la rna perceptron

2. El problema de función lógica AND

La 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

b. Inicialización de la RNA

c. Entrenamiento de la RNA

d. Validación de la RNA

Las RNA Perceptron

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

X D

Page 7: Utp sirn_sl2 la rna perceptron

a. Definición del problema

Se 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

(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)

Las RNA Perceptron

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

Page 8: Utp sirn_sl2 la rna perceptron

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_sl2 la rna perceptron

b. Inicialización de la red neuronal

Ahora se crea la RNA, para el caso del Perceptron se usa la función 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 número de filas de

esta matriz lo utilizará MATLAB para definir el número de

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

Las RNA Perceptron

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_sl2 la 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 separación 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 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í:

Las RNA Perceptron

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

Page 11: Utp sirn_sl2 la 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.

Las RNA Perceptron

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

Page 12: Utp sirn_sl2 la rna perceptron

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_sl2 la rna perceptron

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};

>> plotpv(X,D)

>> plotpc(Pesos,Bias)

Las RNA Perceptron

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

Page 14: Utp sirn_sl2 la rna perceptron

d. Validación 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 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)

a =

0

>> prueba2=[1;1]; % Otro patrón 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.

Las RNA Perceptron

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

Page 15: Utp sirn_sl2 la rna perceptron

Mostrando la clasificación

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)

Las RNA Perceptron

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

X1 X2 D

0 0 0

0 1 0

1 1 0

1 1 1

Page 16: Utp sirn_sl2 la rna perceptron

Mostrando la clasificación

Las RNA Perceptron

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

Page 17: Utp sirn_sl2 la rna perceptron

3. Un problema de clasificación.

La función se define como:

Pasos para resolver este problema con el MATLAB :

a. Definición del problema

b. Inicialización de la RNA

c. Entrenamiento de la RNA

d. Validación de la RNA

Las RNA Perceptron

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

X D

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 18: Utp sirn_sl2 la rna perceptron

a. Definición del problema

La 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]

>> plotpv(X,D)

Las RNA Perceptron

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

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 19: Utp sirn_sl2 la rna perceptron

b. Inicialización de la RNA

En Matlab:

>> red=newp([-0.9 0.5;-0.8 0.8],2);

Las RNA Perceptron

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

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 20: Utp sirn_sl2 la 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

>>

Las RNA Perceptron

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

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 21: Utp sirn_sl2 la rna perceptron

d. Validación 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

Las RNA Perceptron

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

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 22: Utp sirn_sl2 la rna perceptron

Mostrando la clasificación

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)

Las RNA Perceptron

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

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 23: Utp sirn_sl2 la rna perceptron

Mostrando la clasificación

Las RNA Perceptron

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

X1 X2 D1 D2

0.1 0.2 1 1

0.2 0.1 1 1

-0.9 0.8 1 0

-0.7 -0.8 0 0

0.5 -0.5 0 1

Page 24: Utp sirn_sl2 la rna perceptron

Las RNA Perceptron - Tarea

24

1. Graficar los patrones de aprendizaje de las funciones lógicas:

• OR

• NOT

• XOR

• CONDICIONAL

• LA BICONDICIONAL

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

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

Page 25: Utp sirn_sl2 la rna perceptron

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

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.

Las RNA Perceptron - Tarea

Page 26: Utp sirn_sl2 la rna perceptron

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 1

0 0 1

1 1 1

1 0 0

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

Las RNA Perceptron - Tarea

Page 27: Utp sirn_sl2 la rna perceptron

Indicaciones

� Terminado este laboratorio, la próxima clase se debe

presentar el informe final de laboratorio completo.

� Las fuentes y el informe en USB; y sólo el informe

impreso. Son fuentes los archivos *.ppt, *, pdf y videos

que le han ayudado a realizar su informe y laboratorio.

� Presentar el informe de laboratorio con el desarrollo

de todos los ejercicios, tareas y preguntas.

� El informe debe ser básicamente un documento

grafico en lo posible.

� En el Informe Final el alumno debe precisar cuales son

sus conclusiones aprendidas en este Laboratorio.

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

Page 28: Utp sirn_sl2 la rna perceptron

Laboratorio 2. Las RNA Perceptron

http://utpsirn.blogspot.com

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