A mí háblame en lenguaje natural

El uso del lenguaje natural ha sido tradicionalmente una de las grandes asignaturas pendientes de la informática en general y de la Inteligencia Artificial en particular. En principio, incluso los canis son capaces de comunicarse verbalmente con mayor o menor eficacia, de modo que parece una aspiración muy razonable el que algo que pretenda ser considerado inteligente sea capaz, por lo menos, de hablar.

Con todo, parece que últimamente se le empieza a dar más importancia a la interacción natural y fluida con los ordenadores, y un paso más en este sentido podría ser Wolfram Alpha, un motor computacional que en teoría será capaz de proporcionar respuestas exactas a preguntas que le sean formuladas en lenguaje natural. La revolución viene precisamente de que, hasta la fecha, para resolver una pregunta necesitamos encontrar el documento en que esté escrita su respuesta. Lo cual a veces puede ser complicado.

La clave de este sistema reside doblemente en la interpretación del lenguaje: por un lado necesita entender la pregunta que realiza el usuario. Por otro, necesitará mantener una base de conocimiento obtenido fundamentalmente de Internet, para lo cual es necesario a su vez procesar el contenido textual de los documentos de la red. Que es la madre del cordero.

De este tipo de cosillas se encarga una disciplina que denominamos Recuperación de la Información (Information Retrieval o IR en inglés), que abarca desde la informática a la documentación, pasando por la lingüística o la semiótica, cuyo principal cometido es tratar de encontrar formas de obtener conocimiento de bases de datos no estructuradas, como Internet. Sin embargo, el análisis de esta información es tan complejo que en un momento dado se pensó que sería más fácil que los humanos estructuraran correcta y formalmente su información que pretender que una máquina obtuviera datos de esa maraña caótica que es la red.

Más o menos así nació el concepto de web semántica, o lo que algunos llaman ya web 3.0 (vamos a tener tontería para rato). Para que lo entendamos, la idea es que si escribo mis datos de contacto en mi página web lo haga con un formato específico, de manera que incluso una máquina pueda entender que esa porción de información es mi tarjeta de visita y sea capaz, por ejemplo, de extraer mi teléfono automáticamente y ofrecer al usuario llamarme.

Y de momento, esto es lo mejor que se nos ha ocurrido para mejorar la forma en podemos obtener información de Internet. Sin embargo, el paso que habría dado esta gente con su motor de conocimiento supondría que podemos prescindir de adaptarnos a las máquinas y podemos hacer que las máquinas de adapten a nosotros. Ahí es nada.

Hace tiempo que Powerset, hoy propiedad de Microsoft, presentó un buscador muy interesante en la misma línea. Hoy lo recordé y estuve jugando un rato. Tiene sus lagunas, pero en general no funciona nada mal. Sin duda es un planteamiento tan prometedor como su tecnología…

Es de suponer que si esto sigue evolucionando de esta manera, la Inteligencia Artificial dará un paso adelante y la menospreciada inteligencia humana dará varios hacia atrás: ya ni siquiera será necesario saber buscar información, sólo preguntarla :-P

También es posible que sólo estemos ante humo. En informática es por desgracia tan frecuente que hasta tenemos una palabra específica para ese tipo de productos: vaporware.

Encontré este interesante artículo en Menéame.

El test de Turing

Allá por el 1950, Alan Turing propuso una prueba, con el objetivo de proporcionar una definición práctica de inteligencia… No es ninguna broma: puede ser que un día nos encontremos ante la situación de tener que decidir si algo es inteligente o no… Nuestro científico computacional favorito sugirió una especie de examen: los sistemas que lo superasen podrían considerarse inteligentes.

Para hacer esta prueba, Turing propuso que un humano interactuase con el sistema (un ordenador, por ejemplo). Si la persona no fuera capaz de saber si está interactuando con un humano o una máquina, entonces el computador a prueba podría considerarse inteligente. El examen consistiría en una serie de preguntas y respuestas.

