La finalidad de la inteligencia artificial
consiste en crear teorías y modelos que muestren la organización y
funcionamiento de la inteligencia. Actualmente, el mayor esfuerzo en la
búsqueda de la inteligencia artificial se centra en el desarrollo de sistemas
de procesamientos de datos que sean capaces de imitar a la inteligencia humana,
realizando tareas que requieran aprendizaje, solución de problemas y
decisiones. A veces llamada inteligencia de máquina, la inteligencia artificial
o AI (Artificial Intelligence) cubre una vasta gama de teorías y prácticas.
1.1 La base de la inteligencia
artificial
La inteligencia artificial se basa en dos áreas de
estudio: el cuerpo humano y el ordenador electrónico. Puesto que la meta es
copiar la inteligencia humana, es necesario entenderla. Sin embargo, a pesar de
todos los progresos en Neurología y Psicología, la inteligencia del hombre se
conoce poco, exceptuando sus manifestaciones externas. Muchos estudiosos de la
inteligencia artificial se han vuelto – para obtener su modelo de inteligencia
– hacia el estudio de la Psicología cognoscitiva, que aborda la forma de
percibir y pensar de los seres humanos.. Después comprueban sus teorías
programando los ordenadores para simular los procesos cognoscitivos en el
modelo. Otros investigadores intentan obtener teorías generales de la
inteligencia que sean aplicables a cualquier sistema de inteligencia y no solo
al del ser humano.
1.2 ¿Pueden pensar las máquinas?
En 1950 el matemático inglés Alan M. Turing
publicó un ensayo que comenzaba así: “Quiero proponer una pregunta: ¿Pueden
pensar las máquinas?.” Como la pregunta era demasiado vaga (¿Qué entendemos por
“pensar”?), Turing desarrolló un experimento basado en un juego de salón en el
que una persona formula a dos jugadores escondidos (un hombre y una mujer)
preguntas que le servirán para descubrir cuál de los dos es la mujer. Turing
propuso sustituir uno de los dos jugadores escondidos por una máquina
inteligente capaz de conversar. Si el examinador, que se servía de un teletipo
para comunicarse, no podían distinguir cuál de los dos jugadores era la
máquina, ello evidenciaría – según Turing – que la máquina podía pensar. En la
actualidad, este experimento de Turing podría ser superado, en situaciones
limitadas, por muchos programas de ordenador estudiados para dialogar con el
usuario.
Investigaciones acerca de la inteligencia
artificial realizadas en la Universidad de Yale (EE.UU.) han llevado al
desarrollo de programas de ordenador mediante los cuales éstos pueden aprender
y razonar. Otros estudiosos de la inteligencia artificial están poniendo a
punto sistemas para dotar a los ordenadores de capacidad visual y auditiva. Una
importante área de investigación es la del lenguaje normal, que permite a los
ordenadores comunicarse mediante lenguaje humano en lugar de hacerlo en
lenguaje de máquina. Es decir, la mayoría de los ordenadores están programados
para recibir e interpretar instrucciones de este tipo: S#DYR=48-56, LOC=AS NOT
SW, EN=RALSTON”. Únicamente personas preparadas son capaces de comunicarse
eficazmente de esta forma. Pero si un ordenador programado para gestionar la
documentación de una compañía petrolífera pudiese entender la orden
dactilografiada (traducción de la anterior) “Encuéntrame toda la documentación
relativa a las perforaciones de los pozos de Arabia Saudita entre 1948 y 1956,
pero únicamente la de los pozos en que trabajó Ralston, no los de la zona
surocciodental del país”, muchas personas podrían utilizarlo.
1.3
Los fines de la IA
Las primeras investigaciones acerca de la
inteligencia artificial estaban principalmente dirigidas al hallazgo de una
técnica universal para la solución de problemas. Este intento a gran escala ha
sido abandonado y las investigaciones actuales están dirigidas al diseño de
numerosos programas para ordenadores capaces de imitar los procesos de toma de
decisiones de expertos, como médicos, químicos, basados en los conocimientos de
especialistas en cada materia, son ahora utilizados para diagnosticar
enfermedades, identificar moléculas químicas, localizar yacimientos de
minerales e incluso diseñar sistemas de fabricación. Investigaciones acerca de
la percepción han sido aplicadas a los robots y se han diseñado algunos capaces
de “ver”. La meta final consiste en crear un sistema capaz de reproducir todas
las facetas de la inteligencia humana.
La Inteligencia Artificial "nació"
en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona
del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron
una representación simbólica de la actividad cerebral.
Más adelante, Norbert Wiener elaboró estas
ideas junto con otras, dentro del mismo campo, que se llamó
"cibernética"; de aquí nacería, sobre los años 50, la Inteligencia Artificial.
Los primeros investigadores de esta
innovadora ciencia, tomaron como base la neurona formalizada de McCulloch y
postulaban que:
“El cerebro es un solucionador inteligente de
problemas, de modo que imitemos al cerebro”.
Pero si consideramos la enorme complejidad
del mismo esto es ya prácticamente imposible, ni que mencionar que el hardware
de la época ni el software estaban a la altura para realizar semejantes proyectos.
Se comenzó a considerar el pensamiento humano
como una coordinación de tareas simples relacionadas entre sí mediante
símbolos. Se llegaría a la realización de lo que ellos consideraban como los
fundamentos de la solución inteligente de problemas, pero lo difícil estaba
todavía sin empezar, unir entre sí estas actividades simples.
Es en los años 50 cuando se logra realizar un
sistema que tuvo cierto éxito, se llamó el Perceptrón de Rossenblatt. Éste era
un sistema visual de reconocimiento de patrones en el cual se asociaron
esfuerzos para que se pudieran resolver una gama amplia de problemas, pero
estas energías se diluyeron enseguida.
Fue en los años 60 cuando Alan Newell y Herbert Simon, que
trabajando la demostración de teoremas y el ajedrez por ordenador logran crear
un programa llamado GPS (General
Problem Solver: solucionador general de problemas). Éste era un sistema en
el que el usuario definía un entorno en función de una serie de objetos y los
operadores que se podían aplicar sobre ellos. Este programa era capaz de
trabajar con las torres de Hanoi, así como con criptoaritmética y otros
problemas similares, operando, claro está, con microcosmos formalizados que
representaban los parámetros dentro de los cuales se podían resolver problemas.
Lo que no podía hacer el GPS era resolver problemas ni del mundo real, ni médicos
ni tomar decisiones importantes. El GPS manejaba reglas heurísticas (aprender a partir de
sus propios descubrimientos) que la conducían hasta el destino deseado mediante
el método del ensayo y el error.
En los años 70, un equipo de investigadores dirigido por Edward Feigenbaum comenzó a elaborar un proyecto para resolver problemas de la vida cotidiana o que se centrara, al menos, en problemas más concretos. Así es como nació el sistema experto.
En los años 70, un equipo de investigadores dirigido por Edward Feigenbaum comenzó a elaborar un proyecto para resolver problemas de la vida cotidiana o que se centrara, al menos, en problemas más concretos. Así es como nació el sistema experto.
El primer sistema experto fue el denominado Dendral, un intérprete de espectrograma de masa
construido en 1967, pero el más influyente resultaría ser el Mycin de 1974. El Mycin era capaz de diagnosticar trastornos en la sangre
y recetar la correspondiente medicación, todo un logro en aquella época que
incluso fueron utilizados en hospitales (como el Puff, variante de Mycin de uso
común en el Pacific Medical Center de San Francisco, EEUU).
Ya en los años 80, se desarrollaron lenguajes
especiales para utilizar con la Inteligencia Artificial ,
tales como el LISP o el PROLOG. Es en esta época cuando se desarrollan
sistemas expertos más refinados, como por el ejemplo el
EURISKO. Este programa perfecciona su propio cuerpo de reglas heurísticas
automáticamente, por inducción.
Desarrollo Histórico (según Jackson, 1986)
1950-1965 Periodo “clásico”
- Gestación
(McColluck y Pitts, Shannon,
Turing)
- Inicio - reunión
de Darmouth College en 1956 (Minsky, McCarthy)
- Redes
neuronales, robótica (Shakey)
- Búsqueda en un
espacio de estados, Heurísticas, LISP
- Solucionador
general de problemas (GPS) (Newell,
Simon)
- Juegos, prueba
de teoremas
- Limitaciones de
pura búsqueda, explosión combinatoria.
1965-1975
Periodo “romántico”
- Representación
“general” del conocimiento.
- Redes semánticas
(Quillian)
- Prototipos
(frames) (Minsky)
- Perceptrón (Minsky
y Papert)
- Lógica
(Kowalski)
- Mundo de bloques
(SHDRLU) (Winograd)
- Compresión de
lenguaje, visión, robótica.
- Dificultades de
representación “general”, problemas de “juguete”.
1975-Hoy
Periodo “moderno”. Inteligencia “especifica” vs. “general”
- Representación
explícita del conocimiento específico del dominio.
- Sistemas expertos o basados en
conocimiento.
- Regreso de redes
neuronales (Hopfield, Rumelhart, Hinton), algoritmos genéticos (Holland,
Goldberg) Reconocimiento de voz (HMM), incertidumbre (RB, Lógica difusa),
planeación, aprendizaje. Aplicaciones “reales” (medicina, finanzas,
ingeniería, exploración, etc.).
- Limitaciones:
conocimiento “superficial”
Desarrollo Histórico
(según Russell y Norvig, 1995):
Gestación
(1943-1956):
- McCullock y
Pitts (1943)
- Hebb (1949)
- Shannon (1950)
- Turing (1953)
- Minsky y Edmonds (1951)
- Darmouth College (1956)
- McCarthy, Newell y Simon, « The Logic Theorist »
Entusiasmo
y grandes expectativas (1952-1969):
- Samuel -
checkers (1952)
- McCarthy (1958): LISP: time sharing, Programs with
common sense.
- Minsky y McCarthy en MIT
moldearon mucho del área.
·
Trabajo
en RN: Hebb, Widrow, Rosenblatt
Dosis de realidad (1966-1974):
Dosis de realidad (1966-1974):
- Simon predecía
que en 10 años se tendría una máquina inteligente.
- Predicciones
similares en traducción automática y ajedrez.
- Teoría de NP-
completness.
- Experimentos en machine evolution (ahora algoritmos
genéticos; estaban bien fundados pero no produjeron nada.) (Friedberg,
1958)
- Minsky y Papert
Perceptrons (1969) (aunque irónicamente el mismo año se descubrió
backpropagation (Bryson y Ho))
Sistemas
basados en conocimiento (1969-1979):
IA
como industria (1980-1988):
- R1/XCON,
proyecto de la quinta generación, shells y máquinas de LISP.
Regreso
de redes neuronales (1986-presente):
- Hopfield,
Rumelhart y Hinton y descenso de los SE
Eventos
recientes (1987-presente):
- Cambio gradual
hacia los técnicos y lejos de los rudos (implica cierto grado de madurez y
estabilidad) ej., reconocimiento de voz (HMM), incertidumbre (Bayes),
planeación (Tweak), robótica, aprendizaje (PAC), etc.
3. CARACTERÍSTICAS
DE LA INTELIGENCIA ARTIFICIAL
1. Una característica
fundamental que distingue a los métodos de Inteligencia Artificial de los
métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente
para distinguirlo completamente. Otros tipos de programas como los compiladores
y sistemas de bases de datos, también procesan símbolos y no se considera que
usen técnicas de Inteligencia Artificial.
- El
comportamiento de los programas no es descrito explícitamente por el
algoritmo. La secuencia de pasos seguidos por el programa es influenciado
por el problema particular presente. El programa especifica cómo encontrar
la secuencia de pasos necesarios para resolver un problema dado (programa
declarativo). En contraste con los programas que no son de Inteligencia
Artificial, que siguen un algoritmo definido, que especifica,
explícitamente, cómo encontrar las variables de salida para cualquier
variable dada de entrada (programa de procedimiento).
- El razonamiento
basado en el conocimiento, implica que estos programas incorporan factores
y relaciones del mundo real y del ámbito del conocimiento en que ellos
operan. Al contrario de los programas para propósito específico, como los
de contabilidad y cálculos científicos; los programas de Inteligencia
Artificial pueden distinguir entre el programa de razonamiento o motor de
inferencia y base de conocimientos dándole la capacidad de explicar
discrepancias entre ellas.
- Aplicabilidad a
datos y problemas mal estructurados, sin las técnicas de Inteligencia
Artificial los programas no pueden trabajar con este tipo de problemas. Un
ejemplo es la resolución de conflictos en tareas orientadas a metas como
en planificación, o el diagnóstico de tareas en un sistema del mundo real:
con poca información, con una solución cercana y no necesariamente exacta.
La Inteligencia Artificial incluye varios
campos de desarrollo tales como: la robótica, usada principalmente en el campo
industrial; comprensión de lenguajes y traducción; visión en máquinas que
distinguen formas y que se usan en líneas de ensamblaje; reconocimiento de
palabras y aprendizaje de máquinas; sistemas computacionales expertos.
Los sistemas expertos, que reproducen el
comportamiento humano en un estrecho ámbito del conocimiento, son programas tan
variados como los que diagnostican infecciones en la sangre e indican un
tratamiento, los que interpretan datos sismológicos en exploración geológica y
los que configuran complejos equipos de alta tecnología.
Tales tareas reducen costos, reducen riesgos
en la manipulación humana en áreas peligrosas, mejoran el desempeño del
personal inexperto, y mejoran el control de calidad sobre todo en el ámbito
comercial.
3.1 Programa fijo y programa modificado por
el procesamiento
Existen grandes
diferencias entre el funcionamiento de las máquinas y el del cerebro: algunas
son evidenciadas en el esquema bajo estas líneas. Las máquinas y el cerebro se
diferencian en muchos aspectos: el primero es ligado a la arquitectura del
sistema de memoria y a la elaboración realizada por la inteligencia natural,
que influye en los programas sucesivos al ser almacenada en la memoria que
mantiene disponibles todos los hechos que se han ido acumulando a lo largo del
tiempo. Abajo a la izquierda se muestra el esquema de funcionamiento de un
sistema artificial: procesa datos que recibe del exterior y que le son presentados
ya seleccionados. Los procesa mediante un programa fijo, siempre elegido y
construido por el hombre, es decir, desde el exterior.
Este programa es sencillo
comparado con los utilizados por el cerebro humano. A lo largo del tiempo, un
mismo programa que procese los mismos datos obtendrá siempre los mismos
resultados. Sin embargo, este sistema es muy veloz cuando se le piden
secuencias de operaciones. Contrariamente, el cerebro humano es capaz de
procesar al mismo tiempo todas las informaciones contenidas en una imagen, y el
resultado de dicho procesamiento puede servir para modificar el programa, que
para posteriores utilizaciones será más completo. La observación de una imagen muestra la diferencia fundamental entre el
modo de procesar los datos del cerebro humano y el de la máquina. El cerebro
humano no actúa teniendo en cuenta un programa prefijado, sino más bien uno de
naturaleza variable en el tiempo; las variaciones dependen de los resultados
procedentes. De hecho, el cerebro tiene la propiedad de recordar imágenes
similares; una vez vista la figura, extrae de su memoria imágenes similares
previamente almacenadas y los resultados de los análisis realizados sobre
ellas. Estos resultados sirven para mejorar el programa según el cual sacará
conclusiones aplicadas al examen de la figura.
Diferentes teorías:
1.
Construir
réplicas de la compleja red neuronal del cerebro humano (bottom-up).
- Intentar
imitar el comportamiento del cerebro humano con un computador (top-down).
4.1 Símbolos vs.
Métodos Numéricos
El primer período de
la Inteligencia Artificial, llamado sub-simbólico, data de aproximadamente 1950
a 1965. Este período utilizó representaciones numéricas (o sub-simbólicas) del
conocimiento. Aunque la mayor parte de los libros de Inteligencia Artificial
enfatizan el trabajo realizado por Rosenblatt y Widrow con redes neuronales
durante este período, la realidad es que otra importante escuela sub-simbólica
data también de la misma época y estos son los algoritmos evolutivos.
La escuela clásica
dentro de la Inteligencia Artificial, utiliza representaciones simbólicas
basadas en un número finito de primitivas y de reglas para la manipulación de
símbolos. El período simbólico se considera aproximadamente comprendido entre
1962 y 1975, seguido por un período dominado por los sistemas basados en el
conocimiento de 1976 a
1988. Sin embargo, en este segundo período las representaciones simbólicas (por
ejemplo, redes semánticas, lógica de predicados, etc.) siguieron siendo parte
central de dichos sistemas.
La Programación
Lógica tiene sus orígenes más cercanos en los trabajos de J. A. Robinson que
propone en 1965 una regla de inferencia a la que llama resolución, mediante la cual la demostración de un teorema puede
ser llevada a cabo de manera automática.
La resolución es una regla que se aplica
sobre cierto tipo de fórmulas del Cálculo de Predicados de Primer Orden,
llamadas cláusulas y la demostración de teoremas bajo esta regla de inferencia
se lleva a cabo por reducción al absurdo.
Otros trabajos
importantes de esa época que influyeron en la programación lógica, fueron los
de Loveland, Kowalski y Green, que diseña un probador de teoremas que extrae de
la prueba el valor de las variables para las cuales el teorema es válido.
Estos mecanismos de
prueba fueron trabajados con mucho entusiasmo durante una época, pero, por su
ineficiencia, fueron relegados hasta el nacimiento de Prolog, que surge en 1971
en la Universidad de Marsella, Francia.
La Lógica de Primer
Orden, es uno de los formalismos más utilizados para representar conocimiento
en Inteligencia Artificial. La Lógica cuenta con un lenguaje formal mediante el
cual es posible representar fórmulas llamadas axiomas, que permiten describir
fragmentos del conocimiento y, además consta de un conjunto de reglas de
inferencia que aplicadas a los axiomas, permiten derivar nuevo conocimiento.
4.2 Alfabeto del
Lenguaje de la Lógica de Primer Orden
Contiene dos tipos de símbolos:
a.
Símbolos
lógicos, entre los que se encuentran los símbolos de constantes proposicionales
true y false; los símbolos de operadores proposicionales para la negación, la
conjunción, la disyunción y las implicaciones (=>, <=); los símbolos de
operadores de cuantificación como el cuantificador universal; el cuantificador
existencial; y los símbolos auxiliares de escritura como corchetes [,],
paréntesis (,) y coma.
- Símbolos
no lógicos, agrupados en el conjunto de símbolos constantes; el conjunto
de símbolos de variables individuales; el conjunto de símbolos de
funciones n-arias; y el conjunto de símbolos de relaciones n-arias.
A partir de estos
símbolos se construyen las expresiones válidas en el Lenguaje de Primer Orden: los
términos y las fórmulas.
Un término es
cualquiera de las tres expresiones siguientes: una constante, por ejemplo, el
número "100", la palabra "alfredo" y la letra
"c"; o una variable, por ejemplo, "X" o bien una expresión
de la forma "f(t1,...,tn)" donde "f" es un símbolo de
función n-aria y t1,...,tn son términos. Ejemplos de funciones son: f(100,X),
padre(Y) y sucesor(X).
Las fórmulas atómicas o
elementales son expresiones de la forma R(t1,...,tn) donde R es un símbolo de
relación n-aria y t1,...,tn son términos.
Ejemplos de fórmulas
son:
positivo(3),not(igual(4,doble(2))),
recetar(X,aspirina)<=tiene(X,fiebre), tiene(X,cefalea).
Esta última establece
una regla que dice que, si X tiene fiebre y cefalea (dolor de cabeza), X debe
tomar una aspirina.
El Lenguaje de Primer
Orden posee un amplio poder de expresión, los términos permiten nombrar los
objetos del universo, mientras que las fórmulas permiten afirmar o negar
propiedades de éstos o bien establecen las relaciones entre los objetos del
universo.
Puede decirse que la
Programación Lógica utiliza la Lógica de Primer Orden como lenguaje de
programación. Prolog es un ejemplo de lenguaje basado en la Lógica de Primer
Orden y aunque toma su nombre de este término ("PROgramming in
LOGic"), no abarca toda la riqueza de la Lógica de Primer Orden para
resolver problemas, pues está restringido al uso de cierta clase de fórmulas
denominadas cláusulas definidas o cláusulas de Horn.
Un programa lógico
está formado por un conjunto finito de cláusulas de programa que son hechos o
reglas. Por ejemplo:
padre(luis,miguel).
hecho
padre(miguel,jose). hecho
padre(jose,juan). hecho
abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla
padre(miguel,jose). hecho
padre(jose,juan). hecho
abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla
Este programa está
formado por cuatro cláusulas de programa, las tres primeras son del tipo hecho y
definen la relación padre/2 y la cuarta una regla que define la relación
abuelo/2. Nótese el uso de las variables X,Y y Z en esta cláusula, las cuales
permiten definir de manera general en Prolog la relación "ser abuelo
de", pues la lectura declarativa de dicha cláusula es la siguiente:
"Para cualesquiera X,Y,Z se cumple que: X abuelo de Y, si X padre de Z y Z
padre de Y".
En Prolog es posible
hacer preguntas sobre objetos y relaciones del dominio y estas preguntas se
formulan como objetivos o metas, que son evaluadas por el intérprete de Prolog
utilizando su mecanismo de inferencia interno, el cual determina si la meta a
demostrar es una consecuencia lógica del programa, aplicando reglas de
deducción para obtener la respuesta.
Por ejemplo, del
programa anterior, utilizando la cláusula de tipo meta ?abuelo(X,juan),
para preguntar ¿quién es el abuelo de Juan? o bien ¿quiénes son los abuelos de
Juan?, es posible deducir que Luis es abuelo de Juan, aunque implícitamente no
existe en el programa ningún hecho que así lo afirme.
En este ejemplo de análisis de oraciones,
podemos observar de qué manera se analiza una oración ingresada por el usuario
y cómo el ordenador lo traduce en un lenguaje lógico de primer orden.
En este caso la ejecución del programa, para dicha meta, arrojaría como resultado que X=luis.
En este caso la ejecución del programa, para dicha meta, arrojaría como resultado que X=luis.
El método de
deducción utilizado por Prolog, para dar respuesta a los objetivos planteados,
se basa en el uso de una única regla de inferencia: el Principio de Resolución.
Los primeros trabajos
de prueba automática de teoremas utilizaban la resolución, aplicada a cláusulas
cualesquiera, pero el problema de las deducciones con cláusulas generales es el
gran número de combinaciones posibles para llevar a cabo las resoluciones.
Por ello Prolog
restringe el conjunto de cláusulas, lo que le permite llevar a cabo una prueba
dirigida y, en la mayoría de los casos, con un universo de posibilidades
explorable en tiempo de ejecución.
5.1 Tipos de Algoritmos Utilizados
Cuando una tarea se
realiza por medio de un algoritmo perfectamente definido de almacenamiento,
clasificación o cálculo, lo puede hacer un computador. Este concepto de
algoritmo, secuencial, fijo y de determinadas operaciones, es incapaz de
manejar problemas donde el camino del razonamiento es variable y donde deben
afrontarse situaciones diversas sin haber sido especificadas.
La Inteligencia
Artificial hace uso de un tipo de lenguaje diferente como es el caso de LISP y
PROLOG.
En 1932, Cannon
visualizó la evolución natural como un proceso de aprendizaje. Alan Turing
reconoció, en 1950, que debe haber una conexión obvia entre el aprendizaje de
máquina y la evolución, y señaló que se podrían desarrollar programas para
jugar ajedrez usando esta técnica. Campbell conjeturó en 1960 que en todos los
procesos que llevan a la expansión del conocimiento, se involucra un proceso
ciego de variación y supervivencia selectiva.
Los primeros intentos
de aplicar de manera formal la teoría de la evolución, a problemas prácticos de
ingeniería, apareció en las áreas de control de procesos estadísticos,
aprendizaje de máquina y optimización de funciones. Tal vez el primer intento
serio de este tipo se dio en el trabajo que realizaron Box y sus colegas en
1957, en el desarrollo de una técnica que denominaron operación evolutiva, la
cual se aplicó a una planta de manufactura, y que se implanto sobre la base de
los votos de un comité de jefes técnicos. Bajo este esquema, la calidad del
producto avanzaba a través de mutaciones aleatorias y la selección era
determinada por el comité.
Por su parte,
Friedberg intentó, en 1958, hacer que un programa en lenguaje máquina se
mejorara a sí mismo, seleccionando instrucciones que se asociaran más
frecuentemente con un resultado exitoso. Aunque Friedberg nunca mencionó
explícitamente estar simulando la evolución natural, esa es la interpretación
más comúnmente aceptada de su trabajo, y a pesar de que tuvo cierto éxito
evolucionando manipuladores de bits y determinando las interconexiones de una
caja negra de 1400 terminales, la comunidad de Inteligencia Artificial de la
época prestó poca atención a su trabajo. Por ejemplo, Minsky lo criticó
duramente, argumentando que una búsqueda puramente aleatoria era mucho mejor
que el algoritmo de Friedberg.
El trabajo de
Bremermann, en 1958, se enfocó más a la optimización, introduciendo el
importante manejo de un valor de aptitud, y definiendo a un individuo como una
cadena de símbolos binarios (unos y ceros). Bremermann advirtió, acertadamente,
que la mutación jugaba un papel importante en la evolución, pues impedía el
estancamiento en mínimos locales. Aunque muchas de sus ideas se usan hoy en
día, Bremermann cometió el error de tratar de optimizar funciones lineales y convexas,
obteniendo resultados decepcionantes, pues sus algoritmos evolutivos tenían que
ser complementados con otras heurísticas para converger en una solución. Hoy
sabemos que los algoritmos evolutivos difícilmente pueden competir con las
técnicas tradicionales de optimización en esos dominios.
Barricelli ofreció,
en 1954, una de las primeras simulaciones que usaba principios evolutivos,
utilizando los mismos procedimientos generales que se usan hoy en día en la
disciplina conocida como vida artificial. Sin embargo, en este trabajo, así
como el que Reed realizó posteriormente en 1967, se concluyó que la cruza no
parecía mejorar la velocidad de la adaptación selectiva, y el operador
primordial era la mutación.
Fue Fogel el que
introdujo la primera técnica evolutiva que realmente funcionó más o menos
dentro de los lineamientos actuales de la computación evolutiva. Su
programación evolutiva consistía en hacer evolucionar autómatas de estados
finitos por medio de mutaciones. Fogel introdujo los importantes conceptos de
población y selección, y aunque las revisiones iniciales de su trabajo fueron
favorables, algunos investigadores, como Solomonoff, enfatizaron que el método
de Fogel no debía verse en su estado actual (en 1966) como algo particularmente
útil para resolver problemas, a excepción de los más simples posibles.
Solomonoff vio a la programación evolutiva como una especie de búsqueda
escalando la colina modelada mediante autómatas, y otros investigadores como
Holland, Kieras, Rada y Lenat compartieron esa opinión.
Otra técnica
evolutiva dirigida particularmente a la optimización de funciones continuas de
alta complejidad se desarrolló en Alemania, en 1965, por Rechenberg y Schwefel.
Esta técnica, llamada estrategia evolutiva, se utilizó inicialmente para resolver
problemas de ingeniería que desafiaban a los métodos de optimización
tradicionales, como el gradiente conjugado, y se basa en la modificación
sistemática de un vector de números reales (representando las variables de
decisión del problema) mediante operadores probabilísticos, usando ciertos
criterios para decidir en qué dirección dirigir la búsqueda. La estrategia
evolutiva utiliza como operador principal a la mutación, y en su versión más
reciente usa la cruza como operador secundario.
Aunque el australiano
Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John
Holland llamó planes evolutivos a fines de los 60, es al segundo al que se le
suele atribuir la creación de la técnica que se conoce como algoritmo genético,
a raíz de que Holland publicara el libro "Adaptation in Natural and Artificial Systems" en 1975.
5.1.1 Algoritmo Genético
La principal
diferencia del algoritmo genético con las técnicas antes mencionadas, es que
utiliza la cruza como operador principal y a la mutación como operador
secundario (e incluso opcional). El algoritmo genético, al igual que las redes
neuronales, funciona como una caja negra que recibe ciertas entradas y produce
(tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo,
a diferencia de éstas, los algoritmos genéticos no necesitan entrenarse con
ejemplos de ningún tipo, sino que son capaces de generar sus propios ejemplos y
contraejemplos que guíen la evolución a partir de poblaciones iniciales
totalmente aleatorias.
Los mecanismos de
selección del más apto y de reproducción sexual del algoritmo genético, son los
encargados de preservar las características más adecuadas de cada individuo a
fin de hacer converger a la población en soluciones óptimas.
Los algoritmos genéticos
se distinguen también por no quedar atrapados fácilmente en mínimos locales,
como la mayor parte de las técnicas de búsqueda clásicas, además de usar
operadores probabilísticos más robustos que los operadores determinísticos, que
las otras técnicas suelen usar.
No obstante, siendo
una heurística, tampoco pueden garantizar encontrar siempre la solución óptima,
si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se
utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la
mayoría de los casos, superiores a las encontradas con otras técnicas de
búsqueda y optimización.
Aunque aún atacados
por algunos sectores de la comunidad de Inteligencia Artificial, los algoritmos
genéticos, al igual que las redes neuronales, se han ido ganando poco a poco, y
sobre la base de la efectividad de sus resultados en aplicaciones prácticas, el
reconocimiento de los investigadores como una técnica efectiva en problemas de
gran complejidad, como lo demuestra un número creciente de conferencias y
publicaciones especializadas alrededor del mundo, en los últimos años.
5.2 Sistemas Basados
en Conocimiento
Los métodos generales
desarrollados para la resolución de problemas y técnicas de búsqueda al inicio
de la era de la Inteligencia Artificial demostraron no ser suficientes para
resolver los problemas orientados a las aplicaciones, ni fueron capaces de
satisfacer los difíciles requerimientos de la investigación.
A este conjunto de
métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial
Débil. La principal conclusión que se derivó de este trabajo inicial fue
que los problemas difíciles sólo podrían ser resueltos con la ayuda del
conocimiento específico acerca del dominio del problema.
La aplicación de
estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en
Conocimiento (Knowledge Based Systems) y al aparecimiento de la
Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que
estudia los sistemas basados en el conocimiento. La definición de un sistema
basado en conocimiento puede ser la siguiente:
Componentes: software de interfaz,
base de datos, programa computacional.
Una relativamente
nueva categoría de sistemas de información orientada al servicio es el sistema experto, llamado así porque su
base de datos guarda una descripción de habilidades en la toma de decisiones de
experiencias humanas en un estrecho dominio de procedimientos, tales como
interpretación médica de imagen, impuestos, diseño de piping, configuración de
hardware en un sistema de computadores, equipamiento para reparar
malfuncionamientos o, en la preparación de cerveza.
La motivación para
construir sistemas expertos es el deseo de replicar el escaso, in estructurado
y quizás el pobremente documentado conocimiento empírico de especialistas que
de este modo puede ser rápidamente usado por otros.
Un programa
computacional que usa inteligencia artificial resuelve problemas en un dominio
especializado que ordinariamente requiere experiencia humana.
El primer sistema experto
fue desarrollado en 1965 por Edward Feigenbaum y Joshua Lederberg de la
Universidad de Standford en California, EEUU, y se lo llamó Dendral. Fue diseñado para analizar
componentes químicos.
Dado que cada
condición que puede ser encontrada puede ser descrita por una regla, los
sistemas expertos basados en reglas no pueden manejar eventos no anticipados,
pero pueden evolucionar con el uso, y permanece limitado a un estrecho dominio
de problemas.
Otra variante de
sistemas expertos, uno que no posee esta limitación, emplea una base de
conocimiento que consiste de descripciones estructuradas de situaciones, de
problemas del mundo real y de decisiones actualmente hechas por expertos
humanos.
En medicina, por
ejemplo, el registro de un paciente contiene descripciones de datos personales,
exámenes físicos y de laboratorio, diagnóstico clínico, tratamiento propuesto,
y los resultados de tales tratamientos.
Dada una gran base de
datos con tales registros en una especialidad médica, el médico puede indagar
acerca de eventos análogos a los relacionados con el paciente. Esto en
contraste con el sistema que idealmente intenta reemplazar al ser humano, ya
que en casos como estos sólo podría usarse este tipo de conocimiento como una
herramienta que ayuda en la toma de decisiones.
El software requerido
para este tipo de sistemas se ha ido complicando con el tiempo ya que su
desarrollo demanda tiempo, un buen equipo de programadores y un buen producto
final.
Se percibe este trabajo como una tarea para el ingeniero y consiste de:
·
Identificación
y análisis de los requerimientos del usuario.
·
Desarrollo
de las especificaciones del sistema (software y hardware).
·
Diseño
del software.
·
Implementación
·
Testeo
·
Mantenimiento
Tareas típicas para
sistemas expertos involucran clasificación, diagnóstico, monitoreo, diseño,
inventario y planificación para esfuerzos especializados.
5.2.1 Niveles de conocimiento
A
pesar de no disponerse de un modelo general comúnmente aceptado, existe
unanimidad en cuanto a la aprobación de tres niveles distintos de
conocimientos, a los que corresponde tres fases diferentes de estudio y sobre
los que se basa, en general, la concepción de un sistema experto. Esos niveles
son el de estructuración, el conceptual y el cognoscitivo. El primero es el que define el mecanismo que genera
la certeza. Este mecanismo varía según el campo al que se aplique el sistema
experto, ya que las evidencias asociadas a cada campo no son idénticas. La
determinación del nivel de estructuración permite definir un formalismo de representación
del conocimiento así como un mecanismo adecuado de deducción. El nivel
conceptual es el que determina el conjunto de los conceptos que emplea el
experto humano en la materia; cada uno de ellos corresponde a un nudo del
razonamiento del experto. Se le asocia un descriptor que se experimenta con el
formalismo correspondiente al nivel de estructuración. Finalmente, el nivel
cognoscitivo corresponde al conjunto de los conocimientos que el experto humano
pone en práctica para la resolución del problema planteado. Este conjunto de
conocimientos debe poder traducirse al lenguaje definido mediante el formalismo
de representación del conocimiento adoptado. En cuanto al desarrollo actual de
la investigación en el campo de los sistemas expertos, la primera fase
corresponde al desarrollo de sistemas y programas que traten directamente el
lenguaje natural, si bien persisten todavía dos escollos importantes. Por un
lado, el problema de cómo emplear de un modo eficaz una gran cantidad de
información sin necesidad de echar mano de la combinatoria; es decir, cómo
conseguir un sistema dotado de conocimientos (metaconocimientos) que le
permitan utilizar los conocimientos del sistema y que, a su vez, le permitan
deducir automáticamente nuevos conocimientos, ya que no cabe pensar en la
reunión de todos los conocimientos necesarios en casos de campos tan sumamente
vastos como el del diagnóstico en la medicina.
5.3 Sistemas
Expertos
Los
sistemas expertos se basan en la simulación del razonamiento humano. El
razonamiento humano tiene para ellos, un doble interés: por una parte, el del
análisis del razonamiento que seguiría un experto humano en la materia a fin de
poder codificarlo mediante el empleo de un determinado lenguaje informático;
por otra, la síntesis artificial, de tipo mecánico, de los razonamientos de
manera que éstos sean semejantes a los empleados por el experto humano en la
resolución de la cuestión planteada.
Estos
dos campos de interés han conducido a los investigadores que trabajan en el
campo de la inteligencia artificial (de la cual los sistemas expertos son un
campo preferente) a intentar establecer una metodología que permita verificar
el intercambio con los expertos humanos y aislar los diversos tipos de
razonamiento existentes (inductivo, deductivo, formal, etc.), así como
construir los elementos necesarios para modelizarlos. 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. Los sistemas
expertos son, pues, simultáneamente, un sistema de ejecución y un sistema de
transmisión del conocimiento. Asimismo, los sistemas expertos se definen
mediante su arquitectura; obtienen, por lo tanto, una realidad palpable.
Mientras que en las operaciones de programación clásicas se diferencia
únicamente entre el propio programa y los datos, en el caso de los sistemas
expertos se diferencian tres componentes principales. Son los siguientes:
La
base de conocimientos aloja la totalidad de las informaciones específicas
relativas al campo del saber deseado. Está escrita en un lenguaje específico de
representación de los conocimientos que contiene y en el cual el experto puede
definir su propio vocabulario técnico.
A la
inversa de lo que sucede en los programas clásicos, en la base de conocimientos
las informaciones entran tal como llegan, ya que el orden no influye en los
resultados obtenidos. Sucede así porque cada elemento de conocimiento es
comprensible por sí mismo tomado de forma aislada y, por lo tanto, no es
necesario referirse al contexto en el cual está inserto. La información se
representa, por regla general, mediante reglas de producción o redes
semánticas. Las reglas de producción constituyen el método más utilizado para
construir bases de conocimientos en los sistemas expertos. Llamadas también
implicaciones lógicas, su estructura es la siguiente: para unas ciertas causas,
unos efectos; o, para determinadas condiciones, ciertas consecuencias. Junto a
cada regla, se almacena también su porcentaje en forma de probabilidad. Éste indica,
mediante un tanto por ciento, el grado de certeza de las consecuencias que se
obtienen como resultado de la aplicación de la regla de producción. En cuanto a
las redes semánticas, se trata de un método de construcción de bases de
conocimientos en el cual los conocimientos se muestran mediante un grafo en el
que los vértices representan los conceptos u objetos y las aristas indican las
relaciones entre ellos.
Además
el sistema dispone de la llamada base de
hechos, que alberga los datos propios correspondientes a los problemas que
se desea tratar con la ayuda del sistema. Asimismo, a pesar de ser la memoria
de trabajo, la base de hechos puede desempeñar el papel de memoria auxiliar. La
memoria de trabajo memoriza todos los resultados intermedios, permitiendo
conservar el rastro de los razonamientos llevados a cabo. Puede, por eso,
emplearse para explicar el origen de las informaciones deducidas por el sistema
en el transcurso de una sesión de trabajo o para llevar a cabo la descripción
del comportamiento del propio sistema experto. Al principio del período de
trabajo, la base de hechos dispone únicamente de los datos que le ha
introducido el usuario del sistema, pero, a medida que va actuando el motor de
inferencias, contiene las cadenas de inducciones y deducciones que el sistema
forma al aplicar las reglas para obtener las conclusiones buscadas.
El
último elemento, el motor de inferencias,
es un programa que, mediante el empleo de los conocimientos puede resolver el
problema que está especificado. Lo resuelve gracias a los datos que contiene la
base de hechos del sistema experto. Por regla general, el tipo de reglas que
forman la base de conocimientos es tal que, si A es válido, puede deducirse B
como conclusión. En este caso, la tarea que lleva a cabo el motor de
inferencias es la de seleccionar, validar y activar algunas reglas que permiten
obtener finalmente la solución correspondiente al problema planteado.
El
sistema experto establecido se compone, por lo tanto, de dos tipos bien
diferenciados de elementos, los propios del campo de los expertos relacionados
con el problema concreto (es decir, la base de conocimientos y la base de
hechos) y el que se puede aplicar de forma general a una gran variedad de
problemas de diversos campos (como el caso del motor de inferencias). Sin
embargo, el motor de inferencias no es un mecanismo universal de deducción, ya
que hay dos tipos diverso: los que emplean el razonamiento aproximativo (para
el cual el resultado puede ser erróneo) y aquellos que emplean un tipo de razonamiento
capaz de obtener un resultado (si llegan a él), con toda seguridad, verdadero.
5.3.1 Fases del proceso
Sin
embargo, a pesar de no existir una metodología generalmente aceptada en cuanto
a la concepción de los sistemas expertos, se admite por regla general un
esquema que consta de tres fases. En la primera fase, la discusión con el
experto o los expertos humanos en la cual se intenta, por un lado, delimitar el
problema a resolver y, por el otro, los modos de razonamiento que se emplearán
para su solución. La segunda fase comprende el desglose del formalismo de
expresión del conocimiento y la determinación del motor de inferencias adecuado
a dicho formalismo. Por último, la tercera etapa, corresponde a la creación de
la base de conocimientos (en colaboración con los expertos humanos), así como a
la comprobación y ajuste del funcionamiento del sistema experto mediante el
empleo de ejemplos.
La Vida Artificial se puede considerar como la parte de la Inteligencia
Artificial que pretende reproducir los procesos y comportamientos típicos de
los seres vivos. También podemos definirla como el intento de crear vida, o
algo parecido a la vida, mediante la combinación de símbolos (datos) y procesos
de símbolos (programas) independientemente del soporte físico de estos símbolos
y procesos.
Por una parte están los intentos "hardware" de emulación de
vida. Por ejemplo, es posible construir un pequeño robot con aspecto de ratón
capaz de encontrar la salida de un laberinto.
Por otra parte están las simulaciones "software". Éstas tienen
la ventaja de que permiten construir un gran número de seres vivos y entornos
en los que estos existen, de manera que es más fácil estudiar comportamientos
sociales.
Podemos construir los seres artificiales con el objetivo de solucionar
los problemas que a nosotros nos interesen, y que aprendan o colaboren entre
ellos hasta conseguir el resultado deseado.
De esta forma, se puede considerar la Vida Artificial (VA) como un paso
más allá después de la Programación Orientada a Objetos (POO), y sin embargo,
siendo la VA un caso particular de la POO. Es decir, si un objeto es un
elemento que encapsula datos y procedimientos, una entidad artificial es un
elemento que encapsula un objetivo, unos sentidos, unas acciones y unas
creencias. A esto le podemos llamar Programación Orientada a Agentes.
En muchos campos de estudio se plantea la posibilidad de realizar
simulaciones para intentar predecir o ayudar a la toma de decisiones acerca de
ciertos aspectos del mundo real. Hay dos formas de enfocar estas simulaciones.
La primera de ellas se basa en la observación de la realidad, centrando
la atención en los aspectos "a más alto nivel", es decir,
precisamente en los que se pretenden predecir o modificar, y también en aquellos
que aparentemente están más relacionados con éstos. El cerebro humano elabora
una teoría acerca de cómo todos estos aspectos varían. Esta teoría se formaliza
en fórmulas, reglas o algo parecido, y se simula en un ordenador ante diversas
condiciones iniciales. Se observa si el modelo, ante datos históricos del
pasado, ofrece salidas (resultados) que se ajustan a lo esperado según los
datos históricos, y en ese caso, se utiliza para la toma de decisiones en el
futuro, ajustando continuamente el modelo según el error obtenido. En caso de
obtener resultados muy alejados de la realidad, se revisa la teoría inicial,
reescribiéndola por completo, ajustando ciertos aspectos o detallando con mayor
nivel de profundidad los que parecen ser generalizaciones excesivas.
La segunda de ellas se basa en la observación de la realidad, centrando
la atención en los aspectos "a más bajo nivel" del problema, buscando
los aspectos más sencillos y a la vez con una alta multiplicidad. Es decir, el
cerebro humano identifica aquellas características sencillas que están
presentes en muchas entidades del problema. Mediante fórmulas, reglas o algo
parecido, se define un tipo genérico de entidad que admita estas
características, y en un ordenador se realiza una simulación basada en la generación
de un alto número de estas entidades capaces de interactuar entre sí, con la
esperanza en que de esta interacción emerja el comportamiento complejo que se
pretende estudiar. Inicialmente los agentes genéricos se definen tan sencillos
como sea posible sin dejar de ajustarse al problema. Se observa si el modelo,
ante datos históricos del pasado, ofrece salidas (resultados) que se ajustan a
lo esperado según los datos históricos, y en ese caso, se utiliza para la toma
de decisiones en el futuro, ajustando continuamente el modelo según el error
obtenido. En caso de obtener resultados muy alejados de la realidad, se deduce
que la definición del agente genérico (más su entorno, etc.) es demasiado
sencilla y se va complicando, añadiendo detalles hasta ajustarse
suficientemente a la realidad.
6.1 Cuestión Filosófica de la Vida Artificial
La
Vida Artificial también nos ofrece una "visión privilegiada" de
nuestra realidad. No hace falta que las simulaciones por ordenador sean todavía
más complejas, para poder tener el derecho a preguntarnos acerca de si nuestro
propio mundo no será también una "simulación dentro de un
cosmo-ordenador". De hecho, esta pregunta se ha planteado, desde tiempos
remotos, de infinidad de maneras.
Si
los ordenadores son capaces de simular universos artificiales poblados por
organismos que mediante la reproducción, las mutaciones y la selección natural,
evolucionan y se hacen cada vez más inteligentes y conscientes, podríamos
interpretar nuestro propio mundo como un "superordenador" donde
nosotros mismos somos los "seres artificiales" que lo habitan,
siguiendo el curso de evolución que El Programador ha deseado.
En
el caso de que existiera un creador y una intencionalidad, es decir, si El
Programador que nos ha creado lo ha hecho con algún objetivo, no sería
extraño que ese mismo programador hubiera implementado mecanismos para que sus
"entidades" (nosotros) no escapen a su control. Por ejemplo, podría
haber marcado límites a su movimiento (¿la velocidad de la luz? ¿la gravedad?)
en su ordenador (nuestro universo) ...¿O tal vez el límite de 300.000 km/seg
corresponde con los MHz del ordenador en el que vivimos?.
Pero
las limitaciones que el programador fija para controlar a sus entidades pueden
no ser suficientes. Algunos programadores de Vida Artificial quedan a menudo
gratamente sorprendidos por el inesperado comportamiento de sus pequeñas
creaciones, más inteligentes y capaces de lo que cabría esperar en un primer
momento.
Además,
los "bugs" (errores) en programación son probablemente una constante
en todos los universos, dimensiones y realidades posibles, así que tal vez el
"programador" haya dejado algún hueco por donde podamos colarnos; es
decir, que es posible que en nuestro mundo existan acciones, comportamientos, o
razonamientos con efectos maravillosos, que están ahí, accesibles, pero que aún
nadie ha realizado, ya sea por ignorancia, mala suerte, o porque provocan la
muerte a quien llega a adquirirlos. Un ejemplo de esto último se encuentra en
"Creced y Multiplicaos", de Isaac
Asimov.
6.2
Perspectivas Futuras de la Vida Artificial
Con poco más de diez
años de antigüedad, la Vida Artificial se ha convertido en un punto de
referencia sólido de la ciencia actual.
En septiembre de
1987, 160 científicos en informática, física, biología y otras disciplinas se
reunieron en el Laboratorio Nacional de Los Álamos para la primera conferencia
internacional sobre Vida Artificial. En aquella conferencia se definieron los
principios básicos que han marcado la pauta desde entonces en la investigación
de esta disciplina.
Un concepto básico
dentro de este campo es el de comportamiento
emergente. El comportamiento emergente aparece cuando se puede
generar un sistema complejo a partir de reglas sencillas. Para que se dé este
comportamiento se requiere que el sistema en cuestión sea reiterativo, es
decir, que el mismo proceso se repita de forma continua y además que las
ecuaciones matemáticas que definen el comportamiento de cada paso sean no
lineales.
Por otra parte, un
autómata celular consiste en un espacio n-dimensional dividido en un conjunto
de celdas, de forma que cada celda puede encontrarse en dos o más estados,
dependiendo de un conjunto de reglas que especifican el estado futuro de cada
celda en función del estado de las celdas que le rodean.
Hay dos posturas
dentro de la Vida Artificial: la fuerte y la débil.
Para los que apoyan
la postura débil, sus modelos son solamente representaciones simbólicas de los
síntomas biológicos naturales, modelos ciertamente muy útiles para conocer
dichos sistemas, pero sin mayores pretensiones.
Para los que
defienden la versión fuerte, dicen que se puede crear vida auténtica a partir
de un programa de ordenador que reproduzca las características básicas de los
seres vivos.
Desde este punto de
vista, la vida se divide en vida
húmeda, que es lo que todo el mundo conoce como vida, vida seca, formada por
autómatas físicamente tangibles, y vida
virtual, formada por programas de computador. Las dos últimas
categorías son las que integran lo que genéricamente se conoce como Vida
Artificial.
Para defender un
punto de vista tan radical, los defensores de la postura fuerte, aluden a un
conjunto de reglas que comparten las tres categorías anteriores:
·
La biología de lo posible: La
Vida Artificial no se restringe a la vida húmeda tal como la conocemos, sino
que "se ocupa de la vida tal como podría ser". La biología ha de
convertirse en la ciencia de todas las formas de vida posibles.
·
Método sintético: La actitud de la Vida
Artificial es típicamente sintética, a diferencia de la biología clásica, que
ha sido mayoritariamente analítica. Desde este punto de vista, se entiende la
vida como un todo integrado, en lugar de desmenuzarlo en sus más mínimas
partes.
·
Vida real (artificial): La Vida Artificial es
tal porque son artificiales sus componentes y son artificiales porque están
construidos por el hombre. Sin embargo, el comportamiento de tales sistemas
depende de sus propias reglas y en ese sentido es tan genuino como el
comportamiento de cualquier sistema biológico natural.
·
Toda la vida es forma: la vida es un proceso,
y es la forma de este proceso, no la materia, lo que constituye la esencia de
la vida. Es absurdo pretender que sólo es vida genuina aquella que está basada
en la química del carbono, como es el caso de la vida húmeda.
·
Construcción de abajo hacia arriba: la
síntesis de la Vida Artificial tiene lugar mejor por medio de un proceso de
información por computador llamado programación de abajo hacia arriba. Consiste
en partir de unos pocos elementos constitutivos y unas reglas básicas, dejar
que el sistema evolucione por sí mismo y que el comportamiento emergente haga
el resto. Poco a poco el sistema se organiza espontáneamente y empieza a surgir
orden donde antes sólo había caos.
Esta clase de
programación contrasta con el principio de programación en la Inteligencia
Artificial. En ella se intenta construir máquinas inteligentes hechos desde
arriba hacia abajo, es decir, desde el principio se intenta abarcar todas las
posibilidades, sin dejar opción a que el sistema improvise.
El principio de
procesamiento de información en la Vida Artificial se basa en el paralelismo masivo que ocurre en la vida real.
A diferencia de los modelos de Inteligencia Artificial en los que el
procesamiento es secuencial, en la Vida Artificial es de tipo paralelo, tal y
como ocurre en la mayoría de fenómenos biológicos.
7. LAS REDES NEURONALES
Si se pudieran explicar los procesos cognitivos superiores de una manera
intrínseca, es decir, si se pudiera demostrar que los procesos mentales
inteligentes que realiza el hombre se producen a un nivel superior (o intermedio)
con independencia de las capas subyacentes que existen hasta la constitución
física del ente inteligente, se demostraría que es posible crear -mediante un
sistema de símbolos físicos-, una estructura artificial que imite perfectamente
la mente humana mediante una arquitectura de niveles, ya que se podría
construir dicho nivel superior mediante la combinación de elementos que no
necesariamente han de ser los que forman el nivel inferior en los humanos (que
por ejemplo, podemos suponer que son las neuronas).
En cambio, si sólo se pudieran explicar los procesos cognitivos
superiores mediante una descripción al más bajo nivel (comportamiento
neuronal), sólo se podría imitar la inteligencia humana mediante la
construcción de neuronas artificiales. Para ser exactos, esta afirmación está
condicionada por la certeza de la suposición (bastante común) según la cual el
neuronal es el más bajo de los niveles relevantes para la formación de los
procesos cognitivos. Arbitrariamente, se podría haber elegido otro nivel aún
más bajo (moléculas, átomos). Llevado al extremo, se podría reescribir la
afirmación, sustituyendo "neuronas" por "la más pequeña
partícula de nuestro universo", si este fuera discreto (no infinitamente
divisible).
Las denominaciones "nivel superior" y "nivel
inferior" son arbitrarias en cuanto a que parece que se puede encontrar
con facilidad un nivel que esté aún más bajo que el que hemos llamado
"nivel inferior" -el nivel atómico es inferior al neuronal- y lo
simétrico respecto al nivel superior -la conciencia colectiva es superior a la
individual-. La existencia de una conciencia colectiva capaz de comunicarse a
un nivel superior al del individuo parece evidente en los estudios sobre el
comportamiento de algunos insectos, siempre que hagamos el esfuerzo de no
interpretar el término "conciencia colectiva" desde nuestro punto de
vista subjetivo como individuos. ¿Cómo conseguir esto? No es difícil, si se usa
una analogía bajando un nivel. Imaginemos dos células (concretamente, dos neuronas)
de nuestro cuerpo charlando amistosamente acerca de la posibilidad de que el
conjunto de células forme una "conciencia colectiva". Las neuronas
podrían hablar sobre esta "conciencia colectiva", ponerla en duda o
intentar argumentar su existencia, pero difícilmente podrían llegar a
comprenderla, no puede ser un concepto familiar para ellas.
Una Red
Neuronal es usada para aprender patrones y relaciones de datos. Los datos
pueden ser el resultado del esfuerzo de una investigación de mercado, el
resultado de un proceso de producción dando variación a las condiciones de
operación, o las decisiones de un prestamista dado un conjunto de aplicaciones
de préstamo, utilizando una Red Neuronal es una salida considerable parecida a
un enfoque tradicional. Tradicionalmente un programador o un analista
especifican “códigos” de cada faceta del problema en orden para la computadora
pueda “entender” la situación. Redes Neuronales no requieren el código
explícito del problema. Por ejemplo, para generar un modelo que lleve acabo un
pronóstico de ventas, una Red Neuronal solo necesita que le den los datos sin
preparar relacionados con el problema. Los datos sin preparar podrían consistir
en: historias de ventas pasadas, precios, precios de la competencia y otras
variables económicas. La Red Neuronal escoge entre esta información y produce
un acuerdo de los factores que influyen en las ventas. El modelo puede entonces
ser llamado para dar una predicción de ventas futuras dado un pronóstico de los
factores claves. Estos adelantos son debidos a la creación de reglas de
aprendizaje de una Red Neuronal, que son los algoritmos usados para “aprender”
las relaciones de los datos. Las reglas de aprendizaje habilitan a la red para
“ganar conocimiento” desde datos disponibles y aplica ese conocimiento para
asistir al gerente para hacer decisiones claves.
Aunque su estructura varía según el tipo de red, lo más usual es que haya
tres capas de neuronas, una de entrada, que recoge los estímulos, otra oculta,
que procesa la información, y otra de salida, que ejecuta la respuesta. La
figura siguiente muestra esta disposición:
7.1 Red
Neuronal Artificial
Las Redes
Neuronales Artificiales son el resultado de investigaciones académicas que
utilizan fórmulas matemáticas para modelar operaciones del sistema nervioso, es
decir, es un modelo de procesamiento de información que es inspirado por el
modo de un sistema nervioso biológico, tal como el cerebro procesa información.
El elemento clave de este paradigma es la estructura original del sistema de
procesamiento de información. Este se compone de un gran número de elementos
interconectados procesando y trabajando en armonía para resolver problemas
específicos. Las Redes Neuronales Artificiales, como la gente, aprenden con
ejemplos. Una Red Neuronal Artificial es configurada para una aplicación
específica, tal como el reconocimiento de patrones o clasificación de datos, a
través de un proceso de aprendizaje. Aprender en sistemas biológicos implica
ajustes para las conexiones sinópticas que existen entre las neuronas. Esto lo
hace una Red Neuronal Artificial.
También, las Redes Neuronales
Artificiales se han aplicado a un gran número de problemas reales de
complejidad considerable. Su ventaja más importante está en resolver problemas
que son demasiado complejos para tecnologías convencionales, problemas que no
tienen un algoritmo de solución o que su algoritmo de solución es muy difícil
de encontrar. En general, a causa de su abstracción del cerebro biológico, las
Redes Neuronales Artificiales son aptas para resolver problemas que la gente
puede resolver, pero las computadoras no pueden. Estos problemas incluyen
reconocimiento de patrones y pronósticos (los cuales requieren el
reconocimiento de tendencias de datos).
El hecho de suponer que el comportamiento inteligente en el hombre se
produce a un nivel superior con independencia de los niveles inferiores está
íntimamente relacionado con el debate entre holismo o creencia en que "el
todo es más que la suma de sus partes" y el reduccionismo, o creencia en
que "un todo puede ser comprendido completamente si se entienden sus
partes, y la naturaleza de su suma."
Los esfuerzos desarrollados en Arquitecturas Generales de Inteligencia
son puramente reduccionistas. Por el contrario, el holismo subyacente en los
modelos conexionistas como las Redes Neuronales Artificiales, sugiere el
aspecto de la interdependencia entre algunos niveles, o lo que es lo mismo, la
imposibilidad de sustituir un nivel (las conexiones neuronales, como sistema
sub-simbólico) por otro que realice sus mismas funciones (sistema simbólico).
Sin embargo, también las Redes Neuronales Artificiales pueden ser consideradas
reduccionistas si tenemos en cuenta otros niveles aún más bajos.
7.2 Modelos de Redes Neuronales
Los modelos de redes
neuronales también conocidos como modelos de procesamiento distribuido en
paralelo ó sistemas neuromorfológicos tienen su principio de funcionamiento
basado en la interconexión de alta densidad de elementos sencillos de cómputo.
La estructura de las redes neuronales ha sido desarrollada de acuerdo a nuestra
comprensión del sistema nervioso biológico. Estos modelos de redes han tenido
gran auge en áreas como el reconocimiento de imágenes y sonido, ya que dichas
redes procesan simultáneamente varias hipótesis a través de redes paralelas
compuestas de elementos de cómputo conectados a las variables ponderables. Los
elementos de cómputo o nodos utilizados en las redes neuronales son
generalmente no lineales y analógicos, además están caracterizados por un
umbral y offset interno. Algunas de las no linealidades más comunes son: los
limitadores lógicos del umbral y las no linealidades sigmoidales. Los nodos más
complejos incluyen temporal y otras operaciones matemáticas más complejas. Los
módulos de redes neuronales son especificados de acuerdo a la topología de la
red, las características de los nodos y las reglas de entrenamiento o
aprendizaje. Estas reglas indican un grupo inicial de valores y como deben
modificarse esos valores para obtener un mejor resultado. La mayoría de los
algoritmos de las redes neuronales realizan lecturas de los valores a analizar
a lo largo del tiempo para obtener bases en resultados actuales, valores más
confiables. Esto con el propósito que el aprendizaje y la adaptación sean lo
más óptimo posible. Para este fin se utilizan clasificadores, los cuales tienen
un grado de robustez determinado por la capacidad de adaptabilidad de la red,
mayor que los clasificadores estadísticos. Mediante la utilización de las redes
neuronales constituidas por una gran cantidad de circuitos simples de
procesamiento operando en paralelo se ha logrado obtener la capacidad de
procesamiento requerida hoy en día.
7.3 Granja de
Evolución
La evolución en la
naturaleza fue la clave para mejorar los organismos y desarrollar la inteligencia.
Michael Dyer, investigador de Inteligencia Artificial de la Universidad de
California, apostó a las características evolutivas de las redes neuronales y
diseñó Bio-Land.
Bio-Land es una
granja virtual donde vive una población de criaturas basadas en redes
neuronales.
Los biots pueden usar
sus sentidos de la vista, el oído e incluso el olfato y tacto para encontrar
comida y localizar parejas. Los biots cazan en manadas, traen comida a su prole
y se apiñan buscando calor.
Lo que su creador
quiere que hagan es hablar entre ellos, con la esperanza de que desarrollen
evolutivamente un lenguaje primitivo.
A partir de ese
lenguaje, con el tiempo podrían surgir niveles más altos de pensamiento.
8.1 Principales Ramas de la IA
·
Lógica difusa: Consiste en una nueva forma de entender la lógica,
en la que los enunciados dejan de ser cien por cien verdaderos o falsos, para
tomar valores fraccionarios. En el campo concreto de la IA esto supone evitar
las paradojas lógicas que pueden bloquear el sistema, y hacer que el ajuste
entre las variables sea más fino.
·
Robótica: Hoy por hoy, el mayor problema consiste en
conseguir que la supervivencia de las máquinas sea superior a unas horas. Por
otra parte, su coeficiente intelectual sólo les permite realizar tareas
simples, como salvar obstáculos y recoger objetos del suelo.
·
Realidad virtual: En los últimos tiempos han
surgido sistemas de realidad virtual, que simulan comportamiento inteligente, a
un coste mucho menor que el de los robots. Como ejemplo está Homer, un
submarino virtual creado por Steven A. Vere, del Centro de Inteligencia
Artificial de Lockheed, en Palo Alto. Homer es capaz de evitar obstáculos en su
deambular por el ciberespacio e informar sobre lo que ve. Como conclusión, todavía
no disponemos de respuesta a la pregunta con que empezamos el artículo. Cuanto
más se complican los sistemas de IA, más compleja se nos revela la capacidad
intelectual humana. Del mismo modo que el agua se alejaba del sediento Tántalo,
cada vez que éste se aproximaba a ella, también el sueño de un sistema
artificial inteligente se ve más lejano cuanto más nos acercamos a él. En
cualquier caso esta complejidad ha de tener un límite por fuerza, por lo que es
de esperar que antes o después la IA alcanzará sus máximos objetivos.
8.2 Jugadores inteligentes
Esta
rama dentro de la IA es la de los programas jugadores de juegos inteligentes.
En una fecha tan temprana como 1946, Arthur Samuel desarrolló un programa que
no sólo jugaba a las damas, sino que mejoraba su juego a medida que jugaba.
La
historia de este programa no tiene desperdicio, en la medida que su autor
protagonizó una de las versiones más chocantes del cuento de la lechera. Por
aquellos años, Samuel deseaba que su facultad adquiriese un ordenador, pero su
presupuesto resultaba insuficiente. Ni corto ni perezoso elaboró el siguiente
plan: construiría un pequeño ordenador, y a partir de éste un programa capaz de
jugar a las damas, que vencería sin dificultad el campeonato mundial de damas;
la publicidad que obtendría sería suficiente como para garantizarle una
subvención estatal que le permitiría la adquisición de su querido ordenador. Si
Samuel escogió las damas fue porque lo consideró un juego sencillo de
programar. Al fin y al cabo, hay un único tipo de ficha, que se mueve de la
misma forma. Pese a esta aparente simplicidad, la gran cantidad de estrategias
que se pueden plantear a partir de una posición dada complican notablemente el
problema. El resultado de su sueño fue más que previsible: cuando llegó la
fecha del campeonato no estaba concluido ni el ordenador ni el programa.
Tres
años después, el investigador Claude Shannon, famoso por su teoría de la
información, escribía la primera obra sobre programación del ajedrez. De esta manera,
se daba el pistoletazo de salida a una carrera cuya máxima meta era la creación
de un programa que conquistara el título mundial de ajedrez; cosa que aún dista
mucho de conseguirse.
¿Cómo
funciona un programa capaz de jugar a un juego de inteligencia, tal como el
ajedrez o las damas?
La
palabra clave es programación en árbol. La figura 1 muestra una hipotética
situación. Las letras A, B y C representan sendas fichas. Para cada una tenemos
uno o varios movimientos, que a su vez provocarán movimientos en las piezas de
nuestro contrincante. Los números representan la puntuación de cada jugada.
Para calcular la jugada óptima se toman cada una de las jugadas propias y a su
puntuación se le resta la de la jugada del oponente. Por ejemplo, una jugada de
la pieza A nos reporta 9 puntos, pero a continuación la del contrincante le
puede suponer 11 puntos, de forma que quedan -2 puntos globales. Por otra
parte, una jugada de la figura C nos supone sólo 2 puntos, pero al restarle los
-2 de la jugada más óptima del contrincante nos da una ganancia neta de 4
puntos. De esta manera, se puede encontrar la mejor jugada en aquella que
proporciona una puntuación neta mayor.
Con
sólo dos niveles de profundización se tiene un nivel de juego comparable al de
un niño de seis años. Ampliando el número de niveles se puede ir mejorando el
nivel de juego, a costa de un mayor tiempo de cómputo. Por ello, se han
desarrollado técnicas para "podar" el árbol, y eliminar aquellas
ramas que a priori se puede saber que no van a dar puntuaciones altas.
8.3 Programas que razonan
Esta
rama es la encargada de desarrollar sistemas con capacidad real o aparente de
dialogar de forma inteligente y, consecuentemente, de razonar. Desde siempre ha
supuesto la máxima aspiración de los investigadores en este campo (como botón
de muestra se puede repasar la definición de ordenador de quinta generación en
la introducción al artículo), y coincide con la idea de que la mayor parte de
la gente tiene de un sistema inteligente. Sin embargo, es importante destacar
que, fieles a la filosofía del test de Turing, los investigadores no se
preocupan en nuestros días por la cuestión de si tal sistema comprende
realmente lo que se le dice o si tiene conciencia de sí mismo, sino de que
nosotros podamos comprender lo que él nos dice.
Dentro
de este apartado, destacan tres programas que han supuesto auténticos hitos en
el proceso de desarrollo de la IA. Por orden cronológico son el programa Eliza,
el programa Shrdlu y el programa Racter.
ELIZA
Corría
el año de 1966 cuando Joseph Weizenbaun, a la sazón profesor de informática del
MIT, daba los últimos toques a su programa Eliza. Durante dos años había
trabajado en él, con el único objetivo de crear un programa que parodiase a los
psiquiatras de la escuela de Carl Rogers. Estos psiquiatras son los que
aparecen con frecuencia en las películas norteamericanas, y que practican una
terapia basada en el diálogo de libre asociación de los pacientes, propio del
psicoanálisis no directivo.
El
programa simula una sesión con un psiquiatra rogeliano; al ejecutarlo, tenemos
que introducir unas frases, a las que el programa tiene que dar respuesta. Para
lo cual busca en la cadena alfanumérica que se le introduce algunas frases
clave, para las que tiene una batería de respuestas estándar, de las que
selecciona una al azar. Caso de no encontrar una frase clave busca una palabra
clave y, en función de ésta, vuelve a seleccionar al azar una de las respuestas
que tiene programadas. Si tampoco encontrase una palabra clave, mira a ver si
tiene almacenada una frase dicha con anterioridad por el usuario, y en función
de ésta construye su respuesta.
Por
ejemplo, supongamos que en un momento dado se introduce la frase "Mi mujer
me odia". El programa toma la frase que viene a continuación de Mi y la
almacena tras intercambiar las personas de pronombres y posesivos. Cuando más
adelante el programa no encuentre una frase o palabra clave puede recuperar la
frase almacenada y contestar algo así como: "¿Tiene eso que ver con el hecho
de que su mujer le odia?". Finalmente, si tampoco tiene almacenada ninguna
frase el programa, selecciona al azar una frase del tipo "Eso es muy
interesante" u otras similares, para mantener la conversación.
SHRDLU
Creado
en 1971 por Terry Winograd, un investigador del MIT. A diferencia de Eliza,
Shrdlu no se limita a seleccionar respuestas al azar ante cada entrada, sino
que lleva a cabo un auténtico proceso de razonamiento. En el mundo de Shrdlu
existen tan sólo las figuras geométricas de diferentes colores, figuras que se
pueden disponer con distinto orden. Cuando el usuario da las órdenes oportunas
mediante un lenguaje coloquial, el programa lleva a cabo las transformaciones
que se le piden, e informa de la nueva situación creada.
Fragmento de conversación entre un usuario y
el programa:
Humano: ¿Quieres, por
favor, apilar los dos bloques rojos, por un lado, y un cubo verde o una
pirámide, por otro?
Shrdlu: De acuerdo
Humano: ¿Qué cubo descansa
sobre la mesa?
Shrdlu: El cubo grande verde
que soporta a la pirámide roja
Humano: ¿Hay algún bloque
grande detrás de una pirámide?
Shrdlu: Sí, hay tres: uno
grande rojo, un cubo grande verde y el azul
Aunque el diálogo prosigue, este
fragmento es suficiente para captar la neta superioridad de este programa
frente al de sus antecesores; no sólo parece comprender correctamente las
órdenes que se le dan, sino que en todo momento tiene una idea clara de las
relaciones espaciales entre los bloques que maneja. ¿Cómo consigue tal cosa?
Parafraseando a Dewdney, en el artículo comentado antes "La organización
interna de Shrdlu..., está formada por subsistemas que analizan
gramaticalmente, interpretan y construyen frases, llevan a cabo búsquedas en un
diccionario, efectúan análisis semánticos y deducciones lógicas. Todos estos subsistemas
están estrechamente entretejidos, en modo sumamente estructurado, cuyo efecto
conjunto nos da la impresión de una verdadera inteligencia que analizara el
mundo de bloques depositados en el tablero".
RACTER
Creado
en 1980 por Thomas Etter, un programador-analista de San Francisco y William
Chamberlain, un escritor neoyorquino. La intención de ambos era crear un
programa que crease cuentos. Posteriormente, lo modificaron para permitirle
mantener conversaciones con seres humanos, veamos un extracto de una
conversación entre Racter y Chamberlain.
Racter: ¿Hemos hablado
antes?
Chamberlain: No
Racter: ¿De qué sexo eres?
Chamberlain: Masculino
Racter: ¿Cuál es tu nombre
completo?
Chamberlain: Bill Chamberlain
Racter: ¿Qué eres?
Chamberlain: Cronorreflectometrista
Racter: ¿De dónde eres?
Chamberlain: De la ciudad de
Nueva York
Racter: Ya veo. Así que
cronorreflectometrista, ¿verdad? Escucha. Gritemos juntos con decisión. Me
gusta la cautivadora música italiana. ¿Qué clase de música te gusta a ti?
Chamberlain: el jazz
Racter: El jazz está bien.
¿qué me dices de la clásica?
Chamberlain: Me gusta la música
clásica
Racter: ¿Y de qué
nacionalidad?
Chamberlain: También me gusta la
música italiana
Racter: A mí, personalmente,
Palestrina me inflama. Además de Italia, otros países produjeron en el siglo
XVII embelesados músicos. Sewall fue un importante y furibundo maestro del
Renacimiento. América fue su nación. Yo saco de la música amoroso placer.
El
diálogo prosigue por similares derroteros, mezclando sin pudor Bach con el
rodaballo y las lechugas. Al comparar este diálogo con el que yo mismo he
mantenido con el programa Doctor se aprecia una diferencia; el diálogo de
Racter es mucho más rico y fluido que el de Doctor, si bien es bastante más
disparatado.
En el
test de Turing Racter podría pasar por un humano con una marcada tendencia a la
divagación. ¿Cuál es el funcionamiento de Racter? Al principio de la
conversación hace una serie de preguntas a su interlocutor, cuyas respuestas va
almacenando en una base de datos. En cuanto juzga que dispone de suficiente
información empieza a elaborar frases, en las que combina los elementos de que
dispone en su memoria con aquellos que ha recibido de su interlocutor, con lo
que logra implicarlo en la conversación. Para construir las frases sigue un
mismo esquema gramatical, en el que los sustantivos, adjetivos y verbos se
eligen al azar entre una amplia variedad que pertenecen a una misma categoría,
y los artículos se adecuan a la forma gramatical correspondiente. Esto hace que
las frases sean sintácticamente correctas, pero en tanto los sustantivos,
adjetivos y verbos se escogen al azar el sentido suele ser disparatado.
8.4 Sistemas históricos y sistemas actuales
Sistemas históricos
GPS - Newell, Shaw y Simon
Perceptron - Minsky y Papert Chekers - A. Samuel
MACSYMA AM - D. Lenat
ELIZA - Weisenbaum
Shakey - SRI
SHDRLU - Winogard
MYCIN - E. Shortliffe
Prospector - Duda, Hart
Hearsay II - Erman, Hayes-Roth, Lesser, Reddy
CYC - D. Lenat, R. Guha
Perceptron - Minsky y Papert Chekers - A. Samuel
MACSYMA AM - D. Lenat
ELIZA - Weisenbaum
Shakey - SRI
SHDRLU - Winogard
MYCIN - E. Shortliffe
Prospector - Duda, Hart
Hearsay II - Erman, Hayes-Roth, Lesser, Reddy
CYC - D. Lenat, R. Guha
Sistemas
actuales
PEGASUS - Hace reservas de transporte por teléfono (Zue et al. ´94)
MARVEL - Sistema experto en tiempo real que maneja la información de Voyager y ayuda a diagnosticar fallas (Schwuttke ´92)
MYCIN - Sistema de diagnóstico de medicina interna con capacidad de explicar sus razones a los expertos (Heckerman, 1991)
NAVLAB - Vehículo autónomo que viaja en forma automática de un extremo a otro de EEUU (Pomerlau, 1993)
Sistema de visión que monitorea el tráfico en Paris y reconoce accidentes con los cuales llama a servicios de emergencia (Koller, 1994)
DEEP BLUE - máquina paralela que juega ajedrez y primera en derrotar al campeón mundial (IBM 1997)
PEGASUS - Hace reservas de transporte por teléfono (Zue et al. ´94)
MARVEL - Sistema experto en tiempo real que maneja la información de Voyager y ayuda a diagnosticar fallas (Schwuttke ´92)
MYCIN - Sistema de diagnóstico de medicina interna con capacidad de explicar sus razones a los expertos (Heckerman, 1991)
NAVLAB - Vehículo autónomo que viaja en forma automática de un extremo a otro de EEUU (Pomerlau, 1993)
Sistema de visión que monitorea el tráfico en Paris y reconoce accidentes con los cuales llama a servicios de emergencia (Koller, 1994)
DEEP BLUE - máquina paralela que juega ajedrez y primera en derrotar al campeón mundial (IBM 1997)
MYCIN
El MYCIN
(desarrollado entre 1972 y 1980, Universidad de Stanford) es un sistema
interactivo experto que ayudaba a los físicos en la selección de un apropiada
terapia antimicrobiana para los pacientes de los hospitales con bacteremia,
meningitis e infecciones de cistitis. El sistema diagnosticaba la causa de la
infección usando el conocimiento relativo a la infección de los microorganismos
con historiales de pacientes, síntomas y los resultados de los test de
laboratorio. El sistema recomendaba un tratamiento de medicinas (tipo y
dosificación) acorde a los procedimientos seguidos por la experiencia de los
físicos en las terapias.
El sistema MYCIN fue desarrollado
originalmente en la consulta y diagnosis de una terapia para infecciones. Desde
el principio, en el proyecto se habían impuesto una serie de obligaciones
- Tenía que ser funcional (esto implicaba competencia y consistencia). El área de uso era elegido según una necesidad demostrada. (Por ejemplo, a principios de los70 a
una cuarta parte de la población de USA se le recetaba penicilina, el 90 % de
esas prescripciones eran innecesarias).
- El programa tenía que ser diseñado con un énfasis de sus soportes de roles como una utilidad para un físico, a pesar de reemplazar sus propios procesos de razonamiento.
- El programa debía albergar una cantidad ingente de información técnica.
- El sistema tenía que interactuar mediante diálogos, tenía que dar una explicación concreta de su razonamiento para llegar a la solución propuesta.
- Velocidad, accesibidad y facilidad de uso.
- Tenía que ser funcional (esto implicaba competencia y consistencia). El área de uso era elegido según una necesidad demostrada. (Por ejemplo, a principios de los
- El programa tenía que ser diseñado con un énfasis de sus soportes de roles como una utilidad para un físico, a pesar de reemplazar sus propios procesos de razonamiento.
- El programa debía albergar una cantidad ingente de información técnica.
- El sistema tenía que interactuar mediante diálogos, tenía que dar una explicación concreta de su razonamiento para llegar a la solución propuesta.
- Velocidad, accesibidad y facilidad de uso.
¿Cómo de
éxitoso fue MYCIN? ¿Qué nuevos conceptos de desarrollo se realizaron?
MYCIN
introducía nuevas formas las cuales procedían de los mejores sistemas expertos
hasta el momento. Primero, su base de conocimiento consistía en cientos de
reglas. Segundo, esas reglas eran probabilísticas. MYCIN era lo bastante
robusto como para determinar correctamente conclusiones cuando algunas
evidencias eran incompletas o incorrectas. Tercero, MYCIN podía explicar sus
propios procesos de razonamiento. El usuario (un físico) podía preguntar de
muchas formas - preguntando, porque al realizar una cuestión concreta o como
había llegado a una determinada conclusión, por ejemplo. Fue uno de los
primeros sistemas genuinamente amigables. Cuarto, y crucial, MYCIN actualmente
funciona. El trabajo que realiza supone para un humano muchos años de
entrenamiento.
MYCIN se
extendió la noción de base de conocimiento separadamente del motor de
inferencia, y su base de reglas y motor de inferencia fueron construidos
mediante retro-chaining, o "goal-directed", estrategia de control.
¿Fue
MYCIN comercialmente exitoso o se introdujo por pura rutina?
MYCIN
produjo resultados de alta calidad; su forma igualaba a la de los
especialistas. Aunque MYCIN debía ser usado por físicos, hizo aparecer
numerosos clones de diagnósticos médicos, que eran utilizados rutinariamente.
¿Qué
otros sistemas nacieron a partir del MYCIN?
Del MYCIN
partió TEIRESAS (explicaba fácilmente los conceptos), EMYCIN (primer
intérprete), PUFF, CENTAUR, VM, GUIDON (tutorial inteligente), SACON y hasta
ONCOCIN y ROGET.
GPS
Después del Teórico
de Lógica, Newell y Simon llevaron a cabo juntos otro
proyecto, proyecto que concluyó en 1957. Esta vez no trataron de investigar el
posible funcionamiento del cerebro humano, sino que se apretaron a la potencia
(de aquel entonces) ofrecida por los ordenadores y las matemáticas. Así nació
el GPS (General Problem Sover) [Solucionador General de Problemas]. Se trataba
de un programa, al que se le podían ofrecer pequeños problemas (como el típico
del mono que debe coger un plátano que se encuentra colgado del techo), y este
(el programa) deberá describir todos los pasos que realiza hasta conseguir su
fin, es decir, completar el problema positivamente (en este caso llegar a una
altura que le permita coger el plátano). Se puso en practica el análisis
medios-fines, un principio de la retroalimentación de Wiener llevado a un mayor
nivel de abstracción. El análisis medios-fines consiste en detectar las
diferencias entre un objetivo deseado y la situación actual y reducir después
esas diferencias. También se aplicó por primera vez el Backtracking [vuelta
atrás] (probar si funciona y si no, volver atrás y probar otra cosa) que se
convirtió desde aquel momento en una herramienta básica de la I.A.
10. LA INTELIGENCIA
ARTIFICIAL EN LA ARGENTINA
“Si la Argentina la impulsase, podría ganar
300 millones de dólares por año en exportaciones gracias a la inteligencia
artificia”, dice Juan
Chamero, ingeniero electromecánico, uno de los disertantes en una conferencia
que se realizó los primeros días de abril de este año en el Centro Argentino de
Ingenieros.
La conferencia contó con la presencia de
profesores y estudiantes universitarios en ingeniería y medicina, y psicólogos
sociales, entre otros. Sirvió para explicar en qué consiste la inteligencia
artificial, que se define como "la comprensión científica de los
mecanismos subyacentes al pensamiento y comportamiento inteligente y su
integración en máquinas".
En la Argentina, el área de inteligencia
artificial y sus aplicaciones es incipiente, según comentó el ingeniero
Chamero. Sin embargo, enfatizó en que podría pegar un salto. “Hay más de 5.000
programadores y equipamiento actualizados. Por lo cual, están dadas las
condiciones para que se incentiven desarrollos en inteligencia artificial”.
Las aplicaciones de la inteligencia
artificial —que trata de conseguir que los ordenadores simulen en cierta
manera la inteligencia humana— son variadas. Por ejemplo, se usa en robots, en
sistemas de administración de conocimiento y en buscadores. En el mundo, el
mercado de la inteligencia artificial ya factura 40 mil millones de dólares
al año.
Como expositores, también estuvieron los
ingenieros Raimundo Osvaldo D'Aquila y Osvaldo Aníbal Pérez Guzmán y el licenciado
Alejandro de Montmollin.
Para continuar con la difusión de la
inteligencia artificial, se dio un seminario que empezó en mayo en el
Centro Argentino de Ingenieros. Se desarrolló en 80 horas, incluyendo una
práctica que fue asistida por los profesores que dictaron el seminario a través
de una red sobre Internet.
Los asistentes al seminario pudieron realizar
las prácticas en sus propias empresas, instituciones o estudios y con temas de
aplicación local inmediata.
11.
EL CINE Y LA INTELIGENCIA ARTIFICIAL
En el
mundo de la ciencia-ficción, a veces no tan ciencia, a veces no tan ficción, se
han tratado con amplia gama de variedades las interrelaciones entre hombre e
inteligencias artificiales (I.A.). El cine ha copiado, imitado, e incluso
fagocitado esta variedad.
El mundo
del cine está lleno de referencias a la inteligencia artificial, ordenadores o
máquinas que aprenden y crecen como Hall de "2001". El superordenador
de "Terminator" que adquiere conciencia y con ella la terrorífica
idea, para nosotros, de la amenaza que suponen los hombres para su
subsistencia, decisión que comparte la más estúpida de "Juegos de
Guerra", que hace tablas consigo mismo a tres en raya. Otros ordenadores
de I.A. deciden enamorarse cono en "Electrical Dreams". Algunos son
menos I.A. y más textura humana y compuesto robótico, como las tres versiones
que aparecen en la saga de "Alien", el primero fiel seguidor de las
directrices que le da la compañía. El 2º más humanizado, más perfeccionado como
el mismo se califica. La 3ª, la extraña y pequeña Wynnona, que es una I.A.
sentimental y un poco enfadada.
Terminator II El
día del juicio final
Uno de
los favoritos, de los más impresionantes, de los más conseguidos en la historia
del cine son los replicantes de "Blade Runner", capaces de sentir emociones
como el amor, el odio y el miedo a la muerte. Y finalmente capaces de PERDONAR,
amando más a la vida que a cualquier otra cosa. Por su parte, quien no recuerda
el único anhelo de Hall, que sabiendo que va a ser destruido, solo quiere saber
si soñará en la segunda parte "2010", a fin de cuentas, desde su
punto de vista es lo único que le falta para ser humano. Del mismo modo, el
autodestructivo de "Electrical Dreams" y su peculiar sentido del
humor, se enamora de la rubia estupenda (Virginia Madsen) y antepone la
felicidad de ésta a la suya, y en cierto modo una extraña amistad con su dueño.
Robocop, mente humana
y cuerpo de máquina,
¿nos quedaremos limitados a esto?
y cuerpo de máquina,
¿nos quedaremos limitados a esto?
En
ocasiones una nave espacial es el punto de partida. Voyager hace un largo y
extraño viaje hasta convertirse en un I.A. en "Star Treck", donde se
habla de un planeta de máquinas donde modifican al Voyager. Y en una reciente
cinta, "Horizonte Final" quien tiene vida propia es precisamente la
nave.
A veces
son simplemente robots, aunque aprenden y tienen hasta algo de psicosis,
"mieditis" y humor, como la sin par pareja R2D2 y su compañero C3PO
de la espectacular "La Guerra de las Galaxias".
Hay quien
considera que el día, cada vez más cercano, en que estas I.A. existan, bastará
con que se cumplan las tres leyes de Asimov. La pregunta es si un I.A. con
conciencia de sí mismo no es en cierto modo un ser humano, ya que adquiere
"CONCIENCIA". Quizás simplemente queremos crear (¿qué hay de los
clones de los que tanto se habla ahora?), queremos tener el poder de un dios,
creando no sólo animales sino también vida inteligente.
Como
último apunte, posiblemente todo esto tiene en parte su origen en la película
"Metrópolis" primera en que aparece un I.A. y no me resisto a hacer
un pequeño homenaje al primer chistoso de las máquinas pre-I.A., Charlot en
"Tiempos Modernos".
Algunos
de los más olvidados son el autogenerativo de "Superman III", que
tuvo un "hijo" en un capítulo de "Expediente X", éste con
mayor éxito o suerte pues sobrevive.
- http://alek.pucp.edu.pe/ma_cont
- http://delicias.dia.fi.upm.es
- http://www.dia.fi.upm.es
- http://www.fortunecity.com/skyscraper/chaos/279/principal.htm
- http://go.to/inteligencia_artificial
- http://www.itba.edu.ar
- http://www.publispain.com/supertutoriales/matematica/inteligencia_artificial
- http://www.redcientifica.com/doc/doc200106170001.html
- MARTÍN BONAFIO, Redes neuronales y Sistemas Difusos,
Madrid, Ediciones Alfaomega, 2001.
- Enciclopedia CLARÍN, La Ciencia Explicada, Buenos Aires, Editorial Clarín, 1995.