Resumen
En el presente documento se analizara de
manera sintetizada el desarrollo a través del tiempo de la
inteligencia artificial (I.A), Se dará una
introducción donde se encuentran los conceptos
básicos de la misma así como su historia,
posteriormente procederemos a analizar los campos de
investigación mas importantes y sus aplicaciones en la
Sociedad. Pondrá especial énfasis en los algoritmos
genéticos, como funcionan y para que fueron
creados
Index Terms-Algoritmos,
Aprendizaje, Inteligencia Artificial,
Introducción
L
A Inteligencia Artificial (desde ahora
IA) es una disciplina que se dedica al desarrollo de
software informático capaz de ejecutar trabajos
inteligentes. Sus Principales objetivos son:
1) Estudiar el comportamiento inteligente
de las personas humanas.
2) Crear programas computacionales
inteligentes capaces de imitar el comportamiento humano
[1]
Aunque los sistemas computacionales y sus
algoritmos secuenciales han superado ampliamente la destreza
humana en campos como el cálculo matemático, los
computadores no han sido capaces de procesar información
básica como por ejemplo el lenguaje natural, la
visión, el aprendizaje por experiencia. [2]
Definiciones
Algunas definiciones
importantes:
La IA es el arte de crear máquinas
con capacidad de realizar funciones que realizadas por personas
requieren de inteligencia. (Kurzweil,1990) La IA es el estudio de
cómo lograr que las computadoras realicen tareas que, por
el momento, los humanos hacen mejor. (Rich,Knight,1991). La IA es
la rama de la ciencia de la computación que se ocupa de la
automatización de la conducta inteligente. (Lugar y
Stubblefied,1993). La IA es el campo de estudio que se enfoca a
la explicación y emulación de la conducta
inteligente en función de procesos computacionales.
(Schalkoff, 1990). [4]
Historia
Aunque no forman parte de la IA los
primeros pasos de la misma datan desde hace 300 años A.C.,
Aristóteles filósofo griego fue el primero en
estudiar y entender de manera básica los silogismos o
procesos que al ser emulados da como resultado conclusiones
básicas de entendimiento.[8]
El génesis de la IA data desde los
años 1943-1956 con Warren McCulloch y Walter Pitts,
neurofisiólogo y matemático respectivamente
presentaron su modelo de redes neuronales artificiales y termina
con el taller en Dartmouth en donde se acuña finalmente el
Termino "Inteligencia Artificial" a esta
disciplina.[8]
En 1957 Newell y Simon realizan el
desarrollo del General Problems Solver (GPS). GPS era un sistema
orientado a la resolución de problemas matemáticos
generales mediante lógica.[8][9]
A finales de los años 50 y comienzos
de la década del 60 se desarrolla un programa dirigido a
la lectura de oraciones en inglés y la extracción
de conclusiones a interpretando su significado, su autor fue
Robert K. Lindsay. [8]
En 1965-70, comenzaron a aparecer software
profesional, los mismos que predicen la probabilidad de una
solución matemática en cálculo
complejo.[9]
En la década 1970-80, creció
el uso de estos sistemas, muchas veces diseñados para
problemas realmente muy complejos como MYCIN, que asistió
a médicos en el diagnóstico y tratamiento de
infecciones en la sangre. [8][9]
En 1980 hasta la actualidad la IA. se
convierte en una industria y se retoman los estudios sobre las
Redes Neuronales, esta aportando nueva teoría, para crear
una computadora pensante aplicable a la robótica.
[2],[3].
Desarrollo
¿Cómo
funciona la IA?
La IA funciona mediante algoritmos, los
mismos que son programados en leguaje de computadora. Algunos
lenguajes mas utilizados para la programación de IA son
Lisp y Prolog ya que son lenguajes de programación
declarativos [5]. Aunque cabe recalcar que se comenzó
desarrollando software de IA en lenguaje de muy bajo nivel como
assembler, y con el desarrollo de la tecnología
también se han desarrollado mejores lenguajes de
programación, mas adaptables y sencillos para aplicaciones
de IA. [6]
Por otro lado para resolver un problema se
necesita primero tener un buen planteamiento del mismo, para eso
hay que tomar en cuenta varias cosas:
1) Tener en cuenta cual es la
situación original de la que se parte. (Condiciones
iniciales)
2) Establecer el estado final o
solución del problema. (Que se desea llegar a
obtener)
3) Tener en claro cual es el conjunto de
operadores y medios se van a utilizar para que el problema se
resuelva
Si estos tres pasos no pueden darse, se
considera que el problema esta mal planteado o
formado.[6]
Aunque los 3 estados anteriores son
básicos para el planteamiento del problema debemos tomar
en cuenta otros 2 aspectos un tanto mas abstractos para el
entendimiento de la maquina.[7][6]
1) Introducir el concepto de espacio de
situaciones o estados posibles, en este punto se situara la
situación inicial y final del problema.
2) Concepto de búsqueda esto quiere
decir encontrar caminos para llevar desde el estado inicial hasta
el estado final del problema.[7]
Teniendo en cuenta estos puntos podemos
decir que siendo las condiciones iniciales del problema la
raíz del mismo debemos encontrar caminos rápidos
para llegar a la solución, esto a través de la
introducción del concepto de espacio y búsqueda en
el software [6]
Algunos ejemplos prácticos son los
llamados algoritmos genéticos, que son algoritmos basados
en las premisas de selección natural y evolución. Y
sirven para estudiar el proceso evolutivo de las especies.
[7]
Ramificaciones de la
IA
La IA se ha dividido en campos para su
estudio esto debido a la infinidad de aplicaciones que puede
tener, a continuación veremos los campos más
destacados:
1) Sistemas Expertos
Son sistemas interactivos basados en
computadora que utiliza la herramienta de decisión tanto
de los hechos y heurísticos[8] para resolver problemas
complejos, decisiones basadas en los conocimientos de un
experto[9]. Por definición, un sistema experto es un
programa informático que simula el proceso de pensamiento
de un experto humano para resolver problemas de decisión
complejos en un dominio específico [8][9].
Los sistemas expertos son, por lo tanto,
intermediarios entre el experto humano, que transmite sus
conocimientos al sistema, y el usuario de dicho sistema, que lo
emplea para resolver los problemas que se le plantean con la
competencia de un especialista en la materia y que,
además, puede adquirir una destreza semejante a la del
experto gracias a la observación del modo de actuar de la
máquina[13]
Los sistemas expertos se organizan en
cuatro niveles diferentes: 1.1) El conocimiento de base se
compone de reglas de resolución de problemas,
procedimientos y datos intrínsecos relacionados con el
dominio del problema. 1.2) La memoria de trabajo se refiere a
tareas específicas de datos para el problema en
cuestión. 1.3) Inferencia del motor es un mecanismo de
control al que se aplica una base de conocimientos a los datos
específicos de la tarea de llegar a alguna solución
o conclusión. 1.4) User interfaz – el código que
controla el diálogo entre el usuario y el
sistema.[8][9][3]
2) Aprendizaje y Razonamiento
Automático
Es el estudio y el modelado
informático de los procesos de aprendizaje en sus
múltiples manifestaciones constituyen el objeto de
investigación del aprendizaje automático.
[11]
También se podría considerar
como tratar de construir sistemas informáticos que
optimicen un criterio de rendimiento utilizando datos o
experiencia previa. Una situación en la que se requiere
aprender es cuando no existe experiencia humana o cuando no es
fácilmente explicable [12]
Actualmente los estudios se centran es 3
ejes distintos
2.1) Estudios orientados a las tareas: A
partir de una tarea predeterminada analizar los sistemas de
aprendizaje aplicados para mejorar en el desarrollo de esa
tarea.
2.2) Simulación cognoscitiva: La
investigación y simulación informática del
proceso de aprendizaje humano.
2.3) Análisis teórico: La
exploración teórica del espacio de los posibles
métodos de aprendizaje y los algoritmos con independencia
del dominio de las aplicaciones [11]
3) Robótica
Los robots experimentales creados para
estos efectos eran automatismos capaces de recibir
información procedente del mundo exterior (sensores,
cámaras de televisión, etc.), así como
órdenes de un manipulador humano (expresadas en lenguaje
natural). De este modo, el robo determinaba un plan y, de acuerdo
con él, ejecutaba las órdenes recibidas mediante el
empleo de un modelo del universo en el que se encontraba. Era
incluso capaz de prever las consecuencias de sus acciones y
evitar, así, aquéllas que más tarde pudieran
resultarle inútiles o, en algún momento,
perjudiciales.[13]
El principal problema con el que se
enfrenta la inteligencia artificial aplicada a los robots es el
de la visión. Mientras que la información recibida
a través de censores se puede interpretar con relativa
facilidad y entra a formar parte de la descripción del
modelo de universo que emplea el robot para tomar decisiones, la
percepción de las imágenes captadas y su
interpretación correcta es una labor muy compleja. En
cuanto a la interpretación de las imágenes captadas
mediante cualquier sistema, se ha logrado ya el reconocimiento de
formas preprogramadas o conocidas, lo que permite que ciertos
robots lleven a cabo operaciones de reubicación de piezas
o colocación en su posición correcta a partir de
una posición arbitraria.[13]
Existen algunos algoritmos que pueden
completar el recorrido de la gráfica, aunque algunos de
los agentes de la matriz o la gráfica cambia durante la
ejecución, siempre y cuando el gráfico permanece
conectado. [12]
4) Procesamiento de Lenguaje
Natural
El procesamiento del Lenguaje natural, en
la IA trata sobre el análisis de los patrones del lenguaje
e intentar crear algoritmos sobre los cuales el Computador
entienda en palabras utilizadas en una conversación de
alto nivel, abstrayendo datos y comprendiendo el mensaje, cabe
recalcar que esto no solo se centra en el entendimiento de
sonidos sino también textos. [15]
Existen técnicas de
Recuperación de información, estos utilizan
técnicas basadas en distribución de los
términos del documento para estimar la relevancia con
respecto a la consulta. Para esto inicialmente se necesita que el
sistema emplee algoritmos que entiendan de cierta manera la
consulta y la compare. Un grave problema al que se ve
acompañado esta técnica es la gran variación
del lenguaje, ya que el mismo concepto se puede operar y entender
en varios circunstancias. [15]
5) Redes Neuronales
Las Redes Neuronales ratifícales son
sistemas de procesamiento que copian esquemáticamente la
estructura neuronal del cerebro para tratar de reproducir sus
capacidades [17]
En consecuencia, son una clase de modelos
no lineales flexibles que se caracterizan por ser sistemas
paralelos, cuentan con una gran cantidad de procesadores
elementales y cada uno de estos trabaja con una pequeña
parte de un problema mayor. Estos procesos son muy adaptables de
acuerdo al entorno. [16]
La característica más
importante de estos sistemas es su capacidad de aprendizaje,
donde el conocimiento se basa en un numero de muestras.
Además las redes neuronales sugieren que poseen varias
ventajas potenciales sobre los métodos estadísticos
tradicionales. [16]
Algunas aplicaciones practicas que se han
dado a las redes neuronales son los campos financieros ya que
estos no se comportan de forma lineal.[16][1][18]
Las Redes neuronales también tienen
aplicaciones es en la economía, primero para la
clasificación de agentes económicos como las
compañías para obtener una estimación de
quiebra, capacidad acreedora de clientes bancarios.
[16][18]
6) Algoritmos
genéticos
"Los algoritmos genéticos son
programas que evolucionan, simulando en cierto grado, la
selección natural, alcanzan a resolver sistemas complejos,
que ni siquiera quienes lo crearon pueden comprender plenamente"
Jhon H. Holland [21]
Los algoritmos genéticos (AG)
proporcionan un método de aprendizaje basado en la
analogía con la evolución de las especies. Los AG
generan un conjunto de hipótesis mediante la
mutación y recombinación de parte del conjunto de
hipótesis conocido. En cada paso el conjunto de
hipótesis conocido como "población actual" se
renueva remplazando una proporción de esta
población por los sucesores de las hipótesis
más "adecuadas". [14]
El comportamiento básico de un
algoritmo genético es el siguiente: de forma iterativa va
actualizando la población de hipótesis. En cada
iteración, todos los miembros de la población son
procesados por la función de evaluación, tras lo
cual una nueva población es generada. La nueva
generación estará compuesta por:
– Las mejores hipótesis de la
población actual
(Seleccionadas
probabilísticamente)
– Y el resto de hipótesis necesarias
para mantener el número, que se consiguen mediante el
cruce de individuos.
A partir de dos hipótesis padre
(seleccionadas probabilisticamente a partir de la
población actual) se generan dos hipótesis hijas
recombinando sus partes siguiendo algún criterio
establecido. [14][20]
Una vez llegados a este punto (con una
nueva población con el mismo número de individuos),
a un determinado porcentaje de la población se le aplica
un operador de mutación. [14]
Una forma para la selección de
individuos consiste en obtener una distribución de
probabilidad asociada a cromosomas, habitualmente dividiendo la
adaptación de uno en la suma de toda la población y
en aprovechar dicha distribución a una ruleta, dando mas
espacio en la misma a los individuos mas adaptados.
[19][14]
Los investigadores mas pragmáticos
creen que lo que hay que hacer con el uso de los algoritmos
geneticos es no envidiar los métodos de la naturaleza de
selección natural sino emular esos métodos para
adaptarlos a las diferentes relaciones y acciones sociales
existentes de esa manera entender el de mejor manera como la
sociedad va evolucionando.[21][22]
Un problema muy real es que la
selección natural elimina uno los problemas mas grandes de
la programación de algoritmos al saber las necesidades
naturales por adelantado lo que obstaculiza al realizar
algoritmos del tipo genéticos. [23][14]
La ventaja usar algoritmos genéticos
en el campo computacional es que pueden resolver mayores
problemas que los algoritmos y programas
tradicionales.[23][24]
En casi todos los organismos naturales la
evolución se produce debido a dos procesos primarios: la
selección natural y el proceso de reproducción.
[25]
La primera determina que individuo
sobrevivirá a los cambios naturales, mientras que la
segunda asegura la mezcla y combinación de individuos y
organismos, mejorando las capacidades de los mismos mediante la
evolución.
Debido a esta mezcla los organismos
evolucionan de una manera mas rápida.[22]
En cambio la selección constituye un
proceso relativamente sencillo: Cuando un organismo falla en
alguna prueba de idoneidad, este organismo
muere.[26][29]
El problema principal de los algoritmos
genéticos es encontrar un código que simule un
código genético, este código que al ser
recombinado pueda presentar mejoras en su propio algoritmo
evolucionando de manera autónoma sin que la mano de su
creador primigenio este inmiscuida en el mismo.[23]
Para evitar este problema, se ha debatido
en las forma en la que un programa pueda reproducirse y mutarse a
si mismo por lo que se ha conjeturado una serie de reglas que
deben contener los algoritmos geneticos, cada una de estas reglas
son especificas, y se darán siempre que un dato satisfaga
sus condiciones.[26]
Estas condiciones equivalen a cadenas de
bits en las entradas del sistema para que el sistema reaccione y
comience a recombinarse.[27][22]
Aunque el rasgo mas importante de estas
reglas sea su capacidad de reconocer parámetros, pueden
servir también para reconocer
parámetros.[19][27]
La forma para reconocer evolutivamente
parámetros es la siguiente:
Se parte de datos aleatorios ceros y
unos.
Se evalua cada de esos datos tomando en
cuenta la calidad del resultado.[23]
Las cadenas de datos de mayor calidad se
reproducen mientras las inferiores mueren. [25]
Mediante este método podemos obtener
que al pasar las generaciones de cadenas, se obtendrá
resultados del problema cada vez mas perfectos.[25]
Los problemas en los que mas se han
utilizado este tipo de algoritmos van desde la teoría de
juegos hasta diseño de maquinas complejas.[26]
Los AG se enfrentan a posteriori a un
problema mayor cual de todas esas variantes de cadenas de datos
es la respuesta mejor adapatada que se busca.[30][31]
Una técnica que generalmente es
utilizada para resolver este problema es iniciar desde un punto
elegido al azar, si una ligera modificación mejora la
calidad de nuestra solución se continua por ese camino, de
no ser asi se elige otro punto al azar y se continua con las
pruebas.[28][16]
Pero mientras mas complejo sea el sistema
mas puntos puede generar de posibles soluciones validas, esto
aumenta mas la dificultad de encontrar la posible solución
al problema, en este caso el procedimiento anterior para
encontrar la solución al sistema se hace casi nula e
invalida. [23][28]
Para el caso anterior se dota a los
algoritmos genéticos no solo con la capacidad de
reproducirse sino también con la capacidad de buscar entre
todo el conjunto de soluciones las que contengan las mayores
probabilidades de ser las correctas.
Esta habilidad de los AG para concentrar
las soluciones mas prometedoras es fruto directo de poder
intercambiar sus cadenas portadoras de soluciones
parciales.[30][21]
Es Impórtate recalcar que las
cadenas hijas resultado de la mezcla de las mismas no remplazan a
las cadenas padres sino que ocupan las cadenas anteriormente
eliminadas.[17][25]
En cuanto al tema de la mutación que
ya venimos hablando anteriormente se estima que alrededor de cada
10000 bits de evolución en un algoritmo genético un
bit se cambia de 0 a1 y viceversa, aunque esta habilidad no
permite mejorar el encontrar soluciones a los problemas que se
plantean, si dan la plena seguridad de que los mismos se
mantengan en constante evolución y que por el motivo de la
falta de mutacion dejen de evolucionar y se tornen
inútiles en la búsqueda de la solución
deseada.[13][28][29][30]
El algoritmo genético explota las
mas altas posibilidades de soluciones en el espacio de estados,
estas posibles soluciones se denominan regiones
diana.[22]
Cuando existen unos y ceros contiguos, se
les llama bloques contructivos, estos bloques tienen la mayor
probabilidad de crecer para las siguientes generaciones, lo que
al mismo tiempo les da alta probabilidad de encontrar la
respuesta idónea a un problema
propuesto[19][21]
Es también de suma importancia
entender el sistema de clasificación de las reglas de un
sistema con Algoritmos Genéticos, los Algoritmos
Genéticos se diseñan de manera tal que las cadenas
de códigos compitan entre si, para esto se intenta hacer
competir diferentes partes del código, por el control del
sistema, en esta competencia los códigos que se encuentren
en la punta del control del sistema alcanzan mas oportunidad de
seguirse reproduciendo, de esta manera, se acentúa aun mas
el hecho de que se tiene que evolucionar de una manera mas eficaz
para conseguir el control del sistema y por ende la punta de la
cadena evolutiva. [22][19][23]
Conclusiones
Podemos concluir que la inteligencia
artificial es un campo que estudia el comportamiento del cerebro
humano y lo intenta simular de manera artificial en robots y
computadoras.
En 56 años desde que fue
acuñado el termino "Inteligencia Artificial" la misma a
encontrado campos de aplicación importantes y de ayuda a
la sociedad, los sistemas expertos aportan al diagnostico de
enfermedades, las redes neuronales ayudan a la comprensión
de fenómenos económicos sociales entre otros, los
algoritmos genéticos facilitan a obtener una
estimación de la evolución de genes y
células. El aprendizaje automático nos permite
simular las etapas de la enseñanza y la forma de entender
y asimilar conceptos por parte de nuestro cerebro. En el campo de
la robótica se intenta simular el comportamiento humano
para que puedan realizar tareas comunes, de esta manera mejorar
la calidad de vida de la humanidad.
Los algoritmos genéticos permiten
modelar el sistema de reproducción de la vida y su
selección natural, los algoritmos de este tipo emulan la
evolución natural de varias maneras.
Primero la reproducción de esta
manera las cadenas de código se aseguran de estar en
evolución mediante la mezcla de dichas cadenas.
La selección natural es simulada
mediante reglas y algoritmos que permitan escoger entre un grupo
de soluciones posibles la que probablemente tenga una
solución mas perfecta al problema planteado.
La mutación, como se vio
anteriormente en el paper cada cierta cantidad de cadenas de
código se cambia un bit en los mismos mutándolo lo
que permite hacer que la evolución no se estanque y
continúe el proceso.
La competencia es importante en los
algoritmos genéticos se los hace competir entre diferentes
algoritmos para obtener el control del sistema asegurando que
intentaran evolucionar de manera mas rápida y eficaz para
la obtención del control del sistema.
Aunque la inteligencia artificial tiene ya
algún tiempo de desarrollo aun no se ha logrado concretar
algoritmos que supongan una real simulación de las
respuestas del cerebro, Se espera que con el mejoramiento de
algoritmos, tecnología, materiales de construcción
de computadoras y elementos electrónicos, se lograra un
acercamiento mas profundo al modelado del cerebro humano, lo que
nos hará comprender de una mejor manera nuestra forma de
aprender del mundo y los procesos que intervienen en
ello.
References
[1] Javier De Andrés
Suárez, "Técnicas de la Inteligencia
Artificial aplicadas al análisis de la solvencia
empresarial", Articulo, pp. 1–4.[2] Vicente Pablo Guerrero Bote,
Cristina Lopez-Pujalte, "Inteligencia Artificial y
documentación", Articulo, 2001, pp.
66–74.[3] Stuart J. Russell, Peter
Norvig, Artificial Intelligence A modern Approach,
PrenticeHall, EnglewoodCliffs, NewJersey 07632, ch
1-7[4] http://www.gestiopolis.com/administracion-estrategia/inteligencia-artificial.htm
[5] http://www.larevistainformatica.com/clasificacion-de-los-lenguajes-de-programacion.html
[6] Claudio Gutierrez, Un
algoritmo de Inteligencia Artificial, Articulo,
pp.6-26[7] Davis, L. and Mitchell, M.,
Handbook of genetic algorithms, Article, Van
Nostrand Reinhold, 1991[8] Pearl, J., Heuristics:
intelligent search strategies for computer problem
solving, Book, Addison-Wesley Pub. Co., Inc., Reading,
MA, 1984[9] Obaid Mirza, Habeeb,
Artificial Intelligence And Expert Systems,
Paper[10] Medicherla Pratyusha, Morla
Sirisha, Artificial Intelligence & Learning
computers,Paper, Nalanda Institute of
Engineering, 2007[11] http://www.itba.edu.ar/nuevo/archivos/secciones/art_revistas_5.pdf
[12] http://www.dia.fi.upm.es/index.php?page=aprendizaje-automatico&hl=es_ES
[13] I.A. Gravagne , B. Mulgrew,
and P. M. Grant, "Large deflection dynamics and control for
planar continuum robots," IEEE Trans.. June
2003[14] David Díaz,
Gastón Crevillén, "Inteligencia Artificial,
Robótica, Neurocomputación, Programación
Neuronal y otras Hierbas",2011[15] Jesus Vilares Ferro,
"Aplicaciones del Procesamiento del lenguaje natural en la
recuperación de la información en
español", Departamento de computación,
Universidad la Coruña, 2006.[16] Antonio Parisi F,
"Evaluación de modelos de redes neuronales de
predicción del signo de la variación del IPSA",
2002[17] Martin del Brio, "Las redes
neuronales Artificiales",1997[18] Carlos Serrano Cinca,
Bonifacio Martin del Brio, "Predicción de la quiebra
bancaria mediante el empleo de Redes Neuronales"
,1993[19] O. Cordon, F. Moya, M.C.
Zarco, "Breve estudio sobre la aplicación de los
Algoritmos Genéticos a la recuperación de la
Información", Universidad de Granada.[20] John H. Holland, "Algoritmos
Genéticos", Investigación y Ciencia,
1992.[21] E. Rich, K. Knight,
"Inteligencia Artificial", McGraw Hill (1994).
Capítulo 1[22] Javier Bejar "Inteligencia
Artificial"[23] Fernández "Artificial,
pero no inteligencia" (suministrado)[24] J. Pitrat " El nacimiento de
la Inteligencia Artificial" (suministrado[25] S. Russel, "Inteligencia
Artificial: Un enfoque moderno", Prentice
Hall(1996)[26] Varios. "Inteligencia
artificial. Conceptos, técnicas y aplicaciones"
Marcombo (1987).[27] E. Charniak, D. McDermott
"Introduction to Artificial Intelligence" Addison-Wesley
(1985).[28] R. Penrose, "La Inteligencia
y los Ordenadores" (suministrado).[29] R. Reddy, "The Challenge of
Artificial Intelligence" (suministrado).[30] T. Munakata (Guest Editor),
"New Horizons in Commercial and Industrial AI"
(suministrado)[31] A. Humberto Vargas R
"Aplicaciones de la inteligencia artificial"
Autor:
Prieto Galarza Ricardo Manuel.
Universidad Politécnica Salesiana
Cuenca-Ecuador