Desgraciadamente, un computador que supere esta prueba es muy complicado de construir, aunque no imposible. Se supone que un equipo, para pasar este test, necesitaría:

  • Comprender el lenguaje natural y comunicarse satisfactoriamente.
  • Saber cómo guardar sus conocimientos y lo que siente
  • Ser capaz de razonar, utilizando la información que tiene guardada para responder a preguntas o extraer conclusiones
  • Poseer aprendizaje automático, para adaptarse a nuevos contextos

El lector puede pensar «qué tontería, yo sé distinguir perfectamente un ordenador de una persona»… y de hecho es así, de modo que Turing evitó incluir la interacción física en su prueba. A fin de cuentas, no hace falta simular a una persona para poder medir la inteligencia. Hay otra prueba, llamada la Prueba Global de Turing que incluye estos aspectos: el computador debe, además, ser capaz de ver y de manipular objetos. Pero esa es otra historia…

Sin embargo, a muchos nos parece muy discutible que un ordenador pueda ser considerado inteligente por superar esta prueba… Anoche estuve entreteniéndome con un programa llamado Doctor Abuse, que permite mantener conversaciones con él. Incluso podemos descargar el sintetizador para escucharle. Por ejemplo, este es un fragmento de la conversación que mantuve con él:

Abuse > Conozco a algunas personas que se llaman Pau.
Yo > ¿Ah si? Yo no conozco a nadie llamado Abuse
Abuse > Pues quizá deberías de conocerlo.
Yo > Bueno, en realidad ya conozco a alguien ;)
Abuse > Je, je, je :-].
Yo> Bien, me gustaría comentarte un problemilla
Abuse > ¿Pero qué supondría para ti si lo consiguieras?
Yo> Quizá podrías ayudarme
Abuse > ¿De qué forma?
Yo> Dándome consejos, ¿no?
Abuse > ¿Qué tipo de consejos?
Yo> No sé… yo te cuento mi problema y tú me dices cómo podría solucionarlo…
Abuse > Dame más datos acerca de ese asunto.
Yo> Bien. Verás, se trata de un problema que tengo con los ordenadores
Abuse > Ya veo, estamos hablando de un problema que tienes con los ordenadores.

Fascinante, ¿no? Al principio cuesta que nos responda de forma coherente, pero no es más que aprender a tratar con él… Sin embargo, si somos un poco exigentes, en seguida aparecerán respuestas ilógicas o irrelevantes… hay muchas formas de confundir al Doctor Abuse: utilizando dobles sentidos, ironías, sobreentendidos… Así que no podemos decir que éste programa supere el Test de Turing.

Sin embargo (y aqui viene lo más curioso a mi parecer) es que los investigadores de inteligencia artificial apenas se han esforzado en superar esta prueba… y yo estoy de acuerdo con su postura: es más importante entender en qué se basa la inteligencia que duplicar un ser inteligente… Peter Norvig, en su libro Inteligencia Artificial: un enfoque moderno (lectura que recomiendo) lo explica tan bien que me voy a permitir citar:

La búsqueda de un ingenio que «volara artificialmente» tuvo éxito cuando los hermanos Wright, entre otros, dejaron de imitar a los pájaros y comprendieron los principios de la aerodinámica. Los textos de ingeniería aeronaútica no definen el objetivo de su campo como la construcción de «máquinas que vuelen como palomas de forma que puedan incluso confundir a otras palomas»

Fantástico :-)

Consultorio SF (II). Las redes neuronales

Nuestro lector de honor, Patxi (¡gracias!) nos enviaba esta consulta:

Mola la consultoría. Aquí va una pregunta: ¿llegarán nunca los ordenadores a intepretar imágenes? ¿y vídeo?

Yo me quedaré perplejo el día que a un ordenador le enseñes un video y te lo explique: «se ve un hombre corriendo sobre una playa y ahora rompe una ola…» o algo equivalente.

En realidad aquí se plantean muchas preguntas, así que voy a intentar ir por partes… Nos enfrentamos a un problema decisivo: no conocemos casi nada sobre el funcionamiendo del cerebro. El acto de interpretar es una actividad muy humana, en la medida que precisa de la subjetividad y de la experiencia… tendríamos que preguntarnos cómo percibimos nosotros al hombre que corre por la playa (magnífica excusa para plantar la foto :-P) y cómo sabemos que se trata de una persona… es mucho más complejo de lo que nos parece, porque estamos acostumbrados a interpretar constantemente.

