Cap 4

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Cap 4 as PDF for free.

More details

  • Words: 3,200
  • Pages: 21
Capítulo IV Redes Neuronales Artificiales _______________________________________________________________________

“Mientras los filósofos discuten si es posible la inteligencia artificial, los investigadores la construyen”. C. Fabretti.

Redes Neuronales Artificiales

IV.1 Clases no separables por una línea recta. Debido a que el Perceptrón simple divide el espacio de características en dos regiones, puede distinguir clases que son separables por una línea recta. Sin embargo, en un enorme número de aplicaciones no es suficiente con dividir el espacio característico en dos regiones. Un ejemplo en el cual se puede observar esta limitante del Perceptrón simple, es intentar resolver el problema de la operación lógica XOR (OR- exclusiva).

Entradas

Salidas

x1

x2

Y

0

0

0

0

1

1

1

0

1

1

1

0

Figura 23. Operación lógica XOR Izquierda: tabla de entradas y salidas de la función lógica XOR. Derecha: mapa de características representando la salida que debe de proveer cada par x1, x2.

En la tabla de la figura anterior podemos ver como el par de entradas 00 y 11 producen como salida un cero lógico, mientras que el resto produce un uno lógico. En el mapa de características se muestra que una línea recta no es suficiente para separar las clases y poder identificarlas. Para resolver este problema, se utiliza el recurso que se tiene del Perceptrón, el cual genera una línea recta separando en dos regiones el espacio característico, y un

53

Redes Neuronales Artificiales

segundo Perceptrón genera otra línea recta, de tal forma que entre ambas dividan el espacio característico en tres regiones. La salida de estos Perceptrones se utiliza como entrada para un tercer Perceptrón ubicado en la capa de salida. Este último integra las salidas de los anteriores y provee como respuesta un uno lógico si el vector de entrada se encuentra dentro de la región formada por las dos líneas rectas y provee un cero lógico si el vector de entrada se encuentra fuera.

Figura 24. Perceptrón para la operación lógica XOR.

La configuración de la figura anterior es un sistema neuronal que puede resolver el problema de la XOR. Las neuronas 1 y 2 definen las dos líneas rectas que separan el espacio característico en tres regiones. Y la neurona 3 toma la respuesta de las dos anteriores y ofrece como respuesta una de dos clases, la que se encuentra dentro del espacio de las dos líneas y la que se encuentra fuera.

54

Redes Neuronales Artificiales

IV.2 Perceptrones multicapa. La solución a los problemas de reconocimiento de clases en un espacio característico, las cuales no son separables por una línea recta, y aún más, problemas de identificación multiclases son los sistemas Multineuronas o Redes Neuronales Artificiales. Aunque existen diferentes tipos de RNA’s en base a su estructura, como las RNA’s de Hopfield, de Hamming, los clasificadores Carpenter-Grossberg, o las RNA de Kohonen [21], este estudio se centra en el modelo Perceptrón, debido a su simplicidad y eficiencia en lo que a problemas de clasificación se refiere. Una RNA consta de una arquitectura genérica en la que las neuronas están dispuestas en forma de capas. La primera capa se denomina de entrada, posteriormente se encuentra la capa oculta y al final una capa de salida [22].

Figura 25. Modelo genérico del Perceptrón Multicapa. En un Perceptrón multicapa las entradas son conectadas solo a las neuronas de la capa oculta, donde en estas últimas las funciones que definen el nivel de activación y la salida están dadas por: n

NAi = ∑ xi wi i =1

 n  yi = f ( NAi ) = f  ∑ xi wi   i =1 

55

Redes Neuronales Artificiales

Las neuronas de la última capa son de salida y proporcionan la respuesta de la red. El nivel de activación y la salida de estas neuronas son definidas mediante:

n

NA j = ∑ xij wij j =1

 n  y j = f (NAj ) = f  ∑ xij wij   j =1 

