2

私は、ゲームを壁の周りに移動させ、他のタンクを撃つ、パイゲームでタンクゲームを作る過程にあります。Pythonゲームニューラルネットワーク。入力をセットアップする方法

私はニューラルネットワークを作る方法を見つけようとしています。おそらく、敵のために強化学習をするので、各オブジェクトから属性を渡すことによって、どのタンクをどこに移動させるべきか決定するでしょう。

私は、変数の数があるだろうとして、入力データが正しい形状や大きさになるように、しかし、私はそれを設定する方法を見つけることができない、ニューラルネットワークを作成するためにkeras Pythonモジュールを使用することを計画していた
Attributes: 
Enemy -> x,y,width,height,speed,health and other items 
Wall -> x,y,width,height 
Bullet -> x,y,width,height,speed 
Player -> x,y,width,height,speed,health 

壁と弾丸の

私がやりたいこと:

action = Network.predict(state) 


state = (Enemy, Player, Tuple_of_Wall_Data, Tuple_of_Bullet_Data)

とアクションは敵が
action = (Direction,Should_Shoot)

TLDR 形で移動する必要がどこにオプションですマイ質問は、どうすればニューラルネットワークの入力層を設定することができますか(1敵、1人のプレーヤー、m複数の弾丸)、ニューラルネットワークを訓練して敵に方向を与え、強化学習を使って発射する必要がある場合は、

+1

ようこそStackOverflow!全体としては良い質問ですが、私はタイトルを編集してより具体的にすることを推奨するつもりです。 – edzillion

+0

ありがとうございます。編集されました。 – Scratchcat1

+1

あなたが提示している問題は、単に「ニューラルネットワークを使う」よりも複雑です。最大の課題は、(監督された?)ニューラルネットワークの基礎として、あなたのデータの "正しい"表現を作成することです。あなたの質問に答えることは、おそらくこのサイトの簡単な答えをはるかに超えています。私は[NNとゲームについて](ゲームのIAを設計する)(https://www.raywenderlich.com/24824/introduction-to-ai-programming-for-games)のいくつかの紹介読書を提案する(http://natureofcode.com/book/chapter-10-neural-networks /)と[特に強化学習について](https://arxiv.org/pdf/1312.5602.pdf)を参照してください。 – agtoever

答えて

1

AIエージェントのためのゲームの状態を表す代表的な三つの方法があります:あなたが提案しているものはかなり

  1. 内部ゲームの状態、 - ゲーム内のオブジェクトのリストを、彼らの生の属性では。 MLを使用するには、さまざまなサイズを扱うアーキテクチャが必要です。したがって、おそらくリカレント・ニューラル・ネットワークになり、オブジェクトを1つずつ処理します。これは恐らくであり、これはおそらくの表現であることに注意してください。特に人間の場合、このようなゲーム状態にはならず、オブジェクトのストリームを取得しません。

  2. グローバルマップビュー。ゲームに十分な地図があれば、それはエージェントへの入力として完全にフィードインされ、完全に観察可能な問題で終わり、形式W x H x Kのデータが得られます。ここでW、Hは地図の幅と高さです、Kはオブジェクトタイプの数です(したがって、各オブジェクトのワンホットエンコーディングを取得します)

  3. エージェントの「ビジョン」は現代のRLでおそらく最も普及しているエージェントで、エージェントにはW x H x Kですが、WとHはビジョン(エージェントと一緒に動く)の大きさです。

関連する問題