106

不気味なほど正確な AI を搭載した 20 の質問のシンプルなオンライン ゲーム。

彼らはどうやってそんなにうまく推測するのですか?

4

5 に答える 5

58

あなたはそれを二分探索アルゴリズムと考えることができます。各反復で、可能な単語の選択肢の約半分を排除する質問をします。合計N語の場合、log2(N)の質問の後に回答が得られると期待できます。

20の質問で、2 ^ 20=100万語の中から最適に単語を見つけることができるはずです。

外れ値(間違った答え)を排除する簡単な方法の1つは、おそらくRANSACのようなものを使用することです。これは、回答されたすべての質問を考慮する代わりに、単一の回答を提供するのに十分な、より小さなサブセットをランダムに選択することを意味します。ここで、ランダムな質問のサブセットを使用してこれを数回繰り返します。ほとんどの場合、同じ結果が得られることがわかります。そうすれば、正しい答えがあることがわかります。

もちろん、これはこの問題を解決する多くの方法の1つにすぎません。

于 2009-05-20T13:21:20.043 に答える
27

ここでゲームについて読むことをお勧めします: http://en.wikipedia.org/wiki/Twenty_Questions

特に、コンピュータ セクション:

ゲームは、任意のオブジェクトを識別するために必要な情報 (シャノンのエントロピー統計で測定) が約 20 ビットであることを示唆しています。このゲームは、人々に情報理論を教える際の例としてよく使用されます。数学的には、各質問がオブジェクトの半分を排除するように構成されている場合、20 の質問により、質問者は 2 20または 1,048,576 の被験者を区別できます。したがって、20の質問の最も効果的な戦略は、残りの可能性のフィールドを毎回約半分に分割する質問をすることです. このプロセスは、コンピューター サイエンスの二分探索アルゴリズムに似ています。

于 2009-05-20T12:13:20.290 に答える
26

デシジョンツリーは、この種のアプリケーションを直接サポートします。決定木は、人工知能で一般的に使用されます。

デシジョンツリーは、各ブランチで「最良の」質問をして、その左と右の子によって表されるコレクションを区別するバイナリツリーです。最良の質問は、20の質問アプリケーションの作成者がツリーを構築するために使用する学習アルゴリズムによって決定されます。次に、他のポスターが指摘しているように、20レベルの深さの木はあなたに百万ものものを与えます。

各ポイントで「最良の」質問を定義する簡単な方法は、コレクションを半分に最も均等に分割するプロパティを探すことです。そうすれば、その質問に対するはい/いいえの答えが得られたときに、各ステップでコレクションの約半分を取り除くことができます。このようにして、二分探索を概算できます。

ウィキペディアはより完全な例を示しています:

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

そして、いくつかの一般的な背景:

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

于 2009-05-20T13:37:17.127 に答える
16

それは「インターネット上のニューラル ネットワーク」と自称しており、そこに鍵があります。質問/回答の確率を予備の行列に格納する可能性があります。これらの確率を使用して、デシジョン ツリー アルゴリズムを使用して、次の質問を絞り込むのに最適な質問を推測できます。可能な回答の数が数十に絞り込まれると、またはすでに 20 の質問に達している場合は、最も可能性の高いものから読み上げを開始します。

20q.net の非常に興味深い側面は、私が知っているほとんどの決定木やニューラル ネットワーク アルゴリズムとは異なり、20q が疎行列と増分更新をサポートしていることです。

編集:答えはずっとネット上にあったことがわかりました。発明者である Robin Burgener は、 2005 年の特許出願で彼のアルゴリズムを詳細に説明しています。

于 2010-01-18T21:04:55.040 に答える
6

学習アルゴリズムを使用しています。

k-NN は、これらの 1 つの良い例です。

ウィキペディア: k 最近傍アルゴリズム

于 2009-05-20T12:09:59.610 に答える