En el apartado 2.3, se especificó que el potencial eléctrico de una neurona varía con respecto al tiempo. Por lo que la salida generada, que es una función del nivel de activación, puede ser definida no sólo mediante una función escalón. Entre las funciones de activación más utilizadas podemos encontrar las siguientes:

Figura 26. Funciones de activación.

56

Redes Neuronales Artificiales

Como vimos anteriormente, el aprendizaje consiste en ajustar los pesos para que las salidas producidas por la red sean iguales o lo más parecidas posible a los valores deseados. Esto implica que lo que se desea es minimizar el error producido por la red. Para ello, es posible utilizar un procedimiento conocido como algoritmo de retropropagación [23].

IV.3 Algoritmo de entrenamiento de retropropagación. Al hablar de redes de retropropagación o redes de propagación hacia atrás hacemos referencia a un algoritmo de aprendizaje más que a una arquitectura determinada. Durante mucho tiempo no se dispuso de algoritmos para entrenar redes multicapa, y como las redes de una capa estaban muy limitadas en cuanto a lo que eran capaces de representar, el campo de las Redes Neuronales Artificiales estaba estancado. La invención y perfeccionamiento del algoritmo de retropropagación dio un gran impulso al desarrollo de este campo, ya que tiene un buen fundamento matemático que ha expandido enormemente el rango de problemas donde se aplican las RNA’s, sobre todo aquellos en los que la relación entre entradas y salidas es no lineal y los datos de entrenamiento son abundantes. La retropropagación consiste en propagar el error hacia atrás, es decir, de la capa de salida hacia la capa de entrada, pasando por las capas ocultas intermedias y ajustando los pesos de las conexiones con el fin de reducir dicho error. En la figura 27, se observa que el error es una función de los pesos de la red, los cuales deben ser ajustados. El proceso de ajuste de los pesos en la dirección que se muestra en dicha figura es llamado descendencia de gradiente.

57

Redes Neuronales Artificiales

Figura 27. Descendencia de gradiente.

El error total que la red produce lo podemos medir en las neuronas de salida [20], y está definido por:

(d E=

− yj )

2

j

2

Para reducir el error debemos modificar los pesos que se conectan a las neuronas de salida de la red. Pero, al modificar estos pesos, estamos obligando a que las salidas de las neuronas de la capa oculta produzcan una respuesta distinta de la que produjeron. Además, tomemos en cuenta que las salidas de estas neuronas ocultas dependen del valor de los pesos que conectan las entradas de la red con estas. Por lo que, estos pesos deben ser también modificados. Entonces, al reducir el error en las neuronas de la capa de salida de la red debemos también reducir el error en la capa de las neuronas de entrada. Este error que cada neurona de la capa oculta produce, lo obtendremos al calcular la modificación de los pesos para reducir el error de la capa de salida. Por lo tanto, el error es propagado de manera distribuida desde la capa de salida hasta la capa de entrada. Debido a esta propagación hacia atrás del error es que este algoritmo es llamado algoritmo de retropropagación del error o simplemente retropropagación.

58

Redes Neuronales Artificiales

A continuación se describen los pasos que integran el algoritmo de retropropagación: Paso 1: Inicializar los pesos. Ajustar todos los pesos a un valor aleatorio pequeño. Paso 2: Presentar las entradas y las salidas deseadas. Presentar el vector de entrada x1, x2, ...xn y especificar las salidas deseadas d1, d2,...dn. Paso 3: Calcular la salida que genera la red. yj (t)= f [Σwij(t)yi(t)], donde la salida es una función continua y monótonamente creciente. Paso 4: Ajuste de los pesos. a) Si se trata de un peso de una sinapsis que se conecta con una neurona de la capa de salida; actualizar el peso utilizando la siguiente expresión: wij(t+1)= wij(t)+α(dj-yj)f ’ (NAj)yi Donde: wij(t+1) es el nuevo valor del peso. wij(t) es el valor del peso actual. dj es el valor deseado para la salida de la neurona j. yi es el valor de la salida en la neurona j antes de actualizar el peso. α es la tasa de aprendizaje. f ’ (NAj ) es la derivada de la función de salida de la neurona j.

