Connect Fourをプレイする機械学習アルゴリズム


14

現在、機械学習について読んでおり、Connect Fourのプレイにそれをどのように適用するのか疑問に思っています

私の現在の試みは、シグモイド関数モデルとone-vs-allメソッドを使用した単純なマルチクラス分類器です。

私の意見では、入力フィーチャは7x6 = 42グリッドフィールドの状態(プレーヤー1のディスク、プレーヤー2のディスク)でなければなりません。

出力は、ディスクを挿入する行の番号になります。これは1〜7の離散的な数値であるため、これはマルチクラス分類問題として扱うことができると思います。

しかし、教師あり学習で使用可能なトレーニング例を生成するにはどうすればよいですか?

主な目標はゲームに勝つことですが、最終ターン以外のすべての結果は明らかにわかりません。何千回もお互いに何をプレイするかをランダムに決定する2人のプレーヤーにさせた場合、トレーニングの例として、各ゲームラウンドの勝者によって行われたすべてのターンを取るだけで十分ですか?または、これを完全に異なる方法で行う必要がありますか?

編集:コメントで示唆されているように、強化学習について少し読みました。 私が知っていることから、Qラーニングはトリックを実行する必要があります。つまり、現在の状態の関数Qとその状態で始まる最大累積報酬になるために実行するアクションを近似する必要があります。次に、各ステップでQの最大値が得られるアクションを選択します。ただし、このゲームでは、たとえばルックアップテーブルとしてこれを行うには状態が多すぎます。それでは、このQ関数をモデル化する効果的な方法は何ですか?


2
Google「強化学習」
ジョージ

さて、この問題にまさに当てはまると思います。多くの先読みがあるようです。より具体的なポインタまたは推​​奨事項はありますか?
トム

1
もっと知りたい場合は、回答として投稿します:)残念ながら、強化学習の経験はありません。トム・ミッチェルの本「機械学習」から始めます。これは非常に優れた入門書であり、強化学習に関する章もあります。
ジョージ

1
後者は、機械学習とそれを知ろうとすることに興味があります。
トム

1
@Tom、機械学習技術を「知る」ためのより良い方法があります。より基本的な分類と回帰の手法から始めて、そこから先に進みます。UCIの機械学習データリポジトリからデータセットを取得し、Andrew Ng(Stanford)の機械学習コースノートをチェックして実装を取得できます。強化学習を使用してコネクト4を解決しようとすると、非常に厄介で過度に複雑に思えます。
ニック

回答:


8

強化学習のより単純な代替手段を提供するために、基本的なミニマックスアルゴリズムを使用して良い動きを検索し、機械学習を使用してボードの位置を評価できます。

明確にするために、ミニマックスはゲームツリーを構築し、各ノードはリーフアップの結果でラベル付けされます(1 =プレーヤーAが勝ち、0 =プレーヤーBが勝ちます)。それを最小化します。

ゲームが非常に単純でない限り、ゲームツリー全体を端末まで構築することはできません。代わりに、未完成のボードポジションで停止し、何らかのヒューリスティック(基本的に、プレイヤーAが特定のポジションから勝つ確率)でリーフを評価する必要があります。ニューラルネットワークのような機械学習アルゴリズムに、既知の結果を持つ4つの位置を接続してこの確率を学習させることができます。

トレーニングサンプルを生成するには、単純なヒューリスティックでミニマックスプレーヤーを構築し、1000回プレイし、それらのゲームを使用して最初のニューラルネットワークをトレーニングし、それから1,000ゲームなどを支払うことができます。少し運が良ければ、システムは世代ごとに改善されます。


2

ミニマックスを使ってコネクトをプレイすることについてのブログ投稿を4年前に書きました。ここで実行中のコードを見ることができます。モデルをトレーニングする必要がある場合は、私のミニマックスの実装に対して数千のゲームをプレイさせることができます。


Githubでコードをフォークしてください。github.com/lukasvermeer/minimax
ルーカスフェルメール

Stack Exchangeへようこそ。これは質疑応答サイトです。私たちのお読みくださいよくある質問を具体的に、答える方法。特に、回答へのリンクのみで構成される投稿は望ましくありません。貢献していただきありがとうございますが、ブログ投稿の要点をここの投稿に要約していただけますか?
ジル 'SO-悪であるのをやめる'

申し訳ありませんが、元の質問は「教師あり学習で使用できるトレーニングサンプルをどのように生成するのですか?」でした。これらを生成するために使用できる作業コードへのリンクを提供しました。上記のテキストをさらに書くと、元のニーズにどのように応えることができるかわかりません。
ルーカスフェルメール

「潜在的なソリューションへのリンクはいつでも歓迎しますが、リンクの周りにコンテキストを追加して、仲間のユーザーがそれが何であり、なぜそこにあるのかを理解できるようにしてください。到達できないか、完全にオフラインになります。」前者をやったと思う。後者は無関係です。元の質問はサンプルゲームが必要であり、ソリューションの実装方法の説明ではありません。
ルーカスフェルメール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.