jueves, 28 de agosto de 2008

REDES NEURONALES EVOLUTIVAS



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 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.

Algunos Links mas al detalle:

Introduccion a las Redes Neuronales Evolutivas
Algoritmos genéticos y computación evolutiva

Aca una idea mas amplia lo que viene hacer las redes neuronales en el campo del IA:
(Apague la musica jeje)

No hay comentarios: