質問

私はかつてテトリスを非常によくプレイするテトリスAIを書きました。私が使用したアルゴリズム(このペーパーで説明)は2段階です。プロセス。

最初のステップで、プログラマーは、「興味深い」入力を追跡することにします。問題に。テトリスでは、ギャップを最小化すると将来のピースをより簡単に配置できるため、連続して存在するギャップの数を追跡することに興味があります。もう1つは、平均柱の高さかもしれません。なぜなら、負けそうになったらリスクを取るのは悪い考えかもしれないからです。

2番目のステップは、各入力に関連付けられた重みを決定することです。これは、遺伝的アルゴリズムを使用した部分です。結果に基づいて時間の経過とともに重みが調整される限り、どの学習アルゴリズムでもここで実行されます。アイデアは、入力がソリューションにどのように関係するかをコンピューターに決定させることです。

これらの入力とその重みを使用して、アクションを実行する価値を判断できます。たとえば、右の列に直線形状を最後まで配置すると、4つの異なる行のギャップがなくなる場合、このアクションは重みが高い場合に非常に高いスコアを取得できます。同様に、上に平らに置くと、実際にはギャップが生じる可能性があるため、アクションのスコアは低くなります。

「興味深い」とわかる最初のステップに学習アルゴリズムを適用する方法があるかどうか、いつも疑問に思っていました。潜在的な入力。コンピューターが最初に有用な入力を学習し、次に学習を適用してそれらの入力を重み付けするアルゴリズムを作成することは可能です。このようなことは以前に行われたことがありますか? AIアプリケーションで既に使用されていますか?

役に立ちましたか?

解決

ニューラルネットワークでは、トレーニング対象の分類との正または負の相関が最も強い入力を見つけることにより、「興味深い」潜在的な入力を選択できます。他のコンテキストでも同様にできると思います。

他のヒント

私は、より原始的なデータを学習アルゴリズムに供給することで、あなたが説明している問題にアプローチできると思います。たとえば、テトリスのゲームの状態は、占有されているセルのリストで記述できます。この情報を説明するビット列は、学習アルゴリズムのその段階への適切な入力になります。実際にそれに関するトレーニングはまだ挑戦的です。これらが有用な結果であるかどうかをどのように知るのですか。アルゴリズム全体を単一のblobにロールできます。この場合、アルゴリズムには連続した再生状態が入力され、出力はブロック配置になり、より高いスコアリングアルゴリズムが将来の世代に選択されます。

別の選択肢として、他のソースからの大規模なプレイのコーパスを使用することがあります。たとえば、人間のプレーヤーや手作りのAIからの記録されたプレイなど、次の10の動きで獲得したスコアなど、将来のプレイからの興味深い事実やその他と強い相関関係を持つ出力のアルゴリズムを選択します。

はい、方法があります。

M 選択した機能を選択した場合、2 ^ M個のサブセットがあるため、多くの注意が必要です。 私は次のことをします:

For each subset S
   run your code to optimize the weights W
   save S and the corresponding W

S-Wの各ペアに対して、各ペアのGゲームを実行し、各ペアのスコアLを保存できます。これで、次のようなテーブルができました。

feature1    feature2    feature3    featureM   subset_code game_number    scoreL
1           0           1           1           S1         1              10500
1           0           1           1           S1         2              6230
...
0           1           1           0           S2         G + 1          30120
0           1           1           0           S2         G + 2          25900

ここで、いくつかのコンポーネント選択アルゴリズム(PCAなど)を実行し、scoreLを説明する価値のある機能を決定できます。

ヒント:Wを最適化するコードを実行するときは、乱数ジェネレーターをシードして、それぞれの異なる「進化する脳」が同じピースシーケンスに対してテストされるようにします。

それが何かに役立つことを願っています!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top