Post on 14-Aug-2015
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
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
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
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
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
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
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
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
Figura 11: Xomportamiento inicial de la red
finalmente entrenamos nuestra red dados los anteriores parametros.
Figura 12: Graficas del entrenamiento
9
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
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