59

Redes Neuronales Artificiales

yi es el valor de salida de la neurona i de la capa anterior, de cuya conexión se está ajustando el peso. b) Si se trata de un peso de alguna sinapsis que se conecta a una neurona de la capa oculta; actualizar el peso utilizando la siguiente expresión: wij(t+1)= wi (t)+α f ’ ( NAj )xi•Σ[ (dj - yj ) • f ’ (NAj )wj ] Donde: wij(t+1) es el nuevo valor del peso wi . wi (t) es el valor actual del peso wi . α es la tasa de aprendizaje. f ’ (NAi ) es la derivada de la función de salida de la neurona i. xi es la entrada a la sinapsis de la neurona i. dj es el valor deseado para la salida de cada una de las neuronas j. yj es el valor obtenido en las neuronas j. f ’ (NAj ) es la función de salida de las neuronas j. wi es el valor del peso de las neuronas j. Paso 5: volver al paso 2. Este algoritmo ha sido probado con un gran cantidad de problemas tales como el de la XOR [17], reconocimiento de voz [24, 25, 26] y reconocimiento de imágenes [17]. Una demostración del poder de este algoritmo fue realizada por Sejnowski [24], en la cual entrenó un Perceptrón con 120 neuronas en la capa oculta y más de 20,000 pesos para transformar un mapa de palabras inglesas en texto por medio de los fonemas correspondientes.

60

Redes Neuronales Artificiales

IV.4 Diseño de una red neuronal para el problema de la XOR lógica. En la figura 23 se puede observar que es sencillo definir los valores necesarios para que la función discriminante de la RNA divida el espacio característico en tres regiones. Sin embargo, el número de iteraciones a realizar con el algoritmo de retropropagación puede significar un cálculo muy extenso. Es por ello que el diseño de la RNA se realizó por medio de software en una computadora convencional. En la actualidad, existen diversos programas destinados al diseño de RNA’s. Un ejemplo de ello es el Stutgartt Neural Networks Simulator (SNNS), con el cual es posible diseñar una RNA en forma rápida y sencilla. El primer paso en el diseño de la red consistió en crear el archivo con los datos de entrenamiento. Este archivo puede realizarse en cualquier editor de texto con la extensión PAT y su estructura se muestra en la siguiente figura:

Figura 28. Archivo de entrenamiento xor.pat.

61

Redes Neuronales Artificiales

En la figura 28, se muestra que el archivo de entrenamiento consta de tres partes fundamentales: el encabezado, las características de la red y los datos de entrada – salida del conjunto de entrenamiento. El encabezado contiene, como se muestra en dicha figura, el nombre del programa, la fecha y la hora en que fue realizado el archivo. Las características indican el número de patrones que contiene el archivo, el número de unidades de entrada y el número de unidades de salida. Por último, los datos del conjunto de entrenamiento indican el valor de la entrada y su salida correspondiente. La estructura de la RNA consta de un número de entradas que son indicadas mediante vectores. De esta forma la red cuenta con las siguientes características: Entradas: 1 en X y 2 en Y. Capa oculta: 1 en X y dos en Y. Salida: 1 en X y 1 en Y. La estructura de la red que se realizó en el programa se muestra en la siguiente figura:

Figura 29. Visualización completa de la RNA.

Una vez establecido el número y el orden de neuronas que constituyen la RNA se cargó el archivo con el conjunto de entrenamiento para dar paso al aprendizaje de la red.

62

Redes Neuronales Artificiales

Como ya hemos visto anteriormente el algoritmo para entrenar la red es retropropagación. Para llevar a cabo el entrenamiento fue necesario definir algunos parámetros como la tasa de aprendizaje, el número de épocas y la forma en que se debía presentar la información a la red, ya sea en un determinado orden o de forma aleatoria. Estos parámetros fueron elegidos de la siguiente forma: Tasa de entrenamiento (Learn): 0.02 Épocas (cycles): 10000 Orden: Shuffle (aleatorio). Una de las opciones que nos ofrece el SNNS es que podemos observar durante el entrenamiento de la red el progreso del aprendizaje. En la figura 30, se muestra que en menos de 2500 épocas la red disminuyó el error casi a cero.

