Skip to content

IMOKURI/Hungry-Geese

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
ds
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Table of Contents generated with DocToc

🦆 Hungry Geese 🦆

https://www.kaggle.com/c/hungry-geese

🎉 Month 5 Winners - Goose luck! 🎉

Congratulations to our Month 5 Winners - Goose luck!

https://twitter.com/imokurity/status/1408578446645547012

はじめに

このレポジトリは HandyRL の fork です

私のソリューション

  • 教師あり学習 + 強化学習 + MCTS (rating 1200くらい)

チームのベストソリューションは、また別です。。😂

教師あり学習

rating 1200 以上の agent の対戦履歴をもとに、 勝者の行動を教師データとして学習する

Notebook

強化学習 (HandyRL)

使い方

  • GPUサーバーで python main.py -ts
  • CPUサーバーの config.yaml
    • num_parallel を使用するCPU数にする
    • server_address をGPUサーバーのアドレスにする
  • CPUサーバーで python main.py -w

その他

  • GPUが遊んでいるようならGPUサーバーの config.yamlnum_batchers を増やす
  • config.yamlbatch_size は GPUのメモリサイズに合わせる
    • ただし learning rate がこの batch_size に依存しているっぽい このあたり
  • config.yamlmaximum_episodes はGPUサーバーのメモリサイズに依存する (モデルサイズによるが128GBで 100万くらい)

学習

ハイパーパラメータ

parameters.md のメモ (間違っているかも)

  • gamma: 先の報酬をどのくらい減らすか - 例えば gamma が 0.8 なら 10ステップ先の評価は 0.8 ^ 10 = 0.1 倍される
  • forward_steps: 何ステップ先までの行動を評価の対象とするか
  • entropy_regularization: 最適な行動ではなくランダムな行動をする確率 (Noisy Layerを使うなら0でよさそう)
  • update_episodes: 何エピソードごとにモデルを更新するか (大きいほど安定するが時間がかかる)
  • lambda: n が 1 だと最終的な報酬を重視, n が 0 だと直近の報酬を重視
  • policy_target, value_target: 損失関数(行動評価用と状態価値評価用) (基本はTD)

対戦相手

MCTS

こちらパクる 参考にして、以下の更新をした。

  • 探索のたびに、(探索済みの局面も)推論を行う
    • 推論のたびに、ランダムにモデルが選ばれる(アンサンブル効果)
    • 推論のたびに、局面をランダムにスライドさせる
    • 推論のたびに、敵 3体のチャネルをシャッフルする
  • ベストな行動は、直近での推論結果のみで決める
    • 推論結果は、4択しかなく、選択肢の差がモデルによっては付きやすいため
  • ある確率で、推論結果にルールを適用する
    • それによって、正面衝突を回避しやすくする

評価

モデル同士で対戦し、成績の良いモデルを submit する

Kaggle への Submit

  • 学習済みモデルの upload: make model
  • ソースコードの upload: make source
  • エージェント Notebookの submit: make submit

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages