技術系メモ

メモ。内容は保証しません。

Windows10でDocker For Windows使う時のメモ

Hyper-Vを有効化

https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

pcの仮想化を有効

biosからいろいろ設定する

hp で言えば、以下のサイトを参考

https://support.hp.com/jp-ja/document/c04773368

docker for windowsでマウントする

https://qiita.com/kikako/items/7b6301a140cf37a5b7ac

エラーに対して

docker the input device is not a tty

http://twinbird-htn.hatenablog.com/entry/2017/01/11/063553

the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'

ほんと良くないかもしれないが、

winpty docker run -it ubuntu bash

でとりあえずコンテナの中入れる

マルチエージェント深層強化学習のベンチマーク用のStarcraftをインストールして、サンプルを実行するまで

  1. https://github.com/deepmind/pysc2/ のREADMEを参考に
  2. READMEにあるようにStarcraftをインストールする。
    • READMEにリンクされているBattle.netからStarcraftをインストールする
      • この時にはログインが必要
    • デフォルトでc:/Program File(x86)/StarCraft Ⅱにインストールされる 1 READMEののmini gamesというリンクをクリックしmapをダウンロードする。ダウンロードしたファイルを解凍するし、そのマップc:/Program File(x86)/StarCraft Ⅱ/Maps/
  3. pysc2をクローン
git clone https://github.com/deepmind/pysc2.git
  1. サンプルの実行
python -m pysc.2.bin.agent --map BuildMarines 

ほんとはgithubと同じように、サンプルコード を実行したかったが、うまくMapsフォルダにいれることができなかった。 (ファイルを移動しようとしたら、パスワードが要求された) もし、解法わかる方がいらっしゃいましたら、教えてください

A Comprehensive Survey of Multi-Agent Reinforcement Leraningの概要

A Comprehensive Survey of Multi-Agent Reinforcement Leraningの概要の日本語訳

概要

マルチエージェントシステムは、 ロボティックス、分散制御、通信、経済などの 様々な応用分野に応用可能であると考えられている。

それらの応用分野の複雑さは、 予めエージェントの振る舞いをプログラムすることを 困難にしている。

代わりに、エージェントは「学習」することで、解決策を見つける必要がある。

マルチエージェント学習の研究において重要なことは、 強化学習の技術、つまりマルチエージェント強化学習に着目することである。

この論文はマルチエージェント強化学習についての総合的なサーベイ論文である。

マルチエージェント強化学習の中心的な問題は、学習の目標を定義することである。

別の言い方をすると、問題によって、それぜれ異なる目標を提示することである。それらの目標を大きく分けると2つ区別できる。

1つめはエージェントの学習力学の安定性、 2つめは他のエージェントの振る舞いの変化への適応である。

この論文で述べられているマルチエージェント強化学習アルゴリズムは、明示的にまたは暗黙的に、その二つの内の一つ、もしくは両方をゴールとして設定している。

この論文ではマルチエージェント強化学習の代表的なアルゴリズムについて述べ、各カテゴリの特徴的な問題点についても取り上げる。

加えて、MARLが応用可能な分野と、さらに恩恵と課題についても述べる。

最後にこの分野の展望について述べる

pymongo.errors.OperationFailure: Authentication failed.

課題

pymongoから、mlabで作成したデータベースにアクセスしようとした際に 以下のようなエラー

pymongo.errors.OperationFailure: Authentication failed.

対処

1. ユーザーを作成

以下を参考に、アカウントを自分で作ってみた http://sh-yoshida.hatenablog.com/entry/2016/08/31/005439

2. mlabへの接続

mlabの自分のページの上部に以下のように書いてある。

mongodb://<dbuser>:<dbpassword>@<address>:<port>/<dbname>

それらの情報を用いて、以下のようにpymongoでは mlabのデータベースに接続する ※,は1.で作成したユーザーのもの

client = MongoClient(<address>,<port>)
db = client.<dbname>
db.authenticate(<usrname>, <dbpassword>)
col = db.<collection_name>