Download - 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Transcript
Page 1: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Aplicacion de Redes Neuronales enMATLAB

Simulacion de Procesos IndustrialesTrabajo Practico # 5

Jose Eduardo Laruta Espejo

Resumen

El presente trabajo trata acerca de las aplicaciones basicas de lasredes neuronales, en especıfico el perceptron, para aproximar funcioneslogicas combinacionales, explorando las ventajas y limitaciones de unared de un perceptron simple y analizando aspectos acerca de la separa-bilidad lineal de los problemas. Tambien analizamos los algoritmos deaprendizaje de dichas redes y su rendimiento. Se implementan 3 fun-ciones logicas combinacionales basicas en el software MATLAB con elfin de analizar los resultados del entrenamiento de dicha red.

1. DESCRIPCION DEL PROBLEMA

1.1. Funciones logicas AND, OR y XOR

Se intenta implementar la funcion AND en un perceptron simple con 2entradas y una salida, siguiendo con la tabla de verdad propia de la funcionmostrada en 1.1.

x1 x2 x1 ∧ x20 0 00 1 01 0 01 1 1

Cuadro 1: Tabla de verdad de la funcion AND

1

Page 2: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Luego, tambien procederemos a implementar la funcion OR inclusivo ennuestra red neuronal, cuya tabla de verdad se muestra a continuacion:

x1 x2 x1 ∨ x20 0 00 1 11 0 11 1 1

Cuadro 2: Tabla de verdad de la funcion OR

Y por ultimo, tenemos que implementar o aproximar la funcion OR- Ex-clusivo o XOR mediante una red neuronal, vemos su tabla de verdad:

x1 x2 x1⊕ x20 0 00 1 11 0 11 1 0

Cuadro 3: Tabla de verdad de la funcion XOR

Para implementar esta funcion utilizaremos un perceptron simple cuyoesquema y estructura se muestra a continuacion:

Figura 1: Estructura del percepttron simple

2

Page 3: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

1.2. Aprendizaje de la red

El aprendizaje de una red neuronal se manifiesta a traves del cambioy ajuste de los pesos sinapticos de sus entradas y de su nivel de umbral.Iniciando con valores aleatorios, si no se conoce nada del sistema, para luego,mediante pruebas sucesivas con patrones de entrenamiento, se logre ajustardichos pesos para obtener el comportamiento deseado [2].

Para el entrenamiento (ajuste de pesos) utilizamos en siguiente algoritmo:

1. Inicializacion. Asignar a los pesos w1, w2, w3, . . . , wn y el umbral θvalores aleatorios en el rango [−0,5, 0,5].

2. Activacion. Activar el perceptron aplicando las entradas x1(p).x2(p) . . . , xn(p)y la salida deseada Yd(p), calcular la salida en la iteracion p = 1:

Y (p) = step

[n∑

i=1

xi(p)wi(p)− θ

]

donde n es el numero de entradas al perceptron y step es una funcionde activacion tipo escalon.

3. Entrenamiento de ponderaciones Adaptar los pesos del perceptron:

wi(p+ 1) = wi(p) + ∆wi(p)

donde ∆wi(p) es la correccion del peso en la iteracion p. la correccionse calcula mediante la regla “delta”:

∆wi(p) = α× xi(p)× e(p)

4. Iteracion. Incrementamos la iteracion p en 1 y volvemos al paso 2 yrepetimos hasta que exista la convergencia.

2. IMPLEMENTACION EN MATLAB

Para la implementacion y simulacion de nuestras redes neuronales uti-lizaremos el toolbox de redes neuronales del software especializado MATLAB

3

Page 4: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

2.1. Funcion AND

En primer lugar ingresamos los patrones de entrada con 2 variables deentrada y su correspondiente salida en matrices y las visualizamos en unagrafica:

P=[0 0 1 1 ; 0 1 0 1 ] ;T=[0 0 0 1 ] ;p lotpv (P,T)

Figura 2: Patrones de entrada y salidas deseadas

Luego procedemos a crear la red neuronal del perceptron simple:

net=newp ( [ 0 1 ; 0 1 ] , 1 ) ;

y luego simulamos la red para ver los pesos:

a=sim ( net ,P)

Figura 3: Red sin entrenamiento

4

Page 5: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Despues de inicializar todas las herramientas procedemos a entrenar lared neuronal:

net=t r a i n ( net ,P,T) ;p lo tpc ( net .IW{1 ,1} , net . b{1})

Figura 4: Grafica de entrenamiento

y simulamos su comprtamiento con los nuevos pesos que se ajustaronluego del entrenamiento:

a=sim ( net ,P)

Figura 5: Resultados, pesos y umbral

5

Page 6: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

2.2. Funcion OR

Como en el anterior caso, ingresamos los patrones de entrada con 2 vari-ables de entrada y su correspondiente salida en matrices y las visualizamosen una grafica:

P=[0 0 1 1 ; 0 1 0 1 ] ;T=[0 1 1 1 ] ;p lotpv (P,T)

Figura 6: Patrones de entrada y salidas deseadas

Luego procedemos a crear la red neuronal del perceptron simple:

net=newp ( [ 0 1 ; 0 1 ] , 1 ) ;

y luego simulamos la red para ver los pesos:

a=sim ( net ,P)

Despues de inicializar todas las herramientas procedemos a entrenar lared neuronal:

net=t r a i n ( net ,P,T) ;p lo tpc ( net .IW{1 ,1} , net . b{1})

6

Page 7: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Figura 7: Red sin entrenamiento

Figura 8: Grafica de entrenamiento

y simulamos su comprtamiento con los nuevos pesos que se ajustaronluego del entrenamiento:

a=sim ( net ,P)

2.3. Funcion XOR

Esta funcion no se puede implementar por un perceptron simple dada lapropiedad de la no separabilidad lineal, tal como vemos en el grafico de lospatrones de entrada y salida:

Entonces procedemos a utilizar una red de perceptrones multicapa feed-forward:

P=[0 0 1 1 ;0 1 0 1 ] ;T=[0 1 1 0 ] ;

7

Page 8: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Figura 9: Resultados, pesos y umbral

Figura 10: Funcion XOR

plotpv (P,T)

net=newff (minmax(P) , [ 2 , 1 ] , { ’ t a n s i g ’ , ’ p u r e l i n ’ } , ’ t r a ingd ’ )

simulamos su comportamiento inicial:luego definimos algunos parametros para el entrenamiento de la red:

net . trainParam . show=50;net . trainparam . l r =0.05;net . trainParam . epochs =30000;net . trainParam . goa l =0.001;

8

Page 9: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Figura 11: Xomportamiento inicial de la red

finalmente entrenamos nuestra red dados los anteriores parametros.

Figura 12: Graficas del entrenamiento

9

Page 10: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Figura 13: Comportamiento final de la red

3. CONCLUSIONES

Pudimos implementar y simular las redes neuronales gracias al softwarematlab mediante su toolbox de redes neuronales artificiales.

Observamos el fenomeno de la separabilidad lineal con una funcion XORla cual no puede implementarse en una sola neurona. Para realizar esta tu-vimos que implementar una red multicapa con varias neuronas arrojando losresultados que se ven en la figuta(13).

10

Page 11: 127025958-aplicaciones-de-redes-neuronales-en-MATLAB.pdf

Referencias

[1] G. Choque, “Redes Neuronales Artificiales, Aplicaciones en MATLAB”Centro de Publicaciones de la Facultad de Ciencias Puras y Naturales -UMSA

[2] M. Amestegui, “Apuntes sobre Redes Neuronales Artificiales”

11