Come funzionano gli algoritmi AI di 20 domande?


103

Semplici giochi online di 20 domande alimentati da un'intelligenza artificiale estremamente precisa.

Come fanno a indovinare così bene?


Sembra che siano le 20 migliori domande AI che ho visto finora. Altrimenti mi collegherei a uno degli altri.
Daddy Warbox

1
Ottimo. Anche se Akinator sembra indovinare in modo molto più intuitivo di 20q.net, per quanto ne so. Sono interessato a ciò che lo rende particolarmente "intelligente", per così dire.
Daddy Warbox

1
non avevo idea che questa cosa esistesse online. Ha indovinato "pigna" al terzo tentativo, con mio grande stupore! Impressionante
Peter Perháč

3
+1 - sicuramente correlato alla programmazione e una buona domanda.
Adam Davis,

@ JeffAtwood a quale articolo stavi cercando di collegarti?
antony.trupe

Risposte:


55

Puoi pensarlo come l'algoritmo di ricerca binaria. In ogni iterazione, poniamo una domanda, che dovrebbe eliminare circa la metà delle possibili scelte di parole. Se ci sono un totale di N parole, allora possiamo aspettarci di ottenere una risposta dopo le domande log2 (N).

Con 20 domande, dovremmo essere in grado di trovare in modo ottimale una parola tra 2 ^ 20 = 1 milione di parole.

Un modo semplice per eliminare i valori anomali (risposte sbagliate) sarebbe probabilmente usare qualcosa come RANSAC . Ciò significherebbe, invece di prendere in considerazione tutte le domande a cui è stata data risposta, scegliere a caso un sottoinsieme più piccolo, che è sufficiente per darti un'unica risposta. Ora lo ripeti alcune volte con diversi sottoinsiemi casuali di domande, finché non vedi che la maggior parte delle volte ottieni lo stesso risultato. allora sai di avere la risposta giusta.

Ovviamente questo è solo uno dei tanti modi per risolvere questo problema.


4
Questo semplice programma mostra piuttosto bene ciò di cui parli. Una volta arrivato, puoi fare clic sul codelink per vederlo: openbookproject.net/py4fun/animal/animal.html
Noctis Skytower

Quel tipo di intelligenza artificiale è disponibile come servizio? E se potessi fornire tutte le domande e le risposte e lasciare che le trovi?
tggagne

E come chiamate questo tipo di algoritmo? ha un nome?
tggagne

25

Un albero decisionale supporta direttamente questo tipo di applicazione. Gli alberi decisionali sono comunemente usati nell'intelligenza artificiale.

Un albero decisionale è un albero binario che pone "la migliore" domanda a ciascun ramo per distinguere tra le raccolte rappresentate dai suoi figli di sinistra e di destra. La domanda migliore è determinata da un algoritmo di apprendimento che i creatori dell'applicazione 20 domande usano per costruire l'albero. Quindi, come sottolineano altri poster, un albero profondo 20 livelli ti dà un milione di cose.

Un modo semplice per definire "la migliore" domanda in ogni punto è cercare una proprietà che divida in modo più uniforme la raccolta a metà. In questo modo, quando ottieni una risposta sì / no a questa domanda, ti sbarazzi di circa la metà della raccolta ad ogni passaggio. In questo modo puoi approssimare la ricerca binaria.

Wikipedia fornisce un esempio più completo:

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

E alcune informazioni generali:

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


2
+1, vorrei notare che era uno dei commenti nell'articolo di Atwood.
cgp

1
Vero, sebbene il programma BASIC Animal non abbia un algoritmo di addestramento per determinare quali domande usare e quanto in alto nell'albero metterle. Le prestazioni con un albero decisionale addestrato dovrebbero essere molto migliori. (Sono d'accordo con il commentatore sul fatto che le domande che Atwood ha ricevuto sembrano molto simili a quelle generate dall'algoritmo Animal originale e non da una rete neurale.)
Nathan Shively-Sanders,

24

Consiglio di leggere del gioco qui: http://en.wikipedia.org/wiki/Twenty_Questions

In particolare la sezione Computer:

Il gioco suggerisce che le informazioni (misurate dalla statistica entropica di Shannon) richieste per identificare un oggetto arbitrario sono di circa 20 bit. Il gioco è spesso usato come esempio quando si insegna alla gente la teoria dell'informazione. Matematicamente, se ogni domanda è strutturata in modo da eliminare metà degli oggetti, 20 domande permetteranno all'interrogante di distinguere tra 2 20 o 1.048.576 soggetti. Di conseguenza, la strategia più efficace per Twenty Questions è porre domande che divideranno il campo delle possibilità rimanenti all'incirca a metà ogni volta. Il processo è analogo a un algoritmo di ricerca binaria in informatica.


2
Questo spiega in parte. Ma quando si considerano le risposte errate e l'ambiguità generale, non sembra ancora così semplice.
Daddy Warbox

1
Se hai guardato il link vedrai che questa non è davvero una domanda sì / no che può dividere il campo della metà ogni volta. Sebbene la tua risposta sia corretta per 20 domande, penso che la risposta di Shaun sia più accurata, un semplice algoritmo di apprendimento del vicino più vicino e un input dell'utente sufficiente, consente alcuni risultati molto accurati.
z -

Ah, è vero, sono simili, ma sicuramente il vicino più vicino ha più senso.
cgp

12

Si autodefinisce "la rete neurale su Internet" e qui sta la chiave. Probabilmente memorizza le probabilità di domanda / risposta in una matrice di riserva. Utilizzando queste probabilità, è in grado di utilizzare un algoritmo ad albero decisionale per dedurre quale domanda porre per restringere meglio la domanda successiva. Una volta che riduce il numero di possibili risposte a poche dozzine, o se ha già raggiunto 20 domande, inizia a leggere la più probabile.

L'aspetto davvero intrigante di 20q.net è che, a differenza della maggior parte degli algoritmi di albero decisionale e di rete neurale di cui sono a conoscenza, 20q supporta una matrice sparsa e aggiornamenti incrementali.

Modifica: risulta che la risposta è stata in rete per tutto questo tempo. Robin Burgener, l'inventore, ha descritto in dettaglio il suo algoritmo nel suo deposito di brevetto del 2005 .


6

Utilizza un algoritmo di apprendimento.

k-NN è un buon esempio di uno di questi.

Wikipedia: k-Nearest Neighbor Algorithm


4
Un algoritmo del vicino più vicino è una buona scelta in questo caso? Sembrerebbe che perdonerebbe troppo le risposte sbagliate e potrebbe finire con un numero enorme di dimensioni, molte delle quali senza dati. (Presumo l'uso della distanza di martellamento e di una dimensione per domanda.) Un albero decisionale sembra un adattamento più naturale.
Kylotan

1
La teoria dell'apprendimento è la risposta corretta: non importa che dia risposte meno "accurate" perché si basa sugli errori che tutti tendono a fare, il che rende effettivamente più facile indovinare.
Jonathan Plackett

In che modo questo aiuta a identificare la migliore domanda da porre?
Thomas Ahle
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.