Google Research Football の環境を使う場合、エージェントをトレーニングするのが眼目になりますが、ただ単にゲームすることもできます。
Google Research Football Environment(GRF)には3つのやり方でプレイする方法が書かれています。
GRFをセットアップして対戦してみましょう。
1:Play vs built-in AI(ビルトインAIと対戦)
By default, it starts the base scenario and the left player is controlled by the keyboard. Different types of players are supported (gamepad, external bots, agents…).
デフォルトでは、基本シナリオが開始され、左サイドのプレーヤーはキーボードによって制御されます。 さまざまなタイプのプレーヤー(デバイス?)がサポートされています(ゲームパッド、外部ボット、エージェントなど)。
デフォルトのシナリオでプレイしてみます。
(WisteriaHillのPCでは遅すぎて動作が確認できていません….どうなんでしょう?)
For possible options
利用可能なオプションについて
Ubuntu 18.04 に Google Research Football Environment をセットアップ参照
2:Play vs pre-trained agent(事前にトレーニングされたエージェントと対戦)
In particular, one can play against agent trained with run_ppo2
script with the following command (notice no action_set flag, as PPO agent uses default action set):
特に、次のコマンドを使用して、run_ppo2スクリプトでトレーニングされたエージェントと対戦できます(PPOエージェントはデフォルトのアクションセットを使用するため、action_setフラグがないことに注意してください)。
$YOUR_PATHはあなたがトレーニングしたチェックポイントへのパス
python3 -m gfootball.play_game --players "keyboard:left_players=1;ppo2_cnn:right_players=1,checkpoint=$YOUR_PATH"
トレーニングについてはUbuntu 18.04 に Google Research Football Environment をセットアップ参照
シナリオ(scenarios)を使ったトレーニングについては以下のページのFootball Academy & Future Directionsを参照
Introducing Google Research Football: A Novel Reinforcement Learning Environment
ピックアップしてみます。
Football Academy & Future Directions
As training agents for the full Football Benchmarks can be challenging,we also provide Football Academy, a diverse set of scenarios of varying difficulty.
フットボールベンチマークの完全なトレーニングを行うことは難しいため、Football Academyでは難易度の異なる多様なシナリオを提供しています。
This allows researchers to get the ball rolling on new research ideas, allows testing of high-level concepts (such as passing), and provides a foundation to investigate curriculum learning research ideas, where agents learn from progressively harder scenarios.
これにより、研究者は新しい研究アイデアに着手することができ、高レベルの概念(パスなど)をテストすることができ、エージェントが徐々に難しいシナリオから学習するカリキュラム学習研究のアイデアを調査するための基盤を提供します。
Examples of the Football Academy scenarios include settings where agents have to learn how to score against the empty goal, where they have to learn how to quickly pass between players, and where they have to learn how to execute a counter-attack. Using a simple API, researchers can further define their own scenarios and train agents to solve them.
Football Academyのシナリオの例としては、エージェントが無人のゴールに対して得点する方法を学習しなければならない設定や、プレイヤー間の素早いパスの出し方を学習しなければならない設定、カウンターアタックの実行方法を学習しなければならない設定などがあります。シンプルなAPIを使用して、研究者はさらに独自のシナリオを定義し、それを解決するためにエージェントを訓練することができます。
シナリオの内容は、セットアップしたGoogle Research Football Environmentの中の
にPythonファイルで置かれていますのでご参照ください。
3:Trained checkpoints(トレーニング済チェックポイント)
We provide trained PPO checkpoints for the following scenarios:
Googleは2つのシナリオを使ったトレーニング済のチェックポイントを提供しています。
ブラウザーからダウンロードしたファイルをDockerコマンドでコピーしておきます。
コピーにはContainerのIDを使います。
ContainerのIDを使ったイメージの起動と、hostからContainerへのファイルのコピーについては,
ここをご参照ください
ダウンロードフォルダーへ移動しておきます。CONTAINER_IDは適宜書き換えてください。
In order to see the checkpoints playing
チェックポイントが再生されていることを確認するには
python3 -m gfootball.play_game --players "ppo2_cnn:left_players=1,policy=gfootball_impala_cnn,checkpoint=$CHECKPOINT" --level=$LEVEL
where $CHECKPOINT
is the path to downloaded checkpoint.
ここで、$ CHECKPOINTはダウンロードされたチェックポイントへのパスです。
$LEVELはそのままでも動きます(デフォルト値があるようです、多分、空かnull)。
キックオフ
上の例にならって起動してみます。
python3 -m gfootball.play_game --players "ppo2_cnn:left_players=1,policy=gfootball_impala_cnn,checkpoint=/gfootball/11_vs_11_easy_stochastic" --level=$LEVEL
途中で終了するとDumpファイルが保存されます。
In order to train against a checkpoint, you can pass ‘extra_players’ argument to create_environment function.
チェックポイントに対してトレーニングするために、 ‘extra_players’引数をcreate_environment関数に渡すことができます。
例えば
extra_players='ppo2_cnn:right_players=1,policy=gfootball_impala_cnn,checkpoint=$CHECKPOINT'.
Keyboard mappings(キーボードへの割り当て)
↑:上に走る
↓:下に走る
←:左に走る
→:右に走る
S:攻撃モードではショートパス、防御モードではプレッシャー
A:攻撃モードではハイパス(ハイパント?)、防御モードではスライディング
D:攻撃モードではシュート、防御モードではチームプレッシャー
W:攻撃モードではロングパス、防御モードではゴールキーパーのプレッシャー
Q:アクティブなプレイヤーを防御モードに切り替えます
C:攻撃モードでのドリブル
E:スプリント
For possible options(利用可能なオプション)
Script allowing to play the game by multiple players.
複数のプレイヤーがゲームをプレイできるスクリプト。
play_game で使用できるオプションです。
flags:
Leave a Reply