Entrenamiento de redes neuronales basado en algoritmos evolutivos
Enviado por rafaelfreites gonzalez
Resumen En este trabajo se estudia un método alternativo para el entrenamiento de redes neuronales con conexión hacia delante. Una vez determinada la topología de la red neuronal se utiliza un algoritmo genético para ajustar los pesos de la red neuronal. Se evalúan diferentes variantes de los operadores genéticos para el entrenamiento de las redes neuronales. Los resultados obtenidos por el algoritmo genético son contrastados con los resultados obtenidos por el algoritmo de retropropagación de errores. Palabras claves: Computación evolutiva, redes neuronales, algoritmos genéticos, entrenamiento, retropropagación. Abstract In this work an alternative method to train feedforward neural networks is studied. Once the topology of the neural network is determined, a genetic algorithm is used to adjust the neural networks weights. Different variations of the genetic operators to train neural networks are evaluated. The results reached by the genetic algorithm are contrasted with the results reached by the Backpropagation Algorithm. Keywords: Evolutionary computation, neural networks, genetic algorithms, train, Backpropagation.
L. Federico Bertona Introducción 1 Entrenamiento de redes neuronales basado en algoritmos evolutivos
Capítulo 1: Introducción
La Inteligencia Artificial es la disciplina que estudia la forma de diseñar procesos que exhiban características que comúnmente se asocian con el comportamiento humano inteligente [García Martínez, 1997]. La Inteligencia Artificial sintetiza y automatiza tareas intelectuales y es, por lo tanto, potencialmente relevante para cualquier ámbito de la actividad intelectual humana [Russell y Norving, 2004]. Actualmente esta ciencia está comprendida por varios subcampos que van desde áreas de propósito general, como el aprendizaje y la percepción, a otras más específicas como la demostración de teoremas matemáticos, el diagnostico de enfermedades, etc. Uno de los modelos que ha surgido para emular el proceso de aprendizaje es la red neuronal artificial. Las redes neuronales son modelos que intentan reproducir el comportamiento del cerebro humano [Hilera y Martínez, 1995]. Una red neuronal consiste en un conjunto de elementos de procesamiento, llamados neuronas, los cuales se conectan entre sí [Koehn, 1994]. La organización y disposición de las neuronas dentro de una red neuronal se denomina topología, y viene dada por el número de capas, la cantidad de neuronas por capa, el grado de conectividad, y el tipo de conexión entre neuronas. Una vez determinada la topología de la red neuronal es necesario entrenarla. En la etapa de entrenamiento la red es capaz de aprender relaciones complejas entre entradas y salidas mediante el ajuste de los pesos de las conexiones entre neuronas. Widrow y Lehr [Lehr y Widrow, 1990] identifican una cantidad significativa de algoritmos de entrenamiento. La mayoría de éstos utilizan información del gradiente de una función de error para ajustar los pesos de las conexiones, y se los llaman algoritmos de gradiente descendente [Porto, 1998] Las redes neuronales artificiales han sido aplicadas con éxito en gran cantidad de problemas como por ejemplo reconocimiento de patrones, clasificación, visión, control, predicción, etc. [Zilouchian, 2001]. Sin embargo, los algoritmos de gradiente descendente poseen dos problemas. Primero, suelen quedar atrapados en mínimos locales, generándose de esta manera estimaciones subóptimas de los pesos. Segundo, suelen ser muy lentos por utilizar pasos infinitesimales para alcanzar la solución. Los algoritmos evolutivos, dentro de los cuales los algoritmos genéticos son los más conocidos, son una familia de modelos computacionales inspirados en la evolución y la supervivencia del más apto [Bäch, et. al., 1991; Ömer, 1995; Whitley, 2001]. Se utilizan fundamentalmente en la resolución de problemas de búsqueda y de optimización [Holland, 1975]. El verdadero poder de estos algoritmos radica en la búsqueda simultánea de la solución en un conjunto de posibles soluciones (individuos). Buscan una solución del problema reproduciendo genéticamente una población de individuos a lo largo de una serie de generaciones [Koza, 1997]. En el contexto de los algoritmos evolutivos, el aprendizaje es formulado como un problema de optimización. Dada una topología fija, el entrenamiento de una red neuronal puede ser visto como un proceso de optimización cuyo
2 Introducción L. Federico Bertona Entrenamiento de redes neuronales basado en algoritmos evolutivos
objetivo es encontrar un conjunto de pesos que minimice el error que produce la red sobre el conjunto de datos de entrenamiento. Esto convierte a los algoritmos evolutivos en una alternativa a los métodos de entrenamiento tradicionales, ya que aquellos son capaces de no quedar atrapados en mínimos locales y, al avanzar hacia la solución mediante operadores genéticos, pueden aumentar la velocidad de convergencia a la solución. El objetivo de este proyecto es combinar dos técnicas utilizadas en la construcción de sistemas inteligentes, los algoritmos evolutivos y las redes neuronales, para crear un sistema donde, tras definir una topología de red ne
Página siguiente |