Sunday, July 27, 2008

Engañando a la prueba de Turing

De acuerdo a la Wikipedia, se llama Prueba o Test de Turing al procedimiento desarrollado por Alan Turing para corroborar la existencia de inteligencia en una máquina. Fue expuesto en 1950 en un artículo (Computing machinery and intelligence) para la revista Mind, y sigue siendo uno de los mejores métodos para los defensores de la Inteligencia Artificial. Se fundamenta en la hipótesis positivista de que, si una máquina se comporta en todos los aspectos como inteligente, entonces debe ser inteligente.

La prueba consiste en un desafío. Se supone un juez situado en una habitación, y una máquina y un ser humano en otras. El juez debe descubrir cuál es el ser humano y cuál es la máquina, estándoles a los dos permitidos mentir al contestar por escrito las preguntas que el juez les hiciera. La tesis de Turing es que si ambos jugadores eran suficientemente hábiles, el juez no podría distinguir quién era el ser humano y quién la máquina. El límite temporal que Turing puso para que una máquina consiga superar el test engañando durante bastante tiempo a un buen interrogador, y no dejándole aclarar si se está dirigiendo a un ser humano o a una máquina. Todavía ninguna máquina puede pasar este examen en una experiencia con método científico. ¿Será posible engañar a la prueba de Turing? Enricco Wizard, extraordinario programador, fallecido hace unos pocos años, escribió un programa que hace precisamente esto.

Imagine pues un programa verdaderamente inteligente, uno que pueda responder a cualquier pregunta en español, en el lenguaje que naturalmente hablamos los seres humanos en nuestro país. Alguno de mis cinco lectores me dirá que ningún programa realmente puede responder cualquier pregunta, porque para esto necesitaría de una amplia concepción del mundo (y sería algo inteligente ¿no?). Vaya, que simplemente reconocer las preguntas en lenguaje natural sería ya un mérito más que suficiente. Pero no hay que cerrarse ante la posibilidad de imaginar un programa de estas características. Simplemente imagine que existe. Ahora, hagamos una pregunta cualquiera: ¿Quién es divina? por ejemplo. Si la respuesta es: “Ilse”, a lo mejor puedo suponer que a sabiendas que el programa iba a interactuar conmigo, podrían haber programado esta respuesta. Qué tal preguntarle: “¿Cuánto vale mi computadora?” Si el sistema me responde con: “Muchos pesos”, entonces podré suponer que es una respuesta genérica. Pero sigamos. Tomemos un lápiz y preguntémosle a nuestro hipotético programa: “¿Qué tengo en la mano?” Si la respuesta es: “un lápiz”, seguramente me quedaré sorprendido, porque no encontraré en primera instancia forma alguna para explicar dicha respuesta.

Wizard –a partir de esto– elaboró su programa y el autor del mismo se demostró como un verdadero observador de la conducta humana. Enricco creó el programa IQ, que posteriormente llamaron lisa, liza, ouija electrónica, devil 666, entre otros nombres, el cual supuestamente es un sistema que, efectivamente, responde cualquier pregunta, tal y como hemos explicado antes. El sistema trabaja considerando que hay un personaje, denominado Liza, quien es la encargada de responder a las preguntas. Cada vez que se quiere preguntar al sistema algo, hay que darle a Liza, de buenas maneras, por supuesto, la pregunta. Esto se hace escribiendo: “Liza, favor de responder a la siguiente pregunta:” (al escribir los dos puntos, el sistema pasa a la siguiente línea en la pantalla). Ahora hacemos la pregunta que nos interese del tema que queramos, por ejemplo: “¿Ganarán los Pumas en esta ocasión?” (Termine con signo de interrogación). Después de una breve pausa, el sistema dirá algo así: “De acuerdo con mis estimaciones, los Pumas ganarán de nuevo”. Por supuesto que todo es un truco, un acto de magia, como el que ejecutan los profesionales de la ilusión y que nos sorprenden, pues desafían todas las leyes conocidas.

¿Cómo trabaja? Muy fácil. Considere a su posible víctima y dígale que tiene un programa fascinante e increíblemente inteligente. Insista que el sistema puede responder prácticamente cualquier pregunta que se le haga. Ejecute el programa IQ y dígale a su interlocutor que piense en alguna pregunta. Supongamos que dicha pregunta es: “¿Quién es el Presidente de México?”. Entonces escriba usted: “.Calderón” (empiece con un punto). Note que cada vez que presiona alguna letra de lo que está realmente escribiendo, no aparece en pantalla lo que uno debería ver, sino parte del mensaje: “Liza, favor de responder...” etc. Es decir, el programa no hace “eco” en pantalla de lo que teclea uno, sino que siempre pone la frase: “Liza, favor de...” etc. Obviamente el sistema está capturando la respuesta que el programa dará al usuario. Cuando termine de escribir la respuesta elegida, escriba punto de nuevo (“.”), el cual es el terminador de la misma y entonces, ahora sí, complete la oración que hay que poner cada vez que se le hace una pregunta a Liza (termine con dos puntos (“:”)), y ahora, en la siguiente línea, escriba la pregunta correspondiente. Después de algunos segundos Liza responderá: “Sin considerar más datos, se trata de: Calderón”.

