Semplici giochi online di 20 domande alimentati da un'intelligenza artificiale estremamente precisa.
Come fanno a indovinare così bene?
Semplici giochi online di 20 domande alimentati da un'intelligenza artificiale estremamente precisa.
Come fanno a indovinare così bene?
Risposte:
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.
code
link per vederlo: openbookproject.net/py4fun/animal/animal.html
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:
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.
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 .
Utilizza un algoritmo di apprendimento.
k-NN è un buon esempio di uno di questi.