Está en la página 1de 11

Universidad del Sagrado Corazón

Programa Graduado de Administración de Empresas


Gerencia de Sistemas de Información

ALGORITMOS GENÉTICOS Y
REDES NEURALES
ARTIFICIALES

Raúl Soto Vélez


200-30-9162
GSI 710 Inteligencia Artificial
Prof. Carmen Padial
Abril 2006

1
Introducción

Las redes neurales artificiales y los algoritmos genéticos, así como la


computación evolutiva y la lógica difusa, constituyen ejemplos de lo que se conoce
como "sistemas de información basados en el conocimiento". Éstos sistemas están
inspirados por un entendimiento y modelaje del procesamiento de información en los
organismos biológicos. Su característica principal es que buscan modelar aspectos
específicos de los organismos biológicos, mediante elementos de comportamiento
evolutivo.
El aprendizaje y la adaptación son dos de los principales atributos de la
inteligencia en los seres vivos. Éstos dos mecanismos difieren principalmente en
términos de la escala de tiempo envuelta y de los organismos en que operan
directamente.
En los organismos biológicos, el principal mecanismo de adaptación de las
especies es la evolución. La evolución es un proceso de reproducción selectiva y
sustitución dirigido a la optimización de una especie relativo a su ambiente. Requiere
de una población en la que se manifieste un grado de variabilidad en una ó más
características. Opera directamente en el genotipo de una especie, y permite adaptarse
a cambios a largo plazo en el ambiente.
El aprendizaje, en cambio, es un proceso de adaptación que opera
directamente sobre el fenotipo (cada organismo individual) de una especie. Permite al
organismo adaptarse a cambios repentinos en el ambiente. Aunque los cambios que
operan sobre el fenotipo no pueden modificar directamente el genotipo (el conjunto total
de diversidad genética) de una especie, el aprendizaje sí ejerce una influencia indirecta
sobre la evolución. En comparación con otros organismos biológicos, los seres
humanos exhibimos una capacidad excepcional para el aprendizaje,
En el campo de la inteligencia artificial, los sistemas de información basados en
el conocimiento hacen uso de paradigmas basados en algoritmos que emulan los
procesos de evolución y de aprendizaje de los organismos biológicos. Las redes
neurales artificiales, modeladas a base de las redes neurales biológicas, exhiben
entre sus propiedades la capacidad de aprendizaje. Los algoritmos genéticos,

2
modelados a base de los mecanismos evolutivos de la selección natural, exhiben entre
sus propiedades la capacidad de optimización. Los algoritmos genéticos, junto a las
estrategias evolutivas y la programación evolutiva, constituyen lo que se conoce como
computación evolutiva. A su vez, la computación evolutiva, junto a las redes neurales
y la lógica difusa, componen lo que se conoce como soft computing.

Redes Neurales Artificiales

Las redes neurales artificiales exhiben la capacidad de imitar los procesos


biológicos de procesamiento de información – el aprendizaje - de manera limitada. En
términos generales, las redes ne urales artificiales son representaciones de modelos
matemáticos donde una gran cantidad de unidades computacionales relativamente
simples, conocidas como nodos ó neuronas, están conectadas entre sí de forma
análoga a las neuronas biológicas. El comportamiento de una red neural artificial
depende la fuerza relativa de las conexiones entre éstas "neuronas".
Las redes neurales artificiales son sistemas no programados de procesamiento
de información, capaces de adaptarse y desarrollar capacidades operaciones de forma
autónoma en respuesta a la exposición a información: en otras palabras, capaz de
aprender por experiencia, y de modificar su 'conocimiento' en base a conocimiento
nuevo. También poseen la capacidad de generalizar a base de ejemplos, situaciones ó
experiencias previas; de modificar su comportamiento en respuesta a cambios en el
ambiente; y de tolerar errores e imprecisión en la información de entrada.
Otras características importantes de las redes neurales artificiales, modeladas
en los cerebros biológicos, son su capacidad de redundancia, el procesamiento
paralelo de la información y la memoria global distribuída. Éstas contrastan
marcadamente con el paradigma actual en la arquitectura de computadoras, donde
existe poca ó ninguna redundancia (cada componente discreto tiene una función
particular), el procesamiento usualmente se realiza de forma lineal, y la memoria se
encuentra localizada en elementos particulares.
Las redes neurales artificiales han sido usados exitosamente en aplicaciones
que requieren aprendizaje y generalización, tales como el reconocimiento de patrones,

3
el reconocimiento de texto impreso y escrito a mano, el reconocimiento de imágenes,
rostros y formas de caminar (gait), y el desarrollo de motores de inteligencia artificial
para juegos electrónicos que sean capaces de aprender de sus acciones y las del
jugador humano, y reaccionar de forma apropiada.

Algoritmos Genéticos y Computación Evolutiva

