Está en la página 1de 11

Aplicación de Redes Neuronales en

MATLAB
Simulación de Procesos Industriales
Trabajo Práctico # 5
José Eduardo Laruta Espejo

Resumen
El presente trabajo trata acerca de las aplicaciones básicas de las
redes neuronales, en especı́fico el perceptron, para aproximar funciones
lógicas combinacionales, explorando las ventajas y limitaciones de una
red de un perceptron simple y analizando aspectos acerca de la separa-
bilidad lineal de los problemas. Tambien analizamos los algoritmos de
aprendizaje de dichas redes y su rendimiento. Se implementan 3 fun-
ciones lógicas combinacionales básicas en el software MATLAB con el
fin de analizar los resultados del entrenamiento de dicha red.

1. DESCRIPCIÓN DEL PROBLEMA


1.1. Funciones lógicas AND, OR y XOR
Se intenta implementar la función AND en un perceptron simple con 2
entradas y una salida, siguiendo con la tabla de verdad propia de la función
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ón AND

1
Luego, también procederemos a implementar la función OR inclusivo en
nuestra red neuronal, cuya tabla de verdad se muestra a continuación:

x1 x2 x1 ∨ x2
0 0 0
0 1 1
1 0 1
1 1 1

Cuadro 2: Tabla de verdad de la función OR

Y por último, tenemos que implementar o aproximar la función OR- Ex-


clusivo 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ón XOR

Para implementar esta función utilizaremos un perceptron simple cuyo


esquema y estructura se muestra a continuación:

Figura 1: Estructura del percepttron simple

2
1.2. Aprendizaje de la red
El aprendizaje de una red neuronal se manifiesta a través del cambio
y ajuste de los pesos sinápticos 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ón. Asignar a los pesos w1 , w2 , w3 , . . . , wn y el umbral θ


valores aleatorios en el rango [−0,5, 0,5].

2. Activación. Activar el perceptron aplicando las entradas x1 (p).x2 (p) . . . , xn (p)


y la salida deseada Yd (p), calcular la salida en la iteración p = 1:
" n #
X
Y (p) = step xi (p)wi (p) − θ
i=1

donde n es el número de entradas al perceptrón y step es una función


de activación tipo escalón.

3. Entrenamiento de ponderaciones Adaptar los pesos del perceptrón:

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

donde ∆wi (p) es la corrección del peso en la iteración p. la corrección


se calcula mediante la regla “delta”:

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

4. Iteración. Incrementamos la iteración p en 1 y volvemos al paso 2 y


repetimos hasta que exista la convergencia.

2. IMPLEMENTACIÓN EN MATLAB
Para la implementación y simulación de nuestras redes neuronales uti-
lizaremos el toolbox de redes neuronales del software especializado MATLAB

3
2.1. Función 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áfica:
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áfica 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ón 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 visualizamos
en una gráfica:
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áfica de entrenamiento

y simulamos su comprtamiento con los nuevos pesos que se ajustaron


luego del entrenamiento:
a=sim ( net , P)

2.3. Función XOR


Esta función no se puede implementar por un perceptron simple dada la
propiedad de la no separabilidad lineal, tal como vemos en el gráfico de los
patrones 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: Función 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ámetros 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ámetros.

Figura 12: Gráficas 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ómeno de la separabilidad lineal con una función XOR
la cual no puede implementarse en una sola neurona. Para realizar esta tu-
vimos 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

También podría gustarte