Así que, en cierto sentido, podemos responder que los ordenadores, tal como los conocemos, no serán capaces nunca de interpretar nada… la cuestión aquí es si realmente necesitamos que ellos interpreten de la misma forma en que lo hacemos nosotros… (pero no se desanimen, no todo es lo que parece)

Los ordenadores sólo son capaces de resolver, en principio, los problemas para los cuales conocemos una serie de pasos que nos llevan a su resolución. Pues bien, no existe (no se conoce) una secuencia de este tipo que haga comprender a un computador que lo que se ve en el vídeo es un perro, o una persona, y que lo haga en general (es mucho más complejo que reconocer una letra)

La respuesta tenemos que buscarla en la Inteligencia Artificial. Hay que decir que la IA no es sólo un tema de películas de ciencia-ficción: funciona y sus resultados son prometedores, pero no es la gran revolución que se creía en un principio.

Existe un tipo de computación basada en redes de neuronas. Una red de neuronas imita el funcionamiento de la mente humana: la idea es simular un montón de unidades independientes que pueden funcionar como pequeñas calculadoras, y que interactúan entre sí, tal y como lo hacen las neuronas en nuestro cerebro… puede parecer increíble, pero esto existe…

Hace unos días veíamos cómo los ordenadores pueden reconocer texto y proponíamos una solución sencilla paso a paso. Ahora bien, en cuanto se distorsionaban las letras, el programa no era capaz de comprender nada… Sin embargo, existe una forma de aplicar redes de neuronas al reconocimiento de texto, utilizando [modo experto] una red de Hopfield, que es capaz de soportar una modificación de hasta el 25% de un caracter a reconocer… ¿Cómo lo hace?

Las redes de neuronas aprenden. La forma del aprendizaje es muy parecida a la nuestra: se le da a red un conjunto de datos inicial y se le pide que de un resultado, el que sea. Si es el que esperábamos, hemos terminado. Si no, ajustamos cómo se comunican las neuronas entre ellas y volvemos a probar… es como un entrenamiento. Parece complicado, y de hecho lo es. No obstante, funciona :-)

Sabiendo esto no puedo decir que un ordenador no vaya a ser capaz nunca de reconocer a un hombre corriendo en la playa, pero desde luego que si lo llega a hacer, será mediante un mecanismo de este tipo… (De hecho, nosotros reconocemos a otro humano caminando en la distancia bastándonos sólo en cinco o seis puntos que se mueven a cierto ritmo… es fascinante)

Ahora mismo podríamos tomar una red de neuronas y entrenarla para que reconociera un hombre corriendo (esto existe, de hecho, en algunos sistemas de seguridad, aunque es bastante primitivo). También podríamos lograr que reconociera en un vídeo como rompe una ola (dosis extra de dificultad). Los límites de este tipo de estructuras no están nada claros, para bien o para mal.

El problema surge al generalizar: el querer una red que estudie un vídeo o una imagen y que identifique lo que sea, cualquier cosa, un perro, un gato, un calamar gigante o un humano… yo me atrevería a decir que no parece posible, salvo que el sistema aprenda todos los objetos que pueden aparecer: sus formas, su comportamiento y sus variantes… lo cual implicaría un entrenamiento largo, como el que podamos tener las personas… pero no veo por qué no podría hacerse.

En conclusión, considero que sí es posible que los ordenadores reconozcan fenómenos concretos en imágenes o en vídeo. Serán necesarias, eso sí, estructuras más avanzadas que la computación tradicional, y que estas estructuras hayan sido entrenadas con cierto volumen de datos. No obstante, será muy complicado que reconozcan todas las situaciones posibles sin que hayan sido previstas, tal y como hacemos nosotros, y en grados variables de detalle… Pero sin duda, más tarde o más temprano, la respuesta a la pregunta de Patxi será un S?.

Cuando aparecieron los primeros ordenadores, hubo quien dijo que jamás tendrían éxito por el increíble coste que tendrían… es mejor tener la mente abierta, uno siempre se lleva sorpresas ;-)

PD: Perdón por el post kilométrico, pero el tema lo merece…