¿Cómo funcionan los algoritmos de IA de 20 preguntas?

103

Juegos en línea simples de 20 preguntas impulsados ​​por una inteligencia artificial inquietantemente precisa.

¿Cómo adivinan tan bien?

Papá Warbox
fuente
Parece que son las 20 mejores preguntas sobre IA que he visto hasta ahora. De lo contrario, me vincularía a uno de los otros.
Daddy Warbox
1
Muy bien. Aunque Akinator parece adivinar de manera mucho más intuitiva que 20q.net, por lo que puedo decir. Estoy interesado en lo que hace que ese en particular sea "inteligente", por así decirlo.
Daddy Warbox
1
No tenía idea de que esto existiera en línea. ¡Adivinó 'piña de pino' en el tercer intento, para mi asombro! Impresionante
Peter Perháč
3
+1: definitivamente relacionado con la programación y una buena pregunta.
Adam Davis
@JeffAtwood ¿a qué artículo intentaba vincular?
antony.trupe

Respuestas:

55

Puede pensar en él como el algoritmo de búsqueda binaria. En cada iteración, hacemos una pregunta, que debería eliminar aproximadamente la mitad de las posibles opciones de palabras. Si hay un total de N palabras, entonces podemos esperar obtener una respuesta después de log2 (N) preguntas.

Con 20 preguntas, deberíamos poder encontrar de manera óptima una palabra entre 2 ^ 20 = 1 millón de palabras.

Una forma fácil de eliminar valores atípicos (respuestas incorrectas) sería probablemente usar algo como RANSAC . Esto significaría que, en lugar de tener en cuenta todas las preguntas que se han respondido, elige al azar un subconjunto más pequeño, lo que es suficiente para darle una única respuesta. Ahora repite eso unas cuantas veces con diferentes subconjuntos aleatorios de preguntas, hasta que veas que la mayoría de las veces obtienes el mismo resultado. entonces sabrá que tiene la respuesta correcta.

Por supuesto, esta es solo una de las muchas formas de resolver este problema.

Yogui
fuente
4
Este sencillo programa demuestra bastante bien de qué estás hablando. Una vez que llegue allí, puede hacer clic en el codeenlace para verlo: openbookproject.net/py4fun/animal/animal.html
Noctis Skytower
¿Ese tipo de IA está disponible como servicio? ¿Y si pudiera proporcionar todas las preguntas y respuestas y dejar que las encuentre?
tggagne
¿Y cómo llamas a este tipo de algoritmo? Eso tiene un nombre?
tggagne
25

Un árbol de decisiones apoya directamente este tipo de aplicación. Los árboles de decisión se utilizan comúnmente en inteligencia artificial.

Un árbol de decisión es un árbol binario que hace "la mejor" pregunta en cada rama para distinguir entre las colecciones representadas por sus hijos izquierdo y derecho. La mejor pregunta está determinada por algún algoritmo de aprendizaje que los creadores de la aplicación de 20 preguntas utilizan para construir el árbol. Luego, como señalan otros carteles, un árbol de 20 niveles de profundidad te da un millón de cosas.

Una forma sencilla de definir "la mejor" pregunta en cada punto es buscar una propiedad que divida la colección por la mitad de manera más uniforme. De esa manera, cuando obtenga una respuesta sí / no a esa pregunta, se deshará de aproximadamente la mitad de la colección en cada paso. De esta manera puede aproximar la búsqueda binaria.

Wikipedia da un ejemplo más completo:

http://en.wikipedia.org/wiki/Decision_tree_learning

Y algunos antecedentes generales:

http://en.wikipedia.org/wiki/Decision_tree

Nathan Shively-Sanders
fuente
2
+1, me gustaría señalar que fue uno de los comentarios en el artículo de Atwood.
cgp
1
Es cierto, aunque el programa BÁSICO Animal no tiene un algoritmo de entrenamiento para determinar qué preguntas usar y qué tan alto en el árbol colocarlas. El rendimiento con un árbol de decisiones capacitado debería ser mucho mejor. (Estoy de acuerdo con el comentarista en que las preguntas que recibió Atwood se parecen mucho a las generadas por el algoritmo Animal original y no por una red neuronal).
Nathan Shively-Sanders
24

Recomiendo leer sobre el juego aquí: http://en.wikipedia.org/wiki/Twenty_Questions

En particular la sección de Computadoras:

El juego sugiere que la información (medida por la estadística de entropía de Shannon) requerida para identificar un objeto arbitrario es de unos 20 bits. El juego se utiliza a menudo como ejemplo cuando se enseña a las personas sobre la teoría de la información. Matemáticamente, si cada pregunta está estructurada para eliminar la mitad de los objetos, 20 preguntas permitirán al interrogador distinguir entre 2 20 o 1.048.576 sujetos. En consecuencia, la estrategia más eficaz para Veinte preguntas es hacer preguntas que dividirán el campo de posibilidades restantes aproximadamente a la mitad cada vez. El proceso es análogo a un algoritmo de búsqueda binaria en informática.

cgp
fuente
2
Eso explica algo de eso. Pero cuando considera las respuestas incorrectas y la ambigüedad general, todavía no parece tan sencillo.
Daddy Warbox
1
Si miró el enlace, verá que esta no es realmente una pregunta de sí / no que pueda dividir el campo por la mitad cada vez. Si bien su respuesta es correcta para 20 preguntas, creo que la respuesta de Shaun es más precisa, un algoritmo de aprendizaje simple del vecino más cercano y suficiente información del usuario permite algunos resultados muy precisos.
z -
Ah, es cierto, son similares, pero definitivamente el vecino más cercano tiene más sentido.
cgp
12

Se anuncia a sí misma como "la red neuronal en Internet", y ahí está la clave. Es probable que almacene las probabilidades de preguntas y respuestas en una matriz de repuesto. Usando esas probabilidades, es capaz de usar un algoritmo de árbol de decisión para deducir qué pregunta hacer que reduciría mejor la siguiente pregunta. Una vez que reduce el número de posibles respuestas a unas pocas docenas, o si ya ha alcanzado las 20 preguntas, comienza a leer las más probables.

El aspecto realmente intrigante de 20q.net es que, a diferencia de la mayoría de los árboles de decisión y algoritmos de redes neuronales que conozco, 20q admite una matriz dispersa y actualizaciones incrementales.

Editar: Resulta que la respuesta ha estado en la red todo este tiempo. Robin Burgener, el inventor, describió su algoritmo en detalle en su solicitud de patente de 2005 .

Cerin
fuente
6

Está utilizando un algoritmo de aprendizaje.

k-NN es un buen ejemplo de uno de estos.

Wikipedia: algoritmo de vecino más cercano k

Shaun Mason
fuente
4
¿Es un algoritmo de vecino más cercano una buena opción en este caso? Parecería que sería demasiado indulgente con las respuestas incorrectas y podría terminar con una gran cantidad de dimensiones, muchas de las cuales sin datos. (Asumo el uso de la distancia de martillo y una dimensión por pregunta). Un árbol de decisiones parece un ajuste más natural.
Kylotan
1
La teoría del aprendizaje es la respuesta correcta; no importa que dé respuestas menos "precisas" porque se basa en los errores que todos tienden a cometer, lo que en realidad lo hace mejor para adivinar.
Jonathan Plackett
Entonces, ¿cómo ayuda esto a identificar la mejor pregunta para hacer?
Thomas Ahle