Wie funktionieren KI-Algorithmen mit 20 Fragen?


103

Einfache Online-Spiele mit 20 Fragen, angetrieben von einer unheimlich genauen KI.

Wie raten sie so gut?


Es scheinen die besten 20 Fragen zu sein, die ich bisher gesehen habe. Sonst würde ich auf einen der anderen verlinken.
Daddy Warbox

1
Sehr gut. Obwohl Akinator, soweit ich das beurteilen kann, viel intuitiver zu raten scheint als 20q.net. Ich interessiere mich dafür, was diesen sozusagen besonders "schlau" macht.
Daddy Warbox

1
Ich hatte keine Ahnung, dass dieses Ding online existiert. Zu meinem Erstaunen wurde beim dritten Versuch ein Tannenzapfen vermutet! Beeindruckend
Peter Perháč

3
+1 - definitiv programmierbezogen und eine gute Frage.
Adam Davis

@ JeffAtwood Auf welchen Artikel wollten Sie verlinken?
antony.trupe

Antworten:


55

Sie können es sich als binären Suchalgorithmus vorstellen. In jeder Iteration stellen wir eine Frage, die ungefähr die Hälfte der möglichen Wortauswahl eliminieren sollte. Wenn es insgesamt N Wörter gibt, können wir erwarten, nach log2 (N) Fragen eine Antwort zu erhalten.

Mit 20 Fragen sollten wir optimal in der Lage sein, ein Wort unter 2 ^ 20 = 1 Million Wörtern zu finden.

Eine einfache Möglichkeit, Ausreißer (falsche Antworten) zu eliminieren, wäre wahrscheinlich die Verwendung von RANSAC . Dies würde bedeuten, dass Sie, anstatt alle beantworteten Fragen zu berücksichtigen, zufällig eine kleinere Teilmenge auswählen, die ausreicht, um eine einzige Antwort zu erhalten. Jetzt wiederholen Sie dies einige Male mit verschiedenen zufälligen Teilmengen von Fragen, bis Sie feststellen, dass Sie die meiste Zeit das gleiche Ergebnis erhalten. Sie wissen dann, dass Sie die richtige Antwort haben.

Dies ist natürlich nur eine von vielen Möglichkeiten, dieses Problem zu lösen.


4
Dieses einfache Programm zeigt ziemlich gut, wovon Sie sprechen. Sobald Sie dort angekommen sind, können Sie auf den codeLink klicken , um ihn anzuzeigen
Noctis Skytower

Ist diese Art von KI als Service verfügbar? Was wäre, wenn ich alle Fragen und Antworten geben und sie finden lassen könnte?
tggagne

Und wie nennt man diese Art von Algorithmus? Hat es einen Namen?
tggagne

25

Ein Entscheidungsbaum unterstützt diese Art der Anwendung direkt. Entscheidungsbäume werden häufig in der künstlichen Intelligenz verwendet.

Ein Entscheidungsbaum ist ein Binärbaum, der in jedem Zweig die "beste" Frage stellt, um zwischen den Sammlungen zu unterscheiden, die durch seine linken und rechten untergeordneten Elemente dargestellt werden. Die beste Frage wird durch einen Lernalgorithmus bestimmt, den die Ersteller der 20-Fragen-Anwendung zum Erstellen des Baums verwenden. Wie andere Poster zeigen, gibt Ihnen ein 20 Ebenen tiefer Baum eine Million Dinge.

Eine einfache Möglichkeit, "die beste" Frage an jedem Punkt zu definieren, besteht darin, nach einer Eigenschaft zu suchen, die die Sammlung am gleichmäßigsten in zwei Hälften teilt. Auf diese Weise wird bei jedem Schritt etwa die Hälfte der Sammlung entfernt, wenn Sie eine Ja / Nein-Antwort auf diese Frage erhalten. Auf diese Weise können Sie die binäre Suche approximieren.

Wikipedia gibt ein vollständigeres Beispiel:

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

Und einige allgemeine Hintergrundinformationen:

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


2
+1, ich würde bemerken, dass dies einer der Kommentare im Atwood-Artikel war.
CGP