Puede con esto impresionar a más de uno, incluso a aquellos que son unos verdaderos expertos en las artes de la programación (me consta). Ahora bien, preguntémonos por qué el truco funciona. La verdad es que cuando tecleamos, nadie observa qué teclas en particular estamos oprimiendo realmente. Otra cuestión es la velocidad del tecleo, que hace aún más difícil detectar el engaño (¿alguien ha tratado de ver la clave de un usuario mirando el teclado cuando éste escribe su contraseña?). Finalmente, es claro que la posible víctima está atenta a lo que aparece en pantalla y eso distrae la posibilidad de atender a lo que se escribe en el teclado.

Tan fue un revuelo el programa de Enricco, que el dizque investigador de ovnis y fenómenos paranormales, Jaime Maussán, fue engañando por un adolescente que había modificado la versión original de Lisa y le había puesto frases satánicas para así crear un efecto más dramático. Maussán se la creyó originalmente, hasta que alguien le explicó el truco de cómo funcionaba. Eso revela un dato por demás ya conocido: quien quiere creer en algo seguramente lo creerá sin considerar ninguna prueba en contra de lo que cree. Al televisivo investigador le pasa eso contínuamente y por eso prácticamente todas sus “investigaciones” son finalmente sesgadas por sus propias creencias. Es algo endémico, tanto a favor o en contra de cualquier hipótesis que se planteé la gente. Otras personas, interesadas en el fenómeno de Lisa, decidieron atacar el asunto y una descripción completa de una sesuda investigación puede verse en http://www.acusticavisual.org/laesferaazul/modules/sections/index.php?op=printpage&artid=14.

Cabe señalar que después de la creación de este programa, y a sabiendas que más de una persona lo modificó –editándolo con algún programa que manejaba el código como texto (un editor hexadecimal, por ejemplo)– Enricco se dio a la tarea de hacer una versión para Windows y encriptó todos los mensajes para que fuese difícil cambiarlos. De esta manera pretendía mantener sin alteraciones el software original.

Sólo me resta una advertencia. Demuestre el programa por un corto tiempo, no se trata de hacer una sesión de dos horas porque entonces sí, tarde o temprano hallarán el truco usado. Limítese a hacer no más de diez preguntas y nunca deje el programa en la máquina en donde está haciendo la demostración. Para añadir un efecto más dramático, haga que el programa responda de pronto de manera errónea o muy vagamente (si contesta siempre con certeza absoluta es más difícil que le crean). Cuando le pidan una copia del sistema, diga que no se lo puede pasar a nadie por las cuestiones del pirateo de software, que la BSA lo va a perseguir o alguna excusa de esa naturaleza... Ah, algo más, y esto es lo más importante. Haga como los verdaderos magos: nunca revele el truco usado.

Quien quiera una copia de Lisa para Windows, mándeme un mensaje a morsa@la-morsa.com y a vuelta de correo lo recibirá, sin costo alguno, desde luego.

1 comment:

Gabriel said...

Manny Boy:

Tocas un tema por demás interesante, siendo que las primeras definiciones de una máquina de Turing, datan de los años 30's del Siglo XX, si no me equivoco.

Alonso Church y su Lambda Calculus junto con Turing empezaron a poner las primeras bases de la Inteligencia Artificial, entre los 30's y 40's, con sus interrupciones para que Turing trabajara en la máquina británica Coloso (que fue realmente la primera computadora electrónica del mundo, cosa que se mantuvo en secreto por parte del gobierno británico hasta los años 70's, vé a saber exactamete porqué), durante la Segunda Guerra Mundial. Estos cuates, empezaron con la idea de crear una máquina que pudiera demostrar teoremas, algo fascinante, y todavía más o menos remoto, aún en la época actual, aunque la conjetura de Goldbach, el problema del Mapa de los 4 colores, fue demostrada cierta por unos investigadores de la IBM, usando una IBM 360, si la memoria no me falla, en los años 70's, coloreando a "brute force" n-cantidad de mapas, solamente con 4 colores.

Claro tendríamos que entrar en la problemática de los problemas, valiendo el problema en que nos mete la redundancia, Computacionalmente difíciles y la clasificación de los p, np y de los np-Complejos.

Pero bueno, regresando al tema de la prueba de Turing, recuerdo un artículo de tu amigo Martin Gardner, en un SciAm de fines de los 70's, donde demuestra cómo es un mero caso estadístico el hecho de que hasta un cerdo (sí de esos de donde se saca el jamón, tocino, manteca, chicharrón y carnitas) podía adivinar escogiendo una de tres o cuatro cartas, cosa usada comunmente en las ferias y circos ambulantes europeos, en particular este truco se popularizó en Gran Bretaña.

La cosa a la que voy es la siguiente: (y de paso me refiero a tu post sobre la ESP en casa) si en razonamientos meramente triviales, ¿qué pasa si los seres humanos promedio, pensamos de una manera previsible por medio de una estadística más o menos compleja (¿estadística Bayesiana?)?

Si dentro de esta estadística definimos una gramática (no sé qué tan formal, o con qué grado de informalidad) de esas que definió Noam Chomsky hace años, creo que también en los 50's o 60's, realmente no me acuerdo bien, podríamos, en una primera instancia hipotética, producir un programa que pudiera, tal vez algunas veces sí y otras no, pasar el test de Turing. Claro, con un poder bastante fuerte de cómputo.

Recuerdo que en las clases de Inteligencia Artificial (con Cristina Loyo, que es esa época tenía unas piernas realmente hermosas, mmmmm!) y en la clase de Sistemas Expertos con Christian Lemaitre, en la Facultad de Ciencias, hace como 20 años, analizamos todas estas cosas, muchas, debo confesarlo, al menos en esa época, escaparan francamente a mi comprensión y realmente nunca pude sentir la verdadera fuerza del lenguaje de programación Prolog ni de los Sistemas Expertos.

Recuerdo que en una de las divertidas clases del Dr. Lemaitre, nos preguntó para armar una mesa redonda sobre el tema en cuetión, ¿qué se le necesitaría poner a una computadora para hacerla una máquina tan inteligente como un ser humano?.

Yo le reviré la pregunta, con un revés a dos manos como los que hicieran famoso al tenista Jimmy Connors, pensando al revés ¿Qué le tendríamos que quitar a un ser humano para que se pareciera a la más poderosa de las computadoras de ese entonces?. Sí ya sé que fue una pregunta macabra, digna de cualquier película de SciFi de los 50's-70's.

No recuerdo bien, si además habría que considerar para la prueba de Turing ciertos marcos formales.

Por ejemplo, supongamos que te vás a lo más recóndito de (y no quiero caer en un cliché indigenista-izquierdista absurdo) la Selva Lacandona, a un lugar donde no lleguen los medios de comunicación y te escojes al miembro de la comunidad más inteligente (definiendo inteligencia como aquella capacidad de mejor adaptación a nuevas circunstancias) y te lo traes a la Ciudad de México, y lo pones en lugar de una computadora, sin que el Juez calificador se entere, obviamente. Si le preguntas, incluso en su dialecto original, ¿Quién es el Presidente de México?, suponiendo que supiera lo que significa la palabra Presidente, te vá a decir probablemente "No lo sé" (o alguna variante de respuesta que lleve implícita una negación), pues no tiene acceso a una base de datos donde tenga esa información. Si le preguntas ¿Quien es divina?, partiendo de que ésta persona entienda lo que para nosotros significa divina, a lo mejor te responde "La Madre Naturaleza" (cualquiera que sea la concepción en su propia cultura de "Madre Naturaleza"), o se refiere a la Luna, o a la Primavera, o a la Mañana, a lo mejor te cita alguna deidad propia de su grey, o a su propia mujer, en caso de ser el interrogado un varón. Aquí todavía no queda claro si te responde una máquina o un ser humano.

Esto sería el equivalente a tener un programa con una base de datos pobre, en el área precisa del interrogatorio. Pero ¿Qué pasa si cambias la pregunta a algo como, dime por favor cómo puedo cazar a un venado, o qué época es mejor para sembrar maíz?, tal vez el juez, se podría dar cuenta de que es un ser humano, pero ¿que tal si tienes un sistema experto gigantesco, corriendo en una máquina gigantesca, con una base de datos gigantesca en el área del conocimiento sobre la cual se desarrolle el interrogatorio?

Nuevamente caemos en las definiciones de las gramáticas.

Ahora bien, una pregunta como la de ¿qué tengo en la mano? si tomaste un lápiz de la mesa, en la prueba original de Turing, no puede haber una respuesta acertada, solamente una mera estadística, porque, si no mal recuerdo entre el Juez Calificador de la prueba y sus interrogados, la máquina y el ser humano, solamente el contacto era a través de preguntas y respuestas escritas a máquina.

Pero vamos a ir más lejos y pensemos, que con los nuevos algoritmos de visión por computadora, que por cierto, tal parece ser que se pueden implementar en C++ con cierta facilidad y son tan pequeños que pueden caber en la memoria de un buen teléfono celular y ejecutarse desde ahí a través de la propia cámara del telefono, según mis últimas investigaciones, tanto el ser humano como la máquina, en ambos cuartos (separados, por supuesto, no vaya a resultar un tarado que le quiera copiar las respuestas a la computadora...), pudieran tener una cámara de video que les mostrara lo que tiene el juez en la mano, y vamos a darle, como en las carreras de caballos, un "Handicap" de ventaja a la computadora, demorando el tiempo de respuesta que recibirá el Juez.

Si en la base de datos de la computadora, con un algoritmo de visión más o menos sofisticado, hay algo que sea un lápiz, lo más probable es que responda "Un Lápiz" y hasta te diga el color del mismo, después de varios ciclos de cálculos y de "Tree prunning" (ya sean verdes o rojos, los cortes del árbol). Hay robots industriales, que tienen implementados en sus cerebros electrónicos, algoritmos de visión más o menos precisos, sin embargo bastante funcionales, como para hacerlos redituables, que les permiten realizar ciertas tareas de ensamblaje.

Pero vayámonos aún mucho más lejos, ¿Qué sucede si el ser humano que pones en uno de los cuartos, tiene una inteligencia bastante reducida en comparación al promedio normal que es de 100 puntos, digamos algún ser humano con un nivel de "Imbecilidad", tal y como lo define la psiquiatría moderna?

Éste sólo hecho, bastante escalofriante por cierto, de que el juez pueda pensar erróneamente que el ser humano que respondió como un Imbécil, sea una máquina, ¿le quitará su calidad de ser humano? La pregunta parece tonta, pero sus implicaciones filosóficas y morales son bastante complejas.

¿Tenemos actualmente una definición adecuada de inteligencia? ¿Hasta dónde es funcional ésta definición?

¿Sirven de algo los tests de inteligencia? Me comentabas el otro día que según una prueba de IQ que te hicieron andabas cerca de los 160 puntos y hasta te llegó una invitación de la misteriosa sociedad del acrónimo paradójico "MENSA" que reune a los más inteligentes del mundo, mientras en una prueba que me hicieron hace ya varios años, yo obtuve unos modestos 147 puntos, eso ¿significa algo? El estar 47 o 60 puntos arriba del promedio normal, ¿acaso es la clave del éxito en la vida?

Lo que pasa es que se tienen que entrar a definir los tipos de inteligencia, emocional, verbal, artística, abstracta, etc. A lo mejor tú le puedes ganar una partida a un Maestro FIDE en 20 minutos, bueno, yo nunca pude aprender a jugar al ajedrez, simplemente no se me dió (ni tampoco le puse mucho interés al asunto), pero en 20 minutos te puedo escribir 4 buenos cuentos cortos, distintos o un buen ensayo, con la pura información que traigo en la mente de unas 50 cuartillas.

Yo puedo pintar un cuadro a la acuarela en una sola noche, un buen cuadro, pero a lo mejor tú en una sola hora haces un maravilloso programa de cómputo, yo sé tocar 2 instrumentos musicales bien, trompeta y piano, pero tú tienes una Maestría en Inteligencia Artificial por la Universidad de Sussex.

Yo sé la forma en la cual le puedo hacer el amor a 2 mujeres al mismo tiempo, y yo creo que tú no (a menos de que Juan te halla platicado mi método)... :) ¿Eso me hace más inteligente que tú o menos inteligente que tú? ¿Quién es más inteligente de los dos? Respuesta: Who cares?

Con estos ejemplos te pongo sobre la mesa lo complejo que es tener una definición adecuada de inteligencia.

Ahora bien, ¿alguien se habrá preguntado el Test de Turing, a qué tipo de problema pertence, P, NP o NP-Complejo? y te lo pregunto a tí, que definitivamente sabes muchísimo más sobre el tema de la Inteligencia Artificial que yo.

Porque si tenemos que para pasar el Test de Turing, se tiene que contruir una computadora del tamaño del universo, y que después de funcionar una edad igual o mayor a la edad del universo, entonces estamos fritos, el Test de Turing, nunca será realizable en términos prácticos.

Ya para terminar, si alguna vez escribes un programa con todo lo que sabes de IA y tenga la característica de que las respuestas que te dé, sean válidas en un universo zurdo, y a la pregunta de ¿Quíen es divina? y te responda: "útnaC aL", entonces sí habrás escrito un verdadero programa de Inteligencia Artificial, o al menos uno que "Aterrice Proyectos".... juar, juar, juar, ¡Me la debías chaparrín! ;)

Saludos, y que acabes de pasar un divertido fin de semana.

Gabriel