Resumen del libro "Inteligencia artificial"
de Lawrence Stevens
Según el autor, la meta de los investigadores en IA es
producir computadoras que actúen de una manera análoga al
comportamiento inteligente en los humanos. La inteligencia no
es, como se podría pensar, resolver una ecuación algebraica.
Pensar significa combinar nueva información, hechos conoci-
dos, reglas prácticas, conjeturas e intuición para llegar a
la respuesta adecuada a un problema. Esto no es fácil de pro-
gramar; por que no se sabe que pasa realmente cuando la gente
piensa. Para determinar si una computadora piensa, Turing di-
señó su test. Este consiste en hacerle preguntas a una má-
quina y a un humano, sin saber cuál es cuál. Hay que determi-
nar quien es la máquina, y si el interrogador se equivoca,
entonces la máquina está pensando. Este test es adecuado para
determinar si una computadora piensa inteligentemente en to-
das las áreas de conocimiento de un humano, pero no sirve
para determinar si piensa en el ámbito restringido de una es-
pecialidad. Esto es importante por que los investigadores de
la IA piensan en producir comportamiento inteligente sólo en
áreas reducidas del conocimiento humano. Una computadora po-
dría pasar el test de Turing si se le pregunta sobre extrac-
ción de petroleo, pero no si se le pregunta sobre buenos mo-
dales.
La diferencia entre un humano y una computadora es que
ésta es mucho mejor calculando y buscando datos, mientras que
el humano es mejor pensando. Por esto, una computadora puede
jugar al ajedrez buscando y examinando las posibles futuras
jugadas (esto no es tan fácil como parece, si se piensa en la
cantidad de jugadas posibles, ver "Complejidad y transcompu-
tabilidad"), mientras que el humano lo va a hacer mejor apli-
cando ciertas reglas, y examinando menos jugadas.
Otro problema más difícil es el de entender lenguaje na-
tural. El problema está en la inferencias y las referencias
de lo que se dice. Otro proyecto de la IA es la comprensión
de imágenes.
El propósito práctico de crear computadoras inteligentes
es, según el autor, que las máquinas hagan tareas que son o
muy difíciles o muy desagradables para los humanos.
HISTORIA DE LA INTELIGENCIA ARTIFICIAL
En el pasado, existieron dos formas de encarar la IA:
una basada en la fantasía, y otra en la ciencia.
La fantasía le adjudicaba al Papa Silvestre II la pose-
sión de un robot que respondía preguntas. También en
la edad
media, un grupo de astrólogos árabes decían haber creado
una
maquina pensante llamada la Zairja. De la idea de la Zairja,
Ramón Lull, un misionero del siglo 13, concibió la idea de
una máquina pensante, llamada Ars Magna, hecha de discos de
metal que podía razonar sobre temas cristianos.
En el siglo 14 los relojeros hacían relojes gigantes con
figuras que se movían y a veces hablaban. El público pensaba
en estas figuras como en humanos mecánicos. Paracelso decía
que había descubierto una receta para hacer humanos artifi-
ciales, y el Rabbi Judah ben Loew decía haber creado un hu-
mano artificial, al que llamó Joseph Golem.
En los dos siglos siguientes, aumentó el número de huma-
nos mecánicos hechos por relojeros. En la literatura del si-
glo 19 hay humanos mecánicos como Olympia, de E.T.A. Hoff-
mann; Coppelia, de Delibes; y la famosa creación del doctor
Frankenstein, de Mary W. Shelley.
Aunque éstas fantasías no demuestran los intentos serios
de conseguir la inteligencia artificial, muestran el interés
del hombre en conseguirlo.
En la ciencia, el primer problema, y el problema de
siempre, fue el de representar el conocimiento de una manera
que pudiese ser manipulado por las máquinas.
George Boole, en el siglo 19, creó el álgebra Booleana,
un sistema binario que podía representar no solamente funcio-
nes numéricas, sino también funciones lógicas.
Usando en parte el álgebra Booleana, Charles Babbage, a
mediados del siglo 19, fue el primero en diseñar una máquina
digital. Esa máquina nunca fue construida, pero fue un gran
avance por que era digital, ya que las máquinas digitales, a
diferencia de las analógicas, son fáciles de programar, y se
puede representar muchas formas de conocimiento en ellas.
Con la creación del interruptor eléctrico se pudo cons-
truir la primera computadora digital, en 1944 por H. H. Ai-
ken. El gran avance de las máquinas digitales es que pueden
ser programadas para hacer cualquier tipo de operación ló-
gica.
En la década de 1940, Sir Geoffrey Jefferson dijo que
hasta que una máquina pueda componer música como resultado de
sus sentimientos, no se podría decir que una máquina iguale
al cerebro. Dijo que ningún mecanismo podría sentir emocio-
nes, a no ser meras señales artificiales. Turing le respondió
diciendo que usando esta definición, no se podía decir que
nadie piense. ¿Cómo se podría diferenciar la respuesta
de un
humano de la de una máquina? ¿Cómo se puede demostrar
que
otros humanos tienen sentimientos?. Como resultado de esto,
desarrolló su famoso test.
Turing también diseñó una máquina, la Máquina
de Turing,
la cual trabajaría con una cinta de papel, que podía tener
secciones agujereadas o no. Esta máquina podía realizar cual-
quier operación que pudiese ser expresada en el álgebra Boo-
leana.
Basada en esa máquina, Turing y otros investigadores de-
sarrollaron durante la segunda guerra mundial una máquina
descifradora que fue utilizada por el gobierno inglés para
entender los mensajes cifrados de Alemania.
Para lograr máquinas que pensaran, había que encontrar
reglas que pudiesen describir el pensamiento. Muchos de los
primeros investigadores de la IA decidieron examinar las re-
glas del pensamiento de los juegos, por que no necesitaba de
grandes bases de datos, lo cual era difícil de hacer en ese
momento. Anthony Oettinger, en 1952, creó una máquina que po-
día aprender basándose en estímulos positivos y negativos,
en
una especie de condicionamiento.
Después de su éxito en esa área, Oettinger trabajó
en un
diccionario mecánico que podía traducir automáticamente
de
ruso a ingles, y viceversa. Quería que el diccionario mecá-
nico no solo combinase palabras, sino que también pudiese
asociar palabras con objetos. Este proyecto tuvo un éxito muy
limitado.
Alan Newell y Herbert Simon analizaron la manera en que
los estudiantes resolvían problemas. Descubrieron que los es-
tudiantes tomaban atajos, que, aunque no siempre funcionaban,
estadísticamente reducían el tiempo necesario para resolver
un problema. A estos atajos se los llamó heurísticas. Son mé-
todos para resolver un problema que pueden no llevar a una
solución, pero que acortan el camino hacia ella. Su opuesto
es un algoritmo, que está garantizado que va a llevar a la
solución correcta.
En 1957, Newell y Simon construyeron su General Problem
Solver. Este trabajaba de la siguiente manera:
1) Determinar la diferencia entre la situación presente y la
meta.
2) Encontrar alguna acción que reduzca la diferencia, y
realizar dicha acción.
3) Determinar si la meta final ha sido alcanzada. Si es así,
entonces terminar. Si no, volver al paso 1.
Este tipo de heurística fue llamada medios-fin. Para que
un problema pueda ser resuelto según este método, debe tener
las siguientes características:
1) La diferencia entre la situación presente y la meta puede
ser detectada y cuantificada
2) Los operadores pueden ser clasificados por cómo afectan
dicha diferencia.
3) Algunas diferencias son difíciles de afectar usando algún
operador. Es necesario substituir nuevas diferencias por las
viejas.
El GPS puede resolver sólo problemas simples. En proble-
mas grandes, las posibles acciones u operadores se convierten
en tantos que la búsqueda es impráctica, no funciona.
LENGUAJE NATURAL
En general, para un usuario, comunicarse con una máquina
es una experiencia fustrante. Para hablarle a una computa-
dora, un usuario debe aprender un subconjunto específico de
palabras en inglés. Aunque a veces esas palabras son palabras
corrientes, se pueden usar sólo palabras específicas, y deben
ser introducidas en una forma específica. Los investigadores
de la IA están tratando de desarrollar programas que entien-
dan palabras y oraciones usadas en una comunicación normal
entre humanos.
Una compañía que diseña interfaces de lenguaje natural
es Cognitive Systems Inc.
Ejemplos de interacciones con un sistema de esta compa-
ñía serían:
1) Implicaciones: Un usuario puede ingresar oraciones di-
ferentes, pero con el mismo significado (por ejemplo, decir
"sesenta días" en lugar de "dos meses", o "cuentas
impagas"
en lugar de "deudas"), y la computadora va a mostrar la in-
formación correcta.
2) Ambigüedades: Puede entender el uso ambiguo de palabras
que tienen más de un significado, por ejemplo la palabra "ne-
gocio" como operación financiera, o como lugar físico de
ven-
tas.
3) Oraciones no gramaticales: Muchos memos de negocios usan
oraciones cortas y crípticas, como "Vuelos NY a Chicago,
jueves próximo". Esto puede ser entendido por un sistema que
esté preparado para trabajar en contextos que se use esta
jerga.
4) Referencias: El usuario puede necesitar hacer referencia a
órdenes previas. Por ejemplo, puede pedir "Muéstreme los
pozos petroleros explotados en Georgia, antes de 1970, con
escala 1 a 2000". Luego de recibir esta información, el
usuario puede pedir "Ahora desde 1970", sin tener que volver
a hacer toda la pregunta.
Los sistemas de lenguaje natural deben interpretar las
oraciones de dos maneras: sintáctica o semántica. La sintaxis
se refiere a la forma de una oración (sujeto, predicado,
etc). La semántica se ocupa de el significado de la oración,
y de las palabras que la componen. Un programa de lenguaje
natural analiza primero la estructura de una oración, y cla-
sifica sus partes. Esto es en cuanto al análisis sintáctico.
En cuanto al análisis semántico, puede dividir los sustanti-
vos, los adjetivos, etc., comparando las palabras con un dic-
cionario, en categorías, de acuerdo a si se refieren a un
animal, una persona, una planta, etc. Una vez que se catego-
rizaron la mayor cantidad posible de palabras, se pueden ha-
cer algunas asunciones acerca de la función de cada palabra,
lo cual acerca a la comprensión de la totalidad de la ora-
ción.
Algunos posibles tipos de sustantivos pueden actuar
como: (nótese la similitud con lo que propone Dolder en "Di-
seño de bases de datos utilizando conceptos y técnicas de
inteligencia artificial"; como 'circunstancias genéricas')
1) Agente: Iniciador de la acción.
2) Instrumento: Objeto usado por el agente para iniciar la
acción.
3) Medio: Material a través del cual el agente inicia la
acción.
4) Origen: Lugar donde comienza la acción.
5) Destino: Lugar donde termina la acción.
6) Ruta: Trayectoria que el instrumento toma en ir desde el
origen hasta el destino.
7) Transporte: Medio de transporte del instrumento desde el
origen hasta el destino.
Hay muchas maneras de determinar la categoría funcional
dentro de la cual está un sustantivo. Una puede ser el signi-
ficado de un verbo en la oración. También otras partes de la
oración, como los verbos, pueden ser clasificados de la misma
manera que los sustantivos.
El problema de la comprensión semántica es que los hom-
bres hablan generalmente en formas que no se ajustan a reglas
simples. Abundan las implicaciones y las Ambigüedades.
Para desarrollar sistemas que puedan entender esas
implicaciones y Ambigüedades, Eugene Charniak desarrolló
cinco tópicos que deben ser tenidos en cuenta:
1) Representación Semántica: ¿Qué conceptos específicos
usan
los hombres para registrar sus impresiones del mundo?
2) Disparadores de inferencia: ¿Bajo qué circunstancias la
gente hace inferencias? ¿Cuándo una computadora debería
bus-
car un significado dependiente de una inferencia?
3) Organización: Cuando se hace una implicación ¿Cómo
sabe la
computadora dónde buscar el objeto de la implicación?
4) Mecanismo de inferencia: Una vez que se encontraron los
hechos relativos a la implicación, ¿Cómo los puede usar
un
programa?
5) Contenido: ¿Qué conocimiento del mundo se requiere a la
computadora para que entienda el lenguaje?
Es importante definir el momento en el que se hace una
implicación, si mientras se lee la oración, o si mientras se
hacen las preguntas sobre lo leído. Lo primero puede llevar a
no hacer todas las implicaciones necesarias, y lo segundo, a
almacenar demasiados datos. Quizá la medida correcta sea un
punto medio.
El programa debe ser capaz de identificar las ideas cla-
ves, para saber que otros datos debe traer de su base de da-
tos. Por ejemplo, si decimos "Si llueve cuando estamos
afuera, nos vamos a mojar", la idea clave es lluvia, ya que
mojarse es causado por la lluvia, y la lluvia causa casi
siempre mojarse; y estar afuera no causa el hecho de mojarse.
Para esto debe usar del conocimiento del mundo.
La información se guarda en forma de marcos, los cuales
describen situaciones estereotipadas, o secuencias de even-
tos. Estos marcos deben ser flexibles, para tratar situacio-
nes que no son normales. Por supuesto, siempre pueden surgir
situaciones fuera de los marcos, lo que hace necesario más
marcos para contenerlas, con su respectivo gasto de memoria.
PROGRAMAS DE LENGUAJE NATURAL
SAM
SAM (Script Applier Mechanism; mecanismo que aplica li-
bretos), es un programa que fue diseñado para entender histo-
rias. Debe resumir artículos periodísticos.
A Sam se le da conocimiento en forma de libretos. Un li-
breto es un escenario de lo que ocurre generalmente en una
situación. Cuando el programa encuentra determinadas palabras
clave, busca respuestas a ciertas preguntas. Un guión puede
estar contenido en otro, y contener a su vez otros libretos.
Este programa hace tres inferencias principales cuando ana-
liza una historia:
1) Completar cadenas causales. Esto permite inferir eventos
en una historia que sólo da el primer y el último evento. Por
ejemplo si se dice que Juan bajó al subterráneo y luego que
Juan tomó el subterráneo, puede inferir que luego que bajó
puso el cospel, esperó el subterráneo, etc.
2) Concreción de roles. Esto es información acerca de lo que
la gente tiende a hacer en determinadas situaciones.
3) Mezclado de roles. Le permite al programa asumir que una
persona llamada de distintas maneras (o sea, Juan, él, etc.)
en un texto es la misma, cuando hace cosas que se supone que
debería hacer la misma persona.
PAM
Pam fue desarrollado para entender las motivaciones que
hay atrás de la acción de los personajes de una historia. El
programa tiene un entendimiento sobre la motivación, y como
las metas son afectadas por las acciones.
Entiende cuatro interacciones de metas:
1) Inclusión de metas: El programa sabe que para obtener una
meta, hay que cumplir otras previas.
2) Competencia de metas: Dos metas pueden estar en conflicto,
una meta puede ganar, otra perder. El perdedor puede
reaccionar de mal modo.
3) Ambivalencia de metas: Es similar al anterior, pero el
conflicto está dentro de una persona.
4) Concordancia de metas: Las metas de dos o más personas
pueden ser a veces las mismas.
SISTEMAS EXPERTOS
Un sistema experto es un programa que razona como lo ha-
ría un experto en un dominio particular.
Un sistema experto es tanto una prueba de la posibilidad
de crear máquinas que piensen, como su aplicación más
com-
pleta. Además es la posibilidad de que compañías importantes,
como IBM, se preocupen por la inteligencia artificial, y pa-
guen investigación en ese campo.
Un sistema experto no es un programa que busca datos
legales en una base de datos, en respuesta a palabras claves
que encuentra en un caso, ni uno que haga cálculos de diseño.
Puede tratar la información de manera diferente según la
naturaleza del problema, probar muchos caminos diferentes
para solucionar un problema, etc. La máquina combina la habi-
lidad de consultar con una gran base de datos, con la de for-
mular hipótesis y descartarlas, encontrar atajos, etc.
El problema de desarrollar sistemas expertos reside en
representar conocimiento y habilidad dentro de un programa.
Lo más fácil de representar es el conocimiento, porque se
puede usar una estructura ya conocida de base de datos. Lo
que es más difícil es programar la habilidad de un experto en
un programa. Se pueden programar las fórmulas que un experto
usa, pero es muy difícil programar cómo trabaja la mente de
un experto. La solución a este problema sería descubrir cómo
trabaja una mente.
PROGRAMAR INTELIGENCIA
El conocimiento puede ser representado simbólicamente
mediante la lógica proposicional. Una proposición es un enun-
ciado que puede ser o verdadero o falso. Existen reglas para
trabajar con estas proposiciones, en una forma parecida al
álgebra, permitiendo trabajar con variables lógicas, y con
operadores lógicos. También existe la lógica de predicados,
como otra manera más compacta de expresar las proposiciones.
Usando la lógica de predicados, es posible hacer progra-
mas y representar conocimiento en ellos. Se pueden represen-
tar relaciones de variables, y, asignando valores a estas va-
riables, se pueden sacar conclusiones.
SOLUCION DE PROBLEMAS
Casi todos los programas de IA contienen estrategias de
solución de problemas. Los problemas pueden ser divididos en
tres partes: Un estado inicial; un estado final (o meta), y
un operador. Con el desarrollo del proceso de solución del
problema, también hay un estado actual, que cambia constante-
mente.
GRAFICOS DE ESTADOS
Un gráfico de estados, también llamado espacio de esta-
dos, o árbol, comienza con una raíz, la cual da origen a uno
o más hijos, los que representan diferentes nodos, o estados,
del problema. Cada hijo puede, a su vez, dar nacimiento a
otros hijos. Lo que une a un nodo con otro se llama rama. Un
nodo sin hijos, es una hoja, y representa o una meta, o un
callejón sin salida.
Un método de búsqueda de la solución puede ser el de
búsqueda a lo ancho. Este método genera todos los nodos de
cada nivel, buscando la meta. La ventaja de usar este método
es que encuentra el camino más corto hasta la meta. Su
desventaja es que requiere operaciones redundantes, porque
para generar un nodo debe aplicar el operador, luego apli-
carlo para volver al progenitor, luego volver al nodo para
generar su progenitor.
Otro método es el de búsqueda en profundidad. Este busca
por un camino, hasta que encuentra la meta, un callejón sin
salida, o un camino ya transitado. La ventaja es que no tiene
la necesidad de volver de atrás para adelante constantemente.
Las dificultades son que puede no encontrar la forma más rá-
pida de llegar a la meta, que este método puede aumentar, en
lugar de disminuir, la cantidad de operaciones necesarias, y
que un nodo puede llevar a un número enorme de hijos, ha-
ciendo la búsqueda impráctica.
Ambos métodos tienen el problema de que examinan todas
las posibles soluciones, y no buscan de una manera inteli-
gente.
BUSQUEDA CON HEURISTICA
Un programa que usa heurísticas para realizar una bús-
queda, busca en forma ordenada, en lugar de buscar ciega-
mente. Las reglas que ordenan la búsqueda deben ser generadas
durante la misma. El objeto de una búsqueda con heurística
es el de encontrar la ruta más económica. Para esto, se debe
poder determinar tanto el costo de llegar a la meta desde el
estado inicial, como el costo de la trayectoria desde el nodo
en el que se está hasta el nodo final. Otras heurísticas pue-
den ser usadas para determinar si un camino es más promisorio
que otro, a pesar de su alto costo estimado, o qué nodos
puede desestimar por completo para la búsqueda.
BUSQUEDA CON SUBMETAS
El método del gráfico de estados puede no ser el mejor
en algunos problemas. Para estos problemas, se puede usar la
técnica de dividirlos en submetas.
Para usar este método, la computadora debe generar la
submeta, y planear la secuencia de submetas. Un método de ha-
cerlo es usar un operador que produzca una submeta. Este pro-
cedimiento va a funcionar sólo si existe una ruta consistente
en un número de acciones cortas y casi repetitivas.
Otro método es usar más de un operador. Cuando se da una
condición, se usa un operador determinado.
Cuando se está trabajando en un problema del mundo real,
no se puede preprogramar un conjunto específico de operado-
res. El programa debe descubrir por si mismo las tácticas y
estrategias para resolver un problema. Una manera de hacer
esto es hacer seguir al programa una jerarquía de planes. El
primer plan genera una estrategia general para resolver el
problema. El siguiente plan perfecciona la estrategia y ge-
nera alternativas para sortear ciertos obstáculos. A cada
paso, el plan es perfeccionado. La ventaja del método es que
se pueden aplicar heurísticas a cada paso, ya que esos pasos
están separados por submetas, y constituyen problemas peque-
ños, que pueden ser retomados si surge un inconveniente en un
paso posterior.
RESOLVEDOR DE PROBLEMAS GENERALES
La inteligencia humana se caracteriza por su habilidad
de resolver muchos tipos diferentes de problemas. Los progra-
mas de inteligencia artificial se diseñaron para operar sobre
un universo limitado de problemas y de conocimiento. El
desarrollo de programas específicos para un problema ya es
algo difícil, entonces desarrollar programas que puedan tra-
tar con diferentes tipos de problemas es mucho más difícil.
Los componentes de un GPS son tres: Primero, debe tener
un medio de recibir información del mundo exterior. Si se usa
como medio de comunicación la entrada del usuario, en lugar
de usar sistemas de percepción, debe utilizarse interfaz de
lenguaje natural. Segundo, debe tener un medio interno de re-
presentar la información. Tercero, debe tener un aparato de
resolución de problemas.
El GPS resuelve los problemas utilizando una serie de
metas, que incluyen tanto el resultado deseado como la
información requerida para resolver el problema. Esta infor-
mación incluye la situación actual, la situación deseada
(meta), y una memoria de los intentos previos de convertir la
situación actual en la situación deseada.
Usa cuatro tipos de metas:
1) Transformar al objeto A en el objeto B.
2) Reducir la diferencia D del objeto A.
3) Aplicar el operador Q sobre el objeto A.
4) Seleccionar elementos del conjunto S que mejor cumplan el
criterio C.
El método de lograr las metas está determinado por un
'ejecutor de soluciones de problemas', que cuenta con rutinas
como:
1) Rutina o subrutina primitiva. (solución de un paso)
2) Método secuencial. Una secuencia de operaciones que puede
ser determinada en parte durante la operación.
3) Lista de señales. Una lista condicional de operaciones.
4) Método de esquema de metas. Construye una meta establecida
en los términos de la situación actual.
5) Método de generar y probar. Genera todos los elementos
posibles y los compara con un criterio. Selecciona el primer
elemento que cumple con todo el criterio.
El ejecutor de soluciones de problemas tiene el trabajo
de aplicar y evaluar todos los objetos y metas.
Sus funciones son:
1) Selección de método. Esta función se logra a través
de un
árbol de discriminación.
2) Reconocimiento de metas. Usa un árbol de discriminación
para comparar la meta específica del problema con todos los
nodos.
3) Evaluación de metas. Rechaza metas de su inmediata con-
sideración.
4) Reconocimiento de objetos. Usa un árbol de discriminación
para comparar lo específico con lo general.
5) Evaluación de objetos. Rechaza ciertos objetos consi-
derados indeseables.
6) Selección de metas. se puede ahorrar tiempo seleccionando
metas simples.
7) Registro de intentos. Registra los intentos fallados, para
no volver a pasar por los caminos recorridos.
Usa varios métodos que usa el GPS para lograr metas. Al-
gunos son:
1) Comparación de diferencias: Define las diferencias entre
dos estructuras de datos. Si se pueden eliminar usando algún
operador, se eliminan.
2) Reducción de diferencias: Logra la meta reduciendo la
diferencia entre el estado actual y el estado de la meta.
3) Operador de forma: Muchos operadores pueden ser aplicados
sólo a ciertos objetos. Hay que asegurar que la forma del
objeto sea la misma que la del operador.
4) Probar viejas metas: Cuando todo lo demás falla, se vuelve
a metas desechadas.
Hay cuatro estructuras de datos diferentes:
1) Objetos, definidos por un árbol, o por una lista de lí-
mites que definen al objeto.
2) Operadores, representados por pruebas y los resultados de
las pruebas.
3) Metas, que contienen la información, o sea, las reglas,
para resolver los problemas.
4) Diferencias, que contienen información acerca de tipo,
valor, y localización de las diferencias.