Des jeux en ligne simples de 20 questions alimentés par une IA d'une précision étrange.
Comment devinent-ils si bien?
Vous pouvez le considérer comme l'algorithme de recherche binaire. À chaque itération, nous posons une question, qui devrait éliminer environ la moitié des choix Word possibles. S'il y a au total N mots, alors nous pouvons nous attendre à obtenir une réponse après les questions log2 (N).
Avec 20 questions, nous devrions de manière optimale être en mesure de trouver un mot parmi 2 ^ 20 = 1 million de mots.
Un moyen facile d'éliminer les valeurs aberrantes (mauvaises réponses) serait probablement d'utiliser quelque chose comme RANSAC . Cela signifie que, au lieu de prendre en compte toutes les questions auxquelles vous avez répondu, vous choisissez au hasard un sous-ensemble plus petit, ce qui est suffisant pour vous donner une réponse unique. Maintenant, vous répétez cela plusieurs fois avec différents sous-ensembles aléatoires de questions, jusqu'à ce que vous voyiez que la plupart du temps, vous obtenez le même résultat. vous savez alors que vous avez la bonne réponse.
Bien sûr, ce n'est qu'une façon parmi tant d'autres de résoudre ce problème.
Je recommande la lecture du jeu ici: http://en.wikipedia.org/wiki/Twenty_Questions
En particulier la section Ordinateurs:
Le jeu suggère que les informations (mesurées par la statistique d'entropie de Shannon) nécessaires pour identifier un objet arbitraire sont d'environ 20 bits. Le jeu est souvent utilisé comme exemple pour enseigner aux gens la théorie de l'information. Mathématiquement, si chaque question est structurée pour éliminer la moitié des objets, 20 questions permettront au questionneur de distinguer 220 ou 1 048 576 sujets. En conséquence, la stratégie la plus efficace pour Vingt Questions consiste à poser des questions qui diviseront le champ des possibilités restantes à peu près en deux à chaque fois. Le processus est analogue à un algorithme de recherche binaire en informatique.
Un arbre de décision prend directement en charge ce type d'application. Les arbres de décision sont couramment utilisés en intelligence artificielle.
Un arbre de décision est un arbre binaire qui pose "la meilleure" question à chaque branche pour distinguer les collections représentées par ses enfants gauche et droit. La meilleure question est déterminée par un algorithme d'apprentissage que les créateurs de l'application de 20 questions utilisent pour construire l'arbre. Ensuite, comme le soulignent d'autres affiches, un arbre de 20 niveaux de profondeur vous donne un million de choses.
Un moyen simple de définir "la meilleure" question à chaque point consiste à rechercher une propriété qui divise le plus uniformément la collection en deux. De cette façon, lorsque vous obtenez une réponse oui/non à cette question, vous vous débarrassez d'environ la moitié de la collection à chaque étape. De cette façon, vous pouvez approximer la recherche binaire.
Wikipedia donne un exemple plus complet:
http://en.wikipedia.org/wiki/Decision_tree_learning
Et quelques informations générales:
Il se présente comme "le réseau neuronal sur Internet", et c'est là que réside la clé. Il stocke probablement les probabilités de question/réponse dans une matrice de rechange. En utilisant ces probabilités, il est capable d'utiliser un algorithme d'arbre de décision pour déduire la question à poser qui réduirait le mieux la question suivante. Une fois qu'il réduit le nombre de réponses possibles à quelques dizaines, ou s'il a déjà atteint 20 questions, il commence à lire le plus probablement.
L'aspect vraiment fascinant de 20q.net est que, contrairement à la plupart des algorithmes d'arbre de décision et de réseau neuronal que je connais, 20q prend en charge une matrice clairsemée et des mises à jour incrémentielles.
Edit: Il s'avère que la réponse a été sur le net tout ce temps. Robin Burgener, l'inventeur, a décrit son algorithme en détail dans son dépôt de brevet 2005 .
Il utilise un algorithme d'apprentissage.
k-NN en est un bon exemple.