Un algoritmo genético es un algoritmo probabilístico de búsqueda y


optimización, q ue usa principios derivados de la genética y la selección natural.
Transforman de manera iterativa un conjunto (denominado “población” ó "genoma") de
objetos matemáticos (típicamente cadenas binarias de una longitud establecida), cada
uno con un valor establecido de “fitness”, en una población nueva de objetos mediante
los principios Darwinianos de selección natural. Porciones de éstas cadenas binarias
representan los parámetros del problema de búsqueda que el algoritmo debe resolver.
Cada cadena binaria – población – en un algoritmo genético constituye una
estructura de conocimiento que representa una solución entre varias. El espacio de
todas las posibles soluciones se conoce como el espacio de búsqueda. El valor de
'fitness' de cada población corresponde a la calidad ó al grado de corrección de la
solución particular que representa.
Comenzando con varias cadenas que representan varias soluciones posibles,
los algoritmos genéticos aplican mecanismos evolutivos modelados en operaciones
genéticas naturales, tales como el crossover ó entrecruzado (recombinación sexual),
la selección natural y las mutaciones, para que las poblaciones que componen cada
generación evolucionen mediante la competencia. Éstas operaciones se usan para
calcular las generaciones subsiguientes, seleccionando los descendientes más aptos (a
base de su valor de 'fitness'), y pasando éstos a la próxima generación.
Luego de varias generaciones, el algoritmo converge en una solución optimizada.
El ciclo se detiene cuando el valor de fitness de las soluciones deja de aumentar.
Aunque no necesariamente encontrarán la solución óptima de un problema, los
algoritmos genéticos comúnmente obtienen soluciones rápidamente a soluciones de
buena calidad. La ventaja de los algoritmos genéticos es que tienen la capacidad de

4
manipular numerosas poblaciones de manera simultánea, y de ésta manera evaluar
múltiples soluciones a un mismo problema. Ésto permite que se analize de forma
simultánea todo el espacio de búsqueda.
Los algoritmos genéticos son un tipo de algoritmo evolutivo. Los algoritmos
evolutivos son algoritmos de búsqueda estocásticos inspirados por los procesos
evolutivos de selección natural. Los principales tipos de algoritmos evolutivos son los
algoritmos genéticos, la programación genética y las estrategias evolutivas. En
los algoritmos evolutivos, los “individuos” compiten e intercambian información para
ejecutar ciertas tareas. Cada método enfatiza una faceta distinta de la evolución natural.
Los algoritmos genéticos se enfocan en las operaciones de mutación y entrecruzado de
cromosomas; las estrategias evolutivas se enfocan en los cambios de comportamiento
a nivel del individuo; y la programación genética enfatiza los cambios de
comportamiento a nivel de la especie.
Los algoritmos genéticos han sido usados exitosamente para resolver problemas
de optimización en campos tales como el diseño de circuitos eléctricos y antenas, el
diseño de estructuras, la optimización de motores, el diseño de órbitas para satélites y
la biomédica.

Fusión de Paradigmas

Según mencionado anteriormente, el término soft computing se refiere a la


fusión de varios paradigmas : la computación evolutiva, junto a las redes neurales y la
lógica difusa.
Las más recientes tendencias en el desarrollo de sistemas de información
basados en el conocimiento se enfoca en la fusión, ó combinación, de varios de éstos
paradigmas, como por ejemplo la combinación en un sistema de redes neurales
artificiales con algoritmos genéticos y lógica difusa. El propósito de ésta fusión es
desarrollar sistemas que exhiban las capacidades de más de uno de éstos paradigmas,
mientras que las fortalezas de unos ayuden a compensar por las debilidades de otros.

5
Algoritmos Genéticos para el Diseño de Redes Neurales Combinadas

Una de las aplicaciones principales de éste tipo de sistemas híbridos es el


desarrollo de sistemas que usan una combinación de algoritmos genéticos con lógica
difusa para optimizar la combinación de redes neurales. En la aplicación de redes
neurales para el reconocimiento de patrones, una red de tamaño limitado puede tener
problemas para reconocer patrones complejos. Por ejemplo, en el reconocimiento de
texto escrito a manuscrito, la cantidad de características que la red tiene que reconocer
(curvas, líneas horizontales, verticales y diagonales, puntos, etc.) es muy alto, y la
distribución de éstas características no sigue ningún patrón estadístico. Para manejar
éste tipo de situaciones se crean varias redes neurales combinadas. Éstas redes
combinadas evalúan, cada una de manera independiente, un patrón de entrada, y
deciden de manera colectiva. El problema estriba en diseñar un mecanismo de
combinación de redes neurales para lograr de manera eficiente un consenso en la
decisión colectiva. En la Universidad Yonsei de Corea del Sur, el Dr. Sung-Bae Cho ha
desarrollado métodos de combinación de redes neurales basados en algoritmos
genéticos y lógica difusa, con mayor eficiencia que los métodos tradicionales (fusión y
votación) en la evaluación de las importancias subjetivas de las decisiones de cada red
individual.
En el Laboratorio de Investigaciones Navales de la Marina de los EEUU, el Dr.
Mitchell Potter ha desarrollado una arquitectura coevolucionaria que usa algoritmos
genéticos para evolucionar redes neurales. Ésta arquitectura utiliza una técnica
denominada "divide y vencerás", en la que las especies que representan distintas
subtareas dentro del problema se evolucionan en instancias separadas de un algoritmo
genético que las ejecuta de forma paralela. Las arquitecturas de redes neurales
generadas mediante ésta arquitectura producen soluciones de mayor calidad en menos
iteraciones evolutivas que otros métodos evolutivos.

6
Aplicaciones en la Matemática Teórica

El Dr. William Spears, también del Laboratorio de Investigaciones Navales de la


Marina de los EEUU, ha desarrollado un sistema híbrido que utiliza redes neurales y
algoritmos genéticos para resolver de manera heurística problemas de tipo NP-
complete, un tipo de problema matemático perteneciente al campo de la Teoría de
Complejidad Computacional, que no pueden ser resueltos en tiempo polinómico. El
enfoque que usa redes neurales logra mejores resultados cuando los problemas son
pequeños, mientras que el enfoque que usa algoritmos genéticos logra mejores
resultados con problemas más grandes.

Aplicaciones de Ingeniería

En la Universidad Heriot-Watt de Escocia, Reino Unido, un grupo de


investigadores ha desarrollado un sistema híbrido que usa procesamiento paralelo,
redes neurales y algoritmos genéticos para realizar análisis de elementos finitos
lineares y no lineares. El análisis de elementos finitos es una de las más poderosas
herramientas en el diseño de ingeniería mecánica, civil-estructural y eléctrica. El
análisis de elementos finitos para sistemas altamente complejos, la simulación del
comportamiento de éstos sistemas bajo distintos regímenes de uso, y la optimización
del diseño son problemas que requieren gran poder de computación. El uso de
computación paralela permite que los ingenieros realizen éste tipo de análisis en
tiempos significativamente menores, reduciendo efectivamente el tiempo entre el
desarrollo del concepto y la realización del producto final. Para aplicar computación
paralela y distribuída al análisis de elementos finitos, se requiere el desarrollo de
algoritmos de procesamiento paralelo. Para que éstos puedan ser aplicados
efectivamente es necesario realizar un pre-procesamiento sustancial del modelo de
elementos finitos. El método desarrollado en Escocia usa algoritmos genéticos
paralelos y redes neurales paralelas para pre-procesar los modelos de elementos
finitos no-lineares.

7
Aplicaciones en el Análisis Financiero

En la Universidad de Manchester, del Reino Unido, Efstathios Kalyvas usó un


algoritmo genético para escoger la topología óptima de una red neural; la que a su vez
usó para predecir el comportamiento a corto plazo de los índices Standard & Poor 500
de New York y FTSE 500 de Londres en el Mercado de Valores.

Aplicaciones en el Diseño de Juegos Electrónicos

Los juegos electrónicos se ha n convertido en uno de los principales mercados


de entretenimiento en el mundo, con ganancias comparables a las de las industrias de
música, televisión y cine. Los desarrolladores de juegos interactivos usan algoritmos
genéticos y redes neurales para desarrollar oponentes en juegos como Quake II. La red
neural permite al monstruo aprender y adaptarse al estilo y tácticas del jugador
humano, mientras que el algoritmo genético optimiza su comportamiento y
características. Se crea una estructura que contenga todas las características posibles
de un monstruo del juego (agresividad, probabilidad de huir cuando está herido, etc.), y
se usa un algoritmo genético para evolucionar la mejor combinación de características
para que el monstruo derrote al jugador humano. El juego monitorea a lo largo del
juego cuáles monstruos le dieron más trabajo al jugador humano, y el algoritmo
genético usa esos en la próxima generación. Mientras más tiempo el jugador humano
invierta en el juego, el programa desarrollará monstruos mejores y más difíciles.
Simultáneamente, una red neural analiza las tácticas usadas por el jugador humano y
usa ese aprendizaje para evolucionar la inteligencia artificial del juego, de manera tal
que aunque el jugador cambie sus tácticas, la red neural permite que los monstruos
nuevos y mejorados creados por el algoritmo genético se adapten a los cambios.

Conclusión

Las redes neurales artificiales y los algoritmos genéticos son algunos de los
paradigmas clasificados como sistemas de información basados e n el conocimiento.

8
Las redes neurales se usan para emular la forma en que los organismos biológicos
aprenden. Los algoritmos genéticos emulan los procesos evolutivos de selección
natural para optimizar soluciones. La fusión de éstos paradigmas resulta en sistemas
híbridos que se complementan, exhibiendo las capacidades de sus paradigmas
componentes, a la vez cada uno compensa con sus fortalezas las debilidades de otros.
Por ejemplo, los algoritmos genéticos complementan a las redes neurales, optimizando
su diseño y topología y ayudando a acelerar el proceso de aprendizaje.
Éste tipo de sistemas híbridos, que combinan los algoritmos genéticos con las
redes neurales, se ha usado en el desarrollo de soluciones a problemas en diversos
campos, tales como el diseño de ingeniería (mecánica, eléctrica y estructural), la
matemática, el análisis y forecasting financiero, el diseño óptimo de redes neurales
combinadas, y el desarrollo de juegos electrónicos.

9
Bibliografía

1. AI in Gaming, Generation 5: Artificial Intelligence Repository


http://library.thinkquest.org/18242/app_game.shtml

2. Chen, Hsinchun, Machine Learning for Information Retrieval: Neural Networks, Symbolic
Learning, and Genetic Algorithms, Journal of the American Society for Information Science,
Volume 46, Number 3, Pages 194-216, April 1995.
http://ai.bpa.arizona.edu/papers/mlir93/mlir93.html

3. Cho, Sung-Bae, Fusion of Neural Networks with Fuzzy Logic and Genetic Algorithms,
Department of Computer Sciences, Yonsei University, Seoul, South Korea. 2002
http://sclab.yonsei.ac.kr/publications/Papers/ica00128.pdf

4. Darwinian Selection of Satellite Orbits for Military Use , Space.com, October 16, 2001
http://www.space.com/news/darwin_satellites_011016.html

5. Jain, Lakhmi C, and Martin, N.M., Fusion of Neural Networks, Fuzzy Systems and Genetic
Algorithms: Industrial Applications, CRC Press, 1998.

6. Kalyvas, Efstathios, Using Neural Networks and Genetic Algorithms to Predict Stock Market
Returns, Thesis submitted to the University of Manchester for the degree of Master of Science in
Advanced Computer Science, Manchester, UK, October 2001.

7. Koza, John R., Genetic Programming: On the Programming of Computers by Means of


Natural Selection, MIT Press, Cambridge MA USA, 1998

8. Kunzle, Phillipe, Vehicle Control with Neural Network, Xtreme Games, Sept 1, 2003.
http://www.gamedev.net/reference/articles/article1988.asp

9. LaMothe, Andre, Neural Netware: And there was light, XTreme Games, July 10, 1999
http://www.gamedev.net/reference/articles/article771.asp

10. O'Reilly, U.M., et al, Genetic Programming Theory and Practice II, Springer Science &
Business Media, Boston MA USA, 2005

10
11. Patch, Kimberly, Algorithm Evolves More Efficient Engine, Technology Research News , July
5, 2000 http://www.trnmag.com/Stories/062800/Genetically_Enhanced_Engine_062800.html

12. Potter, Michael A., and De Jong, Kenneth A., Evolving Neural Networks with Collaborative
Species, In Proceedings of the 1995 Summer Computer Simulation Conference, July 24-26,
Ottawa, Ontario, Canada, pages 340-345. The Society for Computer Simulation. 1995.
http://www.cs.gmu.edu/~mpotter/pubs/scsc95.ps

13. Selecting Better Orbits for Satellite Constellations, SpaceNow.com, Purdue University News
Release, October 18, 2001 http://spaceflightnow.com/news/n0110/18orbits/

14. Spears, William M. and De Jong, Kenneth A., Using Neural Networks and Genetic Algorithms
as Heuristics for NP-Complete Problems. In Proc eedings of the International Joint Conference
on Neural Networks, Washington DC, pages 118-121. 1990
http://www.aic.nrl.navy.mil/~spears/papers/ijcnn90.ps.gz

15. Topping, B.H.V., et al, Parallel Processing, Neural Networks and Genetic Algorithms,
"Advances in Engineering Software", Vol. 29, No. 10, pp. 763-786, Dept. of Mechanical and
Chemical Engineering, Heriot-Watt University, Edimburg, Scotland, UK 1998.

16. Wikipedia, artículo titulado: Artificial Neural Network


http://en.wikipedia.org/wiki/Artificial_neural_network

17. Wikipedia, artículo titulado : Genetic Algorithm


http://en.wikipedia.org/wiki/Genetic_algorithm

18. Wikipedia, artículo titulado: Genetic Programming


http://en.wikipedia.org/wiki/Genetic_programming

19. Wikipedia, artículo titulado NP-Complete


http://en.wikipedia.org/wiki/NP-complete

11

También podría gustarte