Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 67 ANEXO II.- TEORÍA SOBRE REDES NEURONALES ARTIFICIALES 1. Concepto de red neuronal artificial Una red neuronal artificial (RNA) es un modelo matemático que intenta reproducir el modo de funcionamiento y operación del cerebro humano. Hoy en día, aunque existen muchas ramas encargadas de su estudio y desarrollo, éstas se engloban dentro de la inteligencia artificial. Como se verá en la breve reseña histórica siguiente, los primeros trabajos que establecieron las bases de las RNA no corresponden a ingenieros, sino a fisiólogos. En 1943, Walter Pitts y Warren McCulloch intentaron explicar el funcionamiento del cerebro humano, por medio de una red de células conectadas entre sí. En 1949, el fisiólogo Donald Hebb expresó en su libro “The Organitation of Behaviour”, la conocida regla de aprendizaje Hebb. Su propuesta se basaba en la conductividad de la sinapsis, es decir, en las conexiones de las neuronas. En 1951, Frank Rosenblett presentó una estructura llamada Perceptrón, que consistía en una red neuronal con aprendizaje supervisado, cuya regla de aprendizaje era una modificación de la propuesta por Hebb. Posteriormente, y siguiendo con este afán de emular el funcionamiento y estructura del cerebro humano, se han ido desarrollado numerosos modelos de RNA, entre los que cabe destacar: Adeline y Madeline (1960), Avalancha (1967), Backpropagation (1974), Hopfield y Self-Organizing Map (SOM) (1980) y las redes basadas en ART (Adaptative Resonance Theory) (1986). De lo comentado anteriormente, se aprecia, que esta rama del tratamiento de la señal, tiene más de cincuenta años, sin embargo, sólo en las últimas décadas se ha desarrollado la tecnología que permite su aplicación de manera eficiente. La principal característica de todas las RNA, independientemente de su estructura y propiedades, es su capacidad de aprender. También, independientemente del tipo o características de la RNA, la unidad básica de todas las redes neuronales son las “neuronas”, elementos que se combinan, dando lugar a las diferentes estructuras de red existentes. Figura 36.- Neurona humana vs neurona artificial Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 68 El proceso de aprendizaje de las RNA, lo que persigue fundamentalmente, es el ajuste entre las conexiones de esas unidades básicas, las neuronas. Actualmente, uno de los campos de más debate es el del aprendizaje de estas estructuras. No existen unos fundamentos teóricos sobre la estructura que debe tener una RNA para un problema concreto, por lo tanto, el algoritmo de aprendizaje óptimo, variará en función de la aplicación concreta y por ende, de la estructura de la RNA. Por eso, los elementos más importantes para seleccionar la estructura y método de aprendizaje de las RNA, son por un lado, las características de la aplicación concreta y por otro, el conocimiento y experiencia que se tenga en el campo de la aplicación concreta en el que se esté trabajando. 2. Clasificación de redes neuronales Como se ha visto, para enfrentarse a problemas reales, a lo largo de la historia los científicos y técnicos han ido planteando diferentes modelos de redes neuronales. Esto ha provocado la existencia de muchos modelos, algunos híbridos, siendo difícil una clasificación estricta de las RNA. Redgers y Alexander, establecieron una clasificación de RNA atendiendo a cinco propiedades: topología, arquitectura, modelo neuronal, algoritmo de aprendizaje y planificación de la ejecución. Kohonen, por otro lado, estableció una clasificación de RNA en tres grupos: Redes feedforward, redes backforward y redes competitivas. Actualmente, y atendiendo a dos de sus características principales, se consideran los siguientes tipos de RNA: Según su topología En función de la topología, es decir, del patrón de conexiones que presenta la RNA, se puede hablar de tres tipos básicos de redes: 1) Red Feedforward 2) Red Backforward Son dos tipos de redes de propagación hacia delante o acíclicas en las que todas las señales van desde la capa de entrada hacia la salida, sin existir ciclos ni conexiones, entre neuronas de la misma capa. En función de su estructura, pueden ser de dos clases: Monocapa (por ejemplo, el Perceptrón o el Adaline) Multicapa (por ejemplo, el Perceptrón Multicapa) 3) Red Recurrente, que presenta al menos, un ciclo cerrado de activación neuronal (por ejemplo, la red Elman o la red Hopfield). Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 69 Según el algoritmo de aprendizaje En función del tipo de aprendizaje (si necesita o no un conjunto de entrenamiento supervisado). Para cada tipo de aprendizaje, existen varios modelos propuestos: 1) Aprendizaje supervisado: necesitan un conjunto de datos de entrada previamente clasificado o cuya respuesta objetivo sea conocida. Ejemplos de este tipo de redes son: el perceptrón simple, la red Adaline, el perceptrón multicapa, red backpropagation y la memoria asociativa bidireccional. 2) Aprendizaje no supervisado o autoorganizado: no necesitan de tal conjunto previo. Ejemplos de este tipo de redes son: las memorias asociativas, las redes de Hopfield, la máquina de Boltzmann y la máquina de Cauchy, las redes de aprendizaje competitivo, las redes de Kohonen o mapas autoorganizados y las redes de resonancia adaptativa (ART). 3) Redes híbridas: son un enfoque mixto en el que se utiliza una función de mejora para facilitar la convergencia. Un ejemplo de este último tipo son las redes de base radial. 4) Aprendizaje reforzado: se sitúa a medio camino entre el supervisado y el autoorganizado. Los siguientes apartados, se van a centrar en la estructura, funciones de activación y algoritmos de aprendizaje de las redes Perceptrón Multicapa (MLP, Multi-Layer Perceptron, en terminología anglosajona), debido a que son las más utilizadas en el estado de la técnica, para el modelado de las descargas eléctricas. 3. Red Perceptrón Multicapa Un perceptrón multicapa (MLP) es una extensión de un perceptrón simple. Este modelo es el más utilizado en la actualidad, extendiéndose su aplicación a casi todos los ámbitos técnicos. La popularidad de este modelo de redes neuronales no se debe únicamente al éxito obtenido por su aplicación práctica, sino que existen demostraciones teóricas, que permiten explicar su éxito. En el estudio de Funahashi [24] se demuestra que una red MLP, cuya función de activación no sea constante, acotada y monótona creciente, es una aproximación universal de funciones. Al mismo tiempo, Hornik y algunos colaboradores, en su estudio [25], llegan a la misma conclusión, utilizando funciones de activación sigmoides, no necesariamente continuas. a) Principales elementos Los principales elementos para la definición de una red MLP son: Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 70 - Estructura de la red. - Funciones de activación. - Algoritmo de aprendizaje. Figura 37.- Esquema de entradas-salidas de red MLP de tres capas y modelo de neurona b) Funciones de activación Figura 38.- Funciones de activación de redes neuronales artificiales Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 71 c) Algoritmos de aprendizaje El aprendizaje esun proceso fundamental de las RNA y de forma general, consiste en el ajuste de todos los parámetros de la red, en base a la actividad para la que se quiera utilizar dicha red. Partiendo de un conjunto de pesos aleatorios, el aprendizaje busca un conjunto de pesos que permita a la RNA, desarrollar una tarea determinada. El aprendizaje es un proceso iterativo, en el que la red, va refinando sus parámetros, para alcanzar el objetivo de la aplicación concreta que se intenta abordar. Las redes MLP utilizan una función de error que mide su rendimiento actual, en función de sus pesos. El aprendizaje se convierte en un proceso de búsqueda de aquellos pesos que hagan mínima dicha función. Algoritmos de gradiente descendiente El algoritmo de gradiente descendiente es uno de los más utilizados en el estado de la técnica. Si se define E(w), como la función de error en función de los pesos (w) de la red, el aprendizaje busca un mínimo global de esta función de error. De forma iterativa, se puede expresar como que, dados los pesos de la red w(0) para el instante n = 0, se calcula la dirección de mayor variación de la función de error, que viene dada por el gradiente ∆E(w). Posteriormente, se actualizan los pesos, en los del sentido contrario a los de la variación de la función de error: w(n+1) = w(n) – α · ∆E(w) Algoritmo backpropagation El algoritmo backpropagation, es el algoritmo de aprendizaje supervisado de gradiente descendiente más usado. Sin embargo, este algoritmo posee una convergencia muy lenta y también, puede provocar la caída en un mínimo local (con gradiente cero, pero error puede ser significativo), y por tanto, se han planteado mejoras para acelerar su convergencia y evitar el problema de la caída en un mínimo local. Entre estos algoritmos mejorados, se encuentran el algoritmo backpropagation con momento, w(n+1) = w(n) – α · ∆E(w) +η· ∆w(t) que consiste, en tener en cuenta, en los cambios de los pesos, el gradiente de la iteración anterior, realizando un promedio de éste y el actual. η es el momento del algoritmo y su efecto es tal, que acelera el cambio, si las direcciones de las dos iteraciones son similares y realiza pasos más pequeños, si se produce oscilación en el gradiente. Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 72 Algoritmo Quasi-Newton Puede que la dirección del gradiente no sea la que más rápido converja hacia el mínimo de la función de error. De esta manera, existen modelos que actualizan sus pesos en base a la expresión w(n) = w(n-1) + α(n) · d(n) donde, d(n), indica la dirección de búsqueda de la iteración n. Esta dirección, es la conjugada de las (n-1) direcciones anteriores, por lo que, se puede generalizar la expresión anterior como w(n) = w(n-1) – H(w(n-1))-1 · ∆E(w) donde, H, es la matriz Hessiana. El método de Newton puede que no converja (si el punto inicial no está suficientemente cerca del óptimo), pero si lo hace, su rapidez, es del orden de diez a cien veces superior a la del gradiente descendiente. Algoritmo basado en el método Levenberg-Marquardt El algoritmo de Levenberg-Marquardt es una modificación del método de Newton, que elimina el cálculo de la matriz Hessiana. La actualización de los pesos sigue la expresión w(n) = w(n-1) + α(n) · d(n) Al mismo tiempo, la magnitud del cambio de los pesos viene dada por la expresión ∆w(n) = – α·M(w) · ∆E(w) Si M(w) = I, se convierte en el algoritmo de gradiente descendiente. Si M(w) = H-1(w), se tiene el método de Newton. Se suele establecer M(w) en un valor de compromiso, M(w) = [ ] 1))((· −+ nwHIµ Por lo tanto, la actualización de los pesos sigue la expresión: w(n) = w(n-1) - α(n) · [ ] 1))((· −+ nwHIµ ·∆E(w) Trabajo Fin de Master Anexo II _____________________________________________________________________________________ Universidad de Sevilla 73 En comparación con los algoritmos de gradiente descendiente, el algoritmo de Levenberg-Marquardt requiere un mayor esfuerzo computacional, pero su convergencia es más rápida. d) Algunas consideraciones sobre la capacidad de generalización Una vez finalizado el aprendizaje, la RNA puede ser utilizada para la tarea para la que se entrenó. Desde este punto de vista, a partir de los patrones existentes en los datos de entrenamiento, la red adquiere la capacidad de generalizar y poder utilizarse para otros datos distintos para los que fue entrenada. Por eso, es necesario evaluar la RNA, no sólo considerando su capacidad para aprender los patrones del entrenamiento, sino también su comportamiento ante patrones de datos de entrada nunca vistos. Esta capacidad es la que se conoce como capacidad de generalización. Durante la fase de entrenamiento, se deben analizar dos tipos de errores: el error de aprendizaje, indica la calidad de la respuesta de la red a los patrones de entrenamiento y el error de generalización, que indica la calidad de la respuesta de la red a patrones nunca vistos. La causa más común de perdida de capacidad de generalización es el sobreaprendizaje. Esto sucede cuando la cantidad de ciclos de entrenamiento tiende a ser muy alta. Al aumentar el número de ciclos, la red tiende a sobreajustar la respuesta a los patrones de entrenamiento, a expensas de una menor capacidad de generalización. La figura 39, muestra una situación idealizada de lo anterior, existiendo un punto, donde la red empieza a perder la capacidad de generalización, como consecuencia del sobreaprendizaje de los patrones de entrenamiento. Figura 39.- Representación de la generalización de una red neuronal artificial En ocasiones la perdida de capacidad de generalización se produce por un uso excesivo de neuronas ocultas en la red neuronal. Esto hace que la red tienda a ajustar con mucha exactitud los patrones de entrenamiento, impidiendo que la red extraiga las características del conjunto.
Compartir