1. UNIVERSIDAD CÉSAR VALLEJO
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas
INTELIGENCIA ARTIFICIAL
TEMA:
REDES NEURONALES Y COMPUTACION EVOLUTIVA.
Miembros de Equipo:
Córdova Reyes Jairo
Marrufo Cabanillas Renzo
Nomberto Neyra José
Pérez Pérez Christian
Docente:
Ing. Tenorio Cabrera Julio Luis.
Chimbote, Perú
2. DEDICATORIA
Este trabajo esta dedicado a nuestros adres, a nuestro
señor Jesucristo y al docente responsable del cuso
3. PRESENTACIÓN
El presente informe consta de dos temas sobre la computacion evolutiva y
computacion neuronal.
Cualquier sistema neuronal tiene como propósito el control centralizado de las
distintas funciones que rigen el organismo. En el desarrollo de la tecnología de la
información, actualmente parece existir una nueva fase donde el objetivo es
reproducir muchas de las funciones neuronales artificialmente.
El primer tema computacion evolutiva, contiene qué es la computacion evolutiva,
historia, programacion evolutiva, estrategias evolutivas, algoritmos genéticos,
entre otras cosas mas.
El segundo y ultimo tema computacion neuronal. Contiene: concepto, la neurona
artificial, ventajas de las redes neuronales, aplicaciones de las redes neuronales.
4. Índice
TEMA I............................................................................................................................................................... 5
¿QUÉ ES LA COMPUTACION EVOLUTIVA? ........................................................................................... 6
UN POCO DE HISTORIA............................................................................................................................... 6
ESTRATEGIAS EVOLUTIVAS ..................................................................................................................... 8
ALGORITMOS GENÉTICOS ...................................................................................................................... 10
APLICACIONES DE LAS REDES NEURONALES ................................................................................ 17
VENTAJAS DE LAS TÉCNICAS EVOLUTIVAS ..................................................................................... 12
TEMA II ........................................................................................................................................................... 13
CONCEPTO ................................................................................................................................................... 14
LA NEURONA ARTIFICIAL ........................................................................................................................ 15
Redes Neuronales en el campo de la Inteligencia Artificial ............................................................. 15
VENTAJAS DE LAS REDES NEURONALES ......................................................................................... 16
6. ¿QUÉ ES LA COMPUTACION EVOLUTIVA?
La computación evolutiva es una rama de la inteligencia artificial que involucra problemas
de optimización combinatoria. Se inspira en los mecanismos de la Evolución biológica.
Relacionada a la investigación de operaciones, teoría de algoritmos y teoría de la
complejidad computacional.
Estudia algoritmos de búsqueda y optimización inspirados en los mecanismos de la
genética y la selección natural. Estos algoritmos han sido aplicados exitosamente en
áreas muy variadas: medicina, ingeniería, economía, robótica, aeronáutica, y
biotecnología entre otras. En este curso estudiaremos los paradigmas principales que se
utilizan hoy en día en la computacion evolutiva: las estrategias evolutivas, la programacion
evolutiva y los algoritmos genéticos. En cada caso se abordara su inspiración biológica,
su motivación, su funcionamiento y algunas de sus aplicaciones. Finalmente estudiaremos
en mayor detalle el funcionamiento, fundamentos teóricos, implementación y operación de
los algoritmos genéticos, que constituyen actualmente el paradigma evolutivo mas
utilizado.
UN POCO DE HISTORIA
Durante los años 50 se comenzó a aplicar los principios de Charles Darwin en la
resolución de problemas.
Durante los años 60 y 70, varias corrientes de investigación independientes comenzaron a
formar lo que ahora se conoce como computación evolutiva:
Programación evolutiva
Estrategias Evolutivas
Algoritmos genéticos
7. PROGRAMACION EVOLUTIVA
Lawrence J. Fogel propuso en los 1960s una técnica denominada “Programación
Evolutiva”, en la cual la inteligencia se ve como un comportamiento adaptativo
La Programación Evolutiva enfatiza los nexos de comportamiento entre padres e hijos, en
vez de buscar emular operadores genéticos específicos (como en el caso de los
Algoritmos Genéticos).
El objetivo es hacer que el autómata reconozca un cierto conjunto de entradas (una cierta
expresión regular) sin equivocarse ni una sola vez.
El algoritmo básico de la Programación Evolutiva es el siguiente:
Generar aleatoriamente una población inicial.
Se aplica mutación.
Se calcula la aptitud de cada hijo y se usa un proceso de selección
mediante torneo (normalmente estocástico) para determinar cuáles serán
las soluciones que se retendrán.
La Programación Evolutiva es una abstracción de la evolución al nivel de las especies, por
lo que no se requiere el uso de un operador de recombinación (diferentes especies no se
pueden cruzar entre sí). Asimismo, usa selección probabilística.
Algunas aplicaciones de la Programación Evolutiva son:
Predicción
Generalización
Juegos
Control automático
Problema del viajero
Planeación de rutas
Diseño y entrenamiento de redes neuronales
Reconocimiento de patrones
8. ESTRATEGIAS EVOLUTIVAS
Las estrategias evolutivas son métodos computacionales que trabajan con una población
de individuos que pertenecen al dominio.
Cada individuo de la población es un posible óptimo de la función objetivo; la
representación de cada individuo de la población consta de 2 tipos de variables:
Variables Estratégicas
Indican de qué manera las variables objeto son afectadas por la mutación.
Variables Objeto
Son los posibles valores que hacen que la función objetivo alcance el óptimo
global.
Las Estrategias Evolutivas fueron desarrolladas en 1964 en Alemania para resolver
problemas hidrodinámicos de alto grado de complejidad por un grupo de estudiantes de
ingeniería encabezado por Ingo Rechenberg
La versión original (1+1)-EE usaba un solo padre y con él se generaba un solo hijo. Este
hijo se mantenía si era mejor que el padre, o de lo contrario se eliminaba. A este tipo de
selección se le llama extintiva, porque los peores individuos tienen una probabilidad cero
de ser seleccionados.
En la (1+1)-EE, un individuo nuevo es generado usando:
x t+1 = x t + N(0,σ )
Donde t se refiere a la generación (o iteración) en la que nos encontramos, y N(0,σ) es un
vector de números Gaussianos independientes con una media cero y desviación estándar
σ.
Rechenberg introdujo el concepto de población, al proponer una estrategia evolutiva
llamada (λ +1)-EE, en la cual hay λ padres y se genera un solo hijo, el cual puede
reemplazar al peor padre de la población (selección extintiva).
Schwefel introdujo el uso de múltiples hijos en las denominadas (μ+λ)-EEs y (μ,λ)-EEs.
La notación se refiere al mecanismo de selección utilizado:
9. • En el primer caso, los μ mejores individuos obtenidos de la unión de padres e hijos
sobreviven.
• En el segundo caso, sólo los μ mejores hijos de la siguiente generación
sobreviven.
Rechenberg formuló una regla para ajustar la desviación estándar de forma determinista
durante el proceso evolutivo de tal manera que el procedimiento convergiera hacia el
óptimo.
Esta se conoce como la “regla del éxito 1/5”, que indica que:
La razón entre mutaciones exitosas y el total de mutaciones debe ser 1/5. Si es mayor,
entonces debe incrementarse la desviación estándar. Si es menor, entonces debe
decrementarse.
Algunas aplicaciones de las Estrategias Evolutivas son:
Problemas de rutas y redes
Bioquímica
Óptica
Diseño en ingeniería
Magnetismo
10. ALGORITMOS GENÉTICOS
Los Algoritmos Genéticos (denominados originalmente “planes reproductivos genéticos”)
fueron desarrollados por John H. Holland a principios de los 1960s [42, 43], motivado por
su interés en resolver problemas de aprendizaje de máquina.
El algoritmo genético enfatiza la importancia de la cruza sexual (operador principal) sobre
el de la mutación (operador secundario) y usa selección probabilística. El algoritmo básico
es el siguiente:
Generar (aleatoriamente) una población inicial.
Calcular la aptitud de cada individuo.
Seleccionar (probabilísticamente) con base a la aptitud.
Aplicar operadores genéticos (cruza y mutación) para generar la siguiente
población.
Ciclar hasta que cierta condición se satisfaga.
La representación tradicional es la binaria, tal y como se ejemplifica en la figura. A la
cadena binaria se le llama “cromosoma”. Al bloque de bits que codifica una sola variable
del problema se le denomina “gen” y al valor dentro de cada posición cromosómica se le
llama “alelo”.
11. Para poder aplicar el algoritmo genético se requiere de los 5 componentes básicos
siguientes:
Una representación de las soluciones potenciales del problema.
Una forma de crear una población inicial de posibles soluciones
(normalmente un proceso aleatorio).
Una función de evaluación que clasifique las soluciones en términos de su
“aptitud”.
Operadores genéticos que alteren la composición de los hijos que se
producirán para las siguientes generaciones (normalmente cruce sexual y
mutación).
Valores para los diferentes parámetros que utiliza el algoritmo genético
(tamaño de la población, probabilidad de cruza, probabilidad de mutación,
número máximo de generaciones, etc.)
Algunas aplicaciones de los Algoritmos Genéticos son las siguientes:
Optimización (estructural, de topologías, numérica, combinatoria, etc.)
Aprendizaje de máquina (sistemas clasificadores)
Bases de datos (optimización de consultas)
Reconocimiento de patrones (por ejemplo, imágenes o letras)
Generación de gramáticas (regulares, libres de contexto, etc.)
Planeación de movimientos de robots.
Predicción.
12. VENTAJAS DE LAS TÉCNICAS EVOLUTIVAS
Es importante destacar las diversas ventajas que presenta el uso de técnicas evolutivas
para resolver problemas de búsqueda y optimización:
Simplicidad Conceptual.
Amplia aplicabilidad.
Superiores a las técnicas tradicionales en muchos problemas del mundo
real.
Tienen el potencial para incorporar conocimiento sobre el dominio y para
hibridarse con otras técnicas de búsqueda/optimización.
Pueden explotar fácilmente las arquitecturas en paralelo.
Son robustas a los cambios dinámicos.
14. CONCEPTO
Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés
como: "ANN") son un paradigma de aprendizaje y procesamiento automático inspirado en
la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de
interconexión de neuronas en una red que colabora para producir un estímulo de salida.
En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes
neuronales.
Darpa (1988), define una red neuronal como un sistema compuesto de muchos elementos
simples de procesamiento los cuales operan en paralelo y cuya función es determinada
por la estructura de la red, el peso de las conexiones; realizándose el procesamiento en
cada uno de los nodos o elementos de computo.
Según Haykin (1994), una red neuronal es un procesador paralelo masivamente
distribuido que tiene una facilidad natural para el almacenamiento de conocimiento
obtenido de la experiencia para luego hacerlo utilizable. Se parece al cerebro en dos
aspectos:
El conocimiento es obtenido por la red a través de un proceso de
aprendizaje.
Las conexiones interneuronales conocidas como pesos sinápticos son
utilizadas para almacenar dicho conocimiento.
T. Kohonen en "An Introduction to Neural Computing". Neural Networks, Vol. 1, págs. 3-
16, 1988 en la que se define como "Un conjunto de redes interconectadas masivamente
en paralelo de elementos simples (usualmente adaptativos) y con organización jerárquica,
las cuales intentan interactuar con los objetos del mundo real de mismo modo que lo hace
el sistema nervioso biológico".
15. Redes Neuronales en el campo de la Inteligencia Artificial
LA NEURONA ARTIFICIAL
Cualquier modelo de red neuronal consta de dispositivos elementales de procesamiento:
las neuronas. A partir de ellas, se pueden generar representaciones específicas, de tal
forma que un estado conjunto de ellas pueda significar una letra, un número o cualquier
otro objeto. Generalmente se pueden encontrar tres tipos de neuronas:
Aquellas que reciben estímulos externos, relacionas con el aparato sensorial, que
tomarán la información de la entrada, denominadas unidades de entrada.
Dicha información se transmite a ciertos elementos internos que se ocupan de su
proceso. Es la sinapsis y neuronas correspondientes a este segundo nivel donde se
genera cualquier tipo de representación interna de la información. Puesto que no tienen
relación directa con la información de entrada y de salida, estos elementos se denominan
unidades ocultas.
Una vez ha finalizado el periodo de procesado, la información llega a las unidades de
salida, cuya misión es dar la respuesta del sistema.
16. VENTAJAS DE LAS REDES NEURONALES
Debido a su constitución las redes neuronales artificiales presentan un gran número de
características semejantes a las del cerebro: son capaces de aprender de la experiencia,
de generalizar de casos anteriores a nuevos casos, de abstraer características esenciales
a partir de entradas que representan información irrelevante, etc. Estas ventajas incluyen:
Aprendizaje adaptativo: capacidad de aprender a realizar tareas basada en
un entrenamiento o una experiencia inicial.
Auto organización: una red puede crear su propia organización o
representación de la información que recibe mediante una etapa de
aprendizaje.
Tolerancia a fallos: la destrucción parcial de una red conduce a una
degradación de su estructura; sin embargo, algunas capacidades de la red
se pueden retener, incluso sufriendo un gran daño.
Operación en tiempo real: los computadores neuronales pueden ser
realizados en paralelo y se diseñan y fabrican máquinas con hardware
especial para obtener esta capacidad.
Fácil inserción dentro de la tecnología existente: se pueden obtener chips
especializados para mejorar su capacidad en ciertas tareas.
17. APLICACIONES DE LAS REDES NEURONALES
Las redes neuronales son una tecnología computacional que puede utilizarse en un
gran número y variedad de aplicaciones, tanto comerciales como militares. Cuando se
implementan mediante hardware (redes neuronales en chips VLSI), presentan una alta
tolerancia a fallos del sistema y proporcionan un grado de paralelismo en el proceso
de datos muy grande.
Hay muchos tipos de redes neuronales pudiéndose clasificar en distintas disciplinas:
Biología
Aprender más acerca del cerebro
Obtención del modelo de la retina
Empresa
Evaluación de probabilidad de formaciones geológicas y petrolíferas
Explotación de bases de datos
Optimización de plazas y horarios en líneas de vuelo
Reconocimiento de caracteres escritos
Medio ambiente
Analizar tendencias y patrones
Previsión del tiempo
Finanzas
Previsión de la evolución de los precios
Valoración del riesgo de los créditos
Interpretación de firmas
Identificación de falsificaciones
18. Manufacturación
Robots y sistemas de control (visión artificial y sensores de presión, temperatura, etc)
Control de producción en líneas de proceso:
Medicina
Analizadores del habla para la ayuda de audición de sordos
Monitorización en cirugía
Predicción de reacciones adversas a los medicamentos
Lectores de rayos X
Diagnóstico y tratamiento a partir de síntomas y/o datos analíticos
Militares
19. CONCLUSIÓN
Cualquier sistema neuronal tiene como propósito el control centralizado de las distintas
funciones que rigen el organismo. En el desarrollo de la tecnología de la información,
actualmente parece existir una nueva fase donde el objetivo es reproducir muchas de las
funciones neuronales artificialmente. Por ejemplo, la implementación de funciones
sensoriales para hacer ver u oir a las máquinas.