aplicaciones de redes neuronales en MATLAB

February 21, 2017 | Author: José Laruta | Category: N/A
Share Embed Donate


Short Description

Download aplicaciones de redes neuronales en MATLAB...

Description

Aplicaci´ on de Redes Neuronales en MATLAB Simulaci´on de Procesos Industriales Trabajo Pr´actico # 5 Jos´e Eduardo Laruta Espejo Resumen El presente trabajo trata acerca de las aplicaciones b´asicas de las redes neuronales, en espec´ıfico el perceptron, para aproximar funciones l´ ogicas combinacionales, explorando las ventajas y limitaciones de una red de un perceptron simple y analizando aspectos acerca de la separabilidad lineal de los problemas. Tambien analizamos los algoritmos de aprendizaje de dichas redes y su rendimiento. Se implementan 3 funciones l´ ogicas combinacionales b´asicas en el software MATLAB con el fin de analizar los resultados del entrenamiento de dicha red.

1. 1.1.

´ DEL PROBLEMA DESCRIPCION Funciones l´ ogicas AND, OR y XOR

Se intenta implementar la funci´on AND en un perceptron simple con 2 entradas y una salida, siguiendo con la tabla de verdad propia de la funci´on mostrada en 1.1. x1 x2 x1 ∧ x2 0 0 0 0 1 0 1 0 0 1 1 1 Cuadro 1: Tabla de verdad de la funci´on AND 1

Luego, tambi´en procederemos a implementar la funci´on OR inclusivo en nuestra red neuronal, cuya tabla de verdad se muestra a continuaci´on: x1 x2 x1 ∨ x2 0 0 0 0 1 1 1 0 1 1 1 1 Cuadro 2: Tabla de verdad de la funci´on OR Y por u ´ltimo, tenemos que implementar o aproximar la funci´on OR- Exclusivo o XOR mediante una red neuronal, vemos su tabla de verdad: x1 x2 x1 ⊕ x2 0 0 0 0 1 1 1 0 1 1 1 0 Cuadro 3: Tabla de verdad de la funci´on XOR Para implementar esta funci´on utilizaremos un perceptron simple cuyo esquema y estructura se muestra a continuaci´on:

Figura 1: Estructura del percepttron simple

2

1.2.

Aprendizaje de la red

El aprendizaje de una red neuronal se manifiesta a trav´es del cambio y ajuste de los pesos sin´apticos 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 ajustar dichos pesos para obtener el comportamiento deseado [2]. Para el entrenamiento (ajuste de pesos) utilizamos en siguiente algoritmo: 1. Inicializaci´ on. Asignar a los pesos w1 , w2 , w3 , . . . , wn y el umbral θ valores aleatorios en el rango [−0,5, 0,5]. 2. Activaci´ on. Activar el perceptron aplicando las entradas x1 (p).x2 (p) . . . , xn (p) y la salida deseada Yd (p), calcular la salida en la iteraci´on p = 1: " n # X Y (p) = step xi (p)wi (p) − θ i=1

donde n es el n´ umero de entradas al perceptr´on y step es una funci´on de activaci´on tipo escal´on. 3. Entrenamiento de ponderaciones Adaptar los pesos del perceptr´on: wi (p + 1) = wi (p) + ∆wi (p) donde ∆wi (p) es la correcci´on del peso en la iteraci´on p. la correcci´on se calcula mediante la regla “delta”: ∆wi (p) = α × xi (p) × e(p) 4. Iteraci´ on. Incrementamos la iteraci´on p en 1 y volvemos al paso 2 y repetimos hasta que exista la convergencia.

2.

´ EN MATLAB IMPLEMENTACION

Para la implementaci´on y simulaci´on de nuestras redes neuronales utilizaremos el toolbox de redes neuronales del software especializado MATLAB

3

2.1.

Funci´ on AND

En primer lugar ingresamos los patrones de entrada con 2 variables de entrada y su correspondiente salida en matrices y las visualizamos en una gr´afica: P=[0 0 1 1 ; 0 1 0 1 ] ; T=[0 0 0 1 ] ; p l o t p v (P ,T)

Figura 2: Patrones de entrada y salidas deseadas Luego procedemos a crear la red neuronal del perceptron simple: n e t=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

Despues de inicializar todas las herramientas procedemos a entrenar la red neuronal: n e t=t r a i n ( net , P ,T ) ; p l o t p c ( n et .IW{ 1 , 1 } , n et . b {1})

Figura 4: Gr´afica de entrenamiento y simulamos su comprtamiento con los nuevos pesos que se ajustaron luego del entrenamiento: a=sim ( net , P)

Figura 5: Resultados, pesos y umbral

5

2.2.

Funci´ on OR

Como en el anterior caso, ingresamos los patrones de entrada con 2 variables de entrada y su correspondiente salida en matrices y las visualizamos en una gr´afica: P=[0 0 1 1 ; 0 1 0 1 ] ; T=[0 1 1 1 ] ; p l o t p v (P ,T)

Figura 6: Patrones de entrada y salidas deseadas Luego procedemos a crear la red neuronal del perceptron simple: n e t=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 la red neuronal: n e t=t r a i n ( net , P ,T ) ; p l o t p c ( n et .IW{ 1 , 1 } , n et . b {1}) 6

Figura 7: Red sin entrenamiento

Figura 8: Gr´afica de entrenamiento y simulamos su comprtamiento con los nuevos pesos que se ajustaron luego del entrenamiento: a=sim ( net , P)

2.3.

Funci´ on XOR

Esta funci´on no se puede implementar por un perceptron simple dada la propiedad de la no separabilidad lineal, tal como vemos en el gr´afico de los patrones de entrada y salida: Entonces procedemos a utilizar una red de perceptrones multicapa feedforward: P=[0 0 1 1 ; 0 1 0 1 ] ; T=[0 1 1 0 ] ; 7

Figura 9: Resultados, pesos y umbral

Figura 10: Funci´on XOR p l o t p v (P ,T) n e t=n e w f f ( minmax (P ) , [ 2 , 1 ] , { ’ t a n s i g ’ , ’ p u r e l i n ’ } , ’ t r a i n g d ’ ) simulamos su comportamiento inicial: luego definimos algunos par´ametros para el entrenamiento de la red: n e t . trainParam . show =50; n e t . trainparam . l r = 0 . 0 5 ; n e t . trainParam . epochs =30000; n e t . trainParam . g o a l = 0 . 0 0 1 ; 8

Figura 11: Xomportamiento inicial de la red finalmente entrenamos nuestra red dados los anteriores par´ametros.

Figura 12: Gr´aficas del entrenamiento

9

Figura 13: Comportamiento final de la red

3.

CONCLUSIONES

Pudimos implementar y simular las redes neuronales gracias al software matlab mediante su toolbox de redes neuronales artificiales. Observamos el fen´omeno de la separabilidad lineal con una funci´on XOR la cual no puede implementarse en una sola neurona. Para realizar esta tuvimos que implementar una red multicapa con varias neuronas arrojando los resultados que se ven en la figuta(13).

10

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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF