miércoles, 9 de febrero de 2011

Patrones de adivinación

Muchas cosas parecen casuales, o hasta misteriosas, simplemente porque no descubrimos el patrón que ocultan: esos juegos en los que se adivinan números, o símbolos, o hasta palabras, son ejemplo de ello.
Y si de juegos se trata, hay uno ya muy conocido, que apareció en Pensando en jugar y en tantos otros sitios: el genio de la web, Akinator. Este genio salido de una lámpara, tras hacer unas 20 preguntas, logra decir de quién se trata: lo mismo descubre una persona real, un personaje de ficción, un familiar, o hasta una mascota.
Elokence, la empresa francesa de ingeniería informática que lo desarrolló, lo usa como clara muestra de sus habilidades de programación y no da detalles acerca del detrás de escena.
Pero es tan alto el grado de aciertos, tan sorprendente su accionar, que muchos se han detenido a analizar esta cuestión. Según parece, y opinan los que saben, todo esto se basa en teorías estadísticas, que a partir de las respuestas dadas estiman la probabilidad de que se trate de una u otra celebridad. En particular, se trataría de un clasificador bayesiano ingenuo (bayesiano porque aplica el teorema de Bayes, referido a probabilidades condicionales, e ingenuo porque se asume la independencia de variables, lo que da un escenario más simple).


A partir del algoritmo utilizado, luego de cada pregunta Akinator asigna un valor de probabilidad a los diferentes personajes, siendo su respuesta final aquella que obtiene la probabilidad más alta. Por ejemplo, si se responde negativamente a "el personaje elegido es real?", bajará significativamente la probabilidad de todos aquellos que son de ficción, sin eliminarlos del todo, por lo que se puede hallar a la persona correcta a pesar de haber respondido erróneamente alguna pregunta. Pero hay respuestas menos terminantes, y si a "el personaje tiene hijos?" se responde "probablemente no", bajará levemente la probabilidad de unos, y subirá levemente la de otros.
Lo que constituye una fortaleza notable del juego es su capacidad de incorporar nuevos personajes, y aceptar correcciones, en una especie de proceso de aprendizaje. En ciertos casos puede hacer más de 20 preguntas, lo que le sirve, al mismo tiempo, para obtener información nueva y verificar y revalidar la que posee.
Al terminar la partida se puede ver qué respuestas esperaba obtener para el personaje en cuestión, y cuáles efectivamente obtuvo.
Para una explicación más detallada se puede consultar aquí.

Este tipo de aplicaciones recibe el nombre de sistema experto, y es estudiado por una rama de la inteligencia artificial. Actualmente se utilizan sistemas expertos para identificar correo no deseado, para detectar y reparar fallas en equipos electrónicos a través de preguntas al usuario, para realizar análisis financieros y estudiar oportunidades de inversión, y hasta para hacer el pronóstico del clima. Otro uso es la moderna técnica de minería de datos (data mining, en inglés) que extrae información hasta el momento desconocida de un conjunto de datos previamente almacenados y que se emplea, por ejemplo, para detectar hábitos de consumo (así es cómo se ofrecen ofertas personalizadas, o referidas a ciertos productos o días de la semana o medios de pago).

Sin lugar a dudas, y aunque haya patrones, Akinator es sorprendente.

1 comentario:

LuMi dijo...

Si bien recuerdo, anteriormente (es decir, no sé ahora), se te permitía ingresar posibles preguntas para que Akinator hiciera a la hora de adivinar. Por lo que, creo, eso también aumenta la cantidad de posibilidades de que adivine correctamente, ¿no?
Lo que demuestra que el juego, en lo que es "su interior" es muchísimo más avanzado de lo que parece, ya que debe filtrar las preguntas que realmente podrían llegar a servir y utilizarlas en el momento adecuado.
Por otro lado, cuando el genio no adivina uno debe marcarle cuál era la opción correcta, lo que le indica que debe poner más énfasis en ese resultado... Es realmente sorprendente.