ベイジアン分析にはさらに多くのことが含まれますが、スパム フィルターでよく知られている単純ベイズ アルゴリズムは、すべての変数が本質的に互いに独立しているという 1 つの非常に基本的な仮定に基づいています。たとえば、スパム フィルタリングでは、通常、各単語が変数として扱われるため、電子メールに「バイアグラ」という単語が含まれている場合、その知識は、「薬」(または「フー」または「スパム」など)。興味深いことに、自然言語に関して言えば、この仮定は明らかに間違っていますが、それでも妥当な結果が得られます。
独立性の仮定を回避する方法の 1 つは、技術的に物事を組み合わせた変数を定義することです (「バイアグラを購入する」というトークンを検索するなど)。探す特定のケースを知っている場合はこれでうまくいきますが、一般的に、ゲーム環境では何も覚えていないことを意味します。そのため、移動したり、アクションを実行したりする必要があるたびに、これまでに行ったことから完全に独立しています。最も単純なゲームでさえ、これはゲームを学ぶ上で非常に非効率的な方法だと思います。
代わりに q-learning の使用を検討することをお勧めします。あなたが見つける例のほとんどは、とにかく単純なゲームです (壁、トラップ、モンスターなどを避けながらマップをナビゲートすることを学ぶなど)。強化学習は、オンラインの教師なし学習の一種であり、ゲーム (またはロボット) などの環境と対話するエージェントとしてモデル化できる状況で非常にうまく機能します。これは、環境内の各状態で最適なアクションが何であるかを把握しようとします (各状態には、「どこにいるのか」だけでなく、必要な数の変数を含めることができます)。秘訣は、ボットが適切な決定を下すのに十分なだけの状態を維持することです。前のアクションの可能な組み合わせごとに、状態の「スペース」に明確なポイントがありません。
より具体的に言えば、チェス ボットを構築する場合、チェスの動きのすべての可能な組み合わせのセットが非常に急速に成長するため、以前のすべての動きに基づいて決定を行う決定ポリシーを作成しようとすると、おそらく問題が発生するでしょう。 . すべてのピースがボード上のどこにあるかの単純なモデルでさえ、依然として非常に大きな状態空間であるため、追跡するものを単純化する方法を見つける必要があります。ただし、ボットが左側の用語を何度も何度も壁にしようとし続けないように、いくつかの状態を追跡できることに注意してください。
ウィキペディアの記事はかなり専門用語が多いですが、このチュートリアルは概念を実際の例に翻訳するのにはるかに優れています.
1 つの落とし穴は、提供する報酬を正の「強化」として定義できるようにする必要があることです。つまり、ボットが到達しようとしている状態を定義できる必要があります。そうしないと、ボットは永遠に続きます。