1
Richtig, obwohl das BASIC-Programm Animal keinen Trainingsalgorithmus hat, um zu bestimmen, welche Fragen verwendet werden sollen und wie hoch sie im Baum stehen sollen. Die Leistung mit einem trainierten Entscheidungsbaum sollte viel besser sein. (Ich stimme dem Kommentator zu, dass die Fragen, die Atwood bekam, sehr ähnlich aussehen wie sie vom ursprünglichen Animal-Algorithmus und nicht von einem neuronalen Netzwerk generiert wurden.)
Nathan Shively-Sanders

24

Ich empfehle, hier über das Spiel zu lesen: http://en.wikipedia.org/wiki/Twenty_Questions

Insbesondere der Abschnitt Computer:

Das Spiel legt nahe, dass die Informationen (gemessen anhand der Entropiestatistik von Shannon), die zur Identifizierung eines beliebigen Objekts erforderlich sind, etwa 20 Bit betragen. Das Spiel wird oft als Beispiel verwendet, wenn Menschen über Informationstheorie unterrichtet werden. Wenn jede Frage so strukturiert ist, dass die Hälfte der Objekte eliminiert wird, ermöglicht 20 Fragen dem Fragesteller, zwischen 2 20 oder 1.048.576 Themen zu unterscheiden. Dementsprechend besteht die effektivste Strategie für 20 Fragen darin, Fragen zu stellen, die das Feld der verbleibenden Möglichkeiten jedes Mal ungefähr in zwei Hälften teilen. Der Prozess ist analog zu einem binären Suchalgorithmus in der Informatik.


2
Das erklärt einiges davon. Wenn Sie jedoch falsche Antworten und allgemeine Unklarheiten berücksichtigen, scheint dies immer noch nicht ganz so einfach zu sein.
Daddy Warbox

1
Wenn Sie sich den Link ansehen, werden Sie feststellen, dass dies keine Ja / Nein-Frage ist, die das Feld jedes Mal durch die Hälfte teilen kann. Während Ihre Antwort für 20 Fragen richtig ist, denke ich, dass Shauns Antwort genauer ist, ein einfacher Lernalgorithmus für den nächsten Nachbarn und genügend Benutzereingaben einige sehr genaue Ergebnisse ermöglichen.
z -

Ah, stimmt, sie sind ähnlich, aber definitiv macht der nächste Nachbar mehr Sinn.
CGP

12

Es bezeichnet sich selbst als "das neuronale Netz im Internet", und darin liegt der Schlüssel. Wahrscheinlich werden die Frage- / Antwortwahrscheinlichkeiten in einer Ersatzmatrix gespeichert. Mithilfe dieser Wahrscheinlichkeiten kann mithilfe eines Entscheidungsbaumalgorithmus abgeleitet werden, welche Frage gestellt werden soll, um die nächste Frage am besten einzugrenzen. Sobald die Anzahl der möglichen Antworten auf ein paar Dutzend eingegrenzt ist oder wenn bereits 20 Fragen erreicht sind, beginnt das wahrscheinlichste Ablesen.

Der wirklich faszinierende Aspekt von 20q.net ist, dass 20q im Gegensatz zu den meisten mir bekannten Algorithmen für Entscheidungsbäume und neuronale Netze eine spärliche Matrix und inkrementelle Aktualisierungen unterstützt.

Bearbeiten: Es stellt sich heraus, dass die Antwort die ganze Zeit im Netz war. Robin Burgener, der Erfinder, beschrieb seinen Algorithmus in seiner Patentanmeldung von 2005 ausführlich .


6

Es wird ein Lernalgorithmus verwendet.

k-NN ist ein gutes Beispiel dafür.

Wikipedia: k-Nearest Neighbor-Algorithmus


4
Ist in diesem Fall ein Algorithmus für den nächsten Nachbarn eine gute Wahl? Es scheint, als wäre es viel zu verzeihend für falsche Antworten und könnte eine enorme Anzahl von Dimensionen ergeben, von denen viele keine Daten enthalten. (Ich gehe von der Verwendung der Hamming-Distanz und einer Dimension pro Frage aus.) Ein Entscheidungsbaum scheint natürlicher zu passen.
Kylotan

1
Die Lerntheorie ist die richtige Antwort - es spielt keine Rolle, dass sie weniger „genaue“ Antworten gibt, da sie auf den Fehlern basiert, die jeder gerne macht, was das Erraten tatsächlich verbessert.
Jonathan Plackett

Wie hilft dies, die beste Frage zu identifizieren?
Thomas Ahle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.