Figura 30. Gráfica del comportamiento del error para el problema de la XOR. Al finalizar el entrenamiento, la suma del error cuadrático se redujo a 0.00341. Esto se pudo ver numéricamente en la ventana del administrador de sesión del SNNS.

63

Redes Neuronales Artificiales

Figura 31. Suma del Error cuadrático de la RNA en la ventana del administrador de sesión. Para comprobar que la RNA podía resolver el problema de la XOR, se cargo un archivo de prueba de extensión PAT, en el que los datos de entrada fueron los mismos que en el archivo de entrenamiento, pero a diferencia de este las salidas fueron definidas en cero. Con la misma configuración de la red y el valor final de los pesos se comprobó que las salidas de la RNA fuesen correctas en base a las entradas.

Figura 32. Prueba de la RNA para la XOR. Una vez realizado el entrenamiento de la red y haber comprobado que efectivamente aprendió el comportamiento deseado, el siguiente paso consistió en conocer cuales son los valores de los pesos para cada uno de los nodos o neuronas artificiales y sus respectivos umbrales. Estos valores de la fuerza de unión entre las

64

Redes Neuronales Artificiales

dendritas y el soma artificial fueron proporcionados por el SNNS en forma de coordenadas.

Figura 33. Visualización de los pesos de la RNA. Los resultados de los pesos se muestran a continuación: w13 = 6.103170

w24 = 4.148270

w14 = 6.111240

w35 = 8.401280

w23 = 6.111240

w45 = -9.068840

Tabla 3. Pesos de la RNA para el problema de la XOR. Los resultados para cada uno de los umbrales de las neuronas de la red fueron los siguientes: θ3 = -2.63774 θ4 = -6.36146 θ5 = -3.83855

65

Redes Neuronales Artificiales

Matemáticamente se comprobaron los resultados de la red como se describió en el apartado 3.4, calculando el nivel de activación según las entradas y los pesos y finalmente el valor de la salida en base a la función del nivel de activación. Nodo No. 3: Entradas: x0(t)=1, x1(t)=0, x2(t)=0 Pesos: w0(t)= -2.63774, w13(t)= 6.103170, w14(t)= 6.111240 Nivel de Activación NA: (1)( -2.63774) +(0)( 6.103170) + (0)( 6.111240) =-2.63774 Salida del Perceptrón y(t)=0, ya que NA ≤ 0 Salida deseada d(t) = 0 Error (d(t)- y(t)) = 0 Nodo No.4: Entradas: x0(t)=1, x1(t)=0, x2(t)=0 Pesos: w0(t)= -6.36146, w23(t)= 6.111240, w24(t)= 4.148270 Nivel de Activación NA: (1)( -6.36146) +(0)( 6.111240) + (0)( 4.148270) =-6.36146 Salida del Perceptrón y(t)=0, ya que NA ≤ 0 Salida deseada d(t) = 0 Error (d(t)- y(t)) = 0 Nodo No. 5: Entradas: x0(t)=1, x35(t)=0, x45(t)=0 Pesos: w0(t)= -3.83855, w35(t)= 8.401280, w45(t)= -9.068840 Nivel de Activación NA: (1)( -3.83855) +(0)( 8.401280) + (0)( -9.068840) = -3.83855 Salida del Perceptrón y(t)=0, ya que NA ≤ 0 Salida deseada d(t) = 0

66

Redes Neuronales Artificiales

Error (d(t)- y(t)) = 0

Haciendo el cálculo respectivo para cada una de las entradas mostradas en la tabla de la figura 23,

puede comprobarse que el perceptrón multicapa distingue

perfectamente entre las dos clases. Si sustituimos cada uno de los valores de la red en las ecuaciones que representan el nivel de activación para cada uno de los Perceptrones es posible obtener la gráfica de sus funciones discriminantes y al dibujarlas en un espacio característico.

Figura 34. Funciones discriminantes para el problema de la XOR.

IV.5 Diseño de una red neuronal para el problema de la XOR lógica mediante dispositivos electrónicos. El análisis para construir una RNA partió de la premisa siguiente: “Una red neuronal es un arreglo de nodos o unidades procesadoras simples, las cuales representan el cuerpo de las neuronas. Las unidades se encuentran conectadas entre si y actúan como los axones y las dendritas. Las conexiones entrenan a las unidades

67

Redes Neuronales Artificiales

procesadoras multiplicadas por un factor, el cual es un valor analógico que representa la fuerza de conexión o sinapsis” [27]. Esto nos lleva a pensar que al igual que en el modelo matemático, si conectamos tres Perceptrones simples para resolver el problema de la XOR, podemos reproducir tres neuronas artificiales construidos con amplificadores operacionales. Tal como el que se muestra en las figuras 20 y 22 para crear una RNA. Un aspecto muy importante en la construcción de la RNA, consistió en el ajuste de los valores que corresponden a cada una de la sinapsis de la red. Para realizar dicho ajuste se utilizaron resistencias variables de 10 kΩ como valor máximo, reduciendo así el valor de las sinapsis a un 10 % de su valor original. Esta pequeña modificación no alteró en forma alguna el comportamiento de la red y presentó la ventaja de poder utilizar una mayor escala en los voltajes de entrada. Por lo tanto los valores de las resistencias fueron: Resistencia

Valor

Resistencia

Valor

Resistencia Valor

R1

10kΩ

R11

10kΩ

R21

10kΩ

R2

10kΩ

R12

4.148kΩ

R22

10kΩ

R3

6.103kΩ

R13

10kΩ

R23

10kΩ

R4

6.111kΩ

R14

10kΩ

R24

10kΩ

R5

10kΩ

R15

10kΩ

R25

10kΩ

R6

10kΩ

R16

10kΩ

R26

10kΩ

R7

10kΩ

R17

10kΩ

R8

10kΩ

R18

8.401kΩ

R9

10kΩ

R19

10kΩ

R10

6.111kΩ

R20

9.068kΩ

Tabla 4. Valores de resistencias para el perceptrón multicapa electrónico.

El diagrama simbólico y de conexión de la RNA construida mediante amplificadores operacionales se muestra a continuación:

68

Redes Neuronales Artificiales

69

Redes Neuronales Artificiales

70

Redes Neuronales Artificiales

Los valores de los umbrales que corresponden a las figuras 35 y 36 se ajustaron de la siguiente forma: Umbral No. 3 = 2.63774 Umbral No. 4 = 6.36146 Umbral No. 5 = 3.83855

IV.6 Pruebas funcionales a la RNA para el problema de la XOR lógica. De manera similar a la etapa de pruebas de la sección 3.6, se comprobó la funcionalidad de la RNA, introduciendo voltajes de entrada para compararlos con la tabla de la figura 23. A continuación se muestran los resultados obtenidos: Entradas Salida Vi1 Vi 2 Vout 0 0 Vsat0 V

Vsat-

V 0

Vsat-

V V

Vsat+

Tabla 5. Resultados obtenidos en el Perceptrón que resuelve el problema de la XOR lógica.

Donde: Vi1

representa el voltaje de entrada 1.

Vi2

representa el voltaje de entrada 2.

V

representa el voltaje lógico = 5 volts.

71

Redes Neuronales Artificiales

Vout Vsat

+

representa el voltaje de salida. representa el voltaje de saturación positivo del amplificador operacional.

Vsat-

representa el voltaje de saturación negativo del amplificador operacional.

72

Related Documents

Cap 4
June 2020 9
Cap 4
May 2020 12
Cap 4
June 2020 14
Cap 4
June 2020 7
Cap 4..
June 2020 10
Cap.4
November 2019 16