SlideShare a Scribd company logo
Submit Search
Upload
OSS強化学習フレームワークの比較
Report
Share
gree_tech
gree_tech
Follow
•
11 likes
•
5,749 views
1
of
40
OSS強化学習フレームワークの比較
•
11 likes
•
5,749 views
Report
Share
Download Now
Download to read offline
Engineering
グリー開発本部 Meetup #2 ゲーム x 強化学習エンジニアリングで発表された資料です。 https://gree.connpass.com/event/112599/ #GDMeetup
Read more
gree_tech
gree_tech
Follow
Recommended
強化学習 DQNからPPOまで by
強化学習 DQNからPPOまで
harmonylab
9.6K views
•
45 slides
強化学習アルゴリズムPPOの解説と実験 by
強化学習アルゴリズムPPOの解説と実験
克海 納谷
2.8K views
•
22 slides
[Dl輪読会]introduction of reinforcement learning by
[Dl輪読会]introduction of reinforcement learning
Deep Learning JP
6K views
•
46 slides
多様な強化学習の概念と課題認識 by
多様な強化学習の概念と課題認識
佑 甲野
58K views
•
38 slides
DQNからRainbowまで 〜深層強化学習の最新動向〜 by
DQNからRainbowまで 〜深層強化学習の最新動向〜
Jun Okumura
87.1K views
•
94 slides
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning by
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
117.4K views
•
93 slides
More Related Content
What's hot
強化学習と逆強化学習を組み合わせた模倣学習 by
強化学習と逆強化学習を組み合わせた模倣学習
Eiji Uchibe
25.3K views
•
48 slides
強化学習の分散アーキテクチャ変遷 by
強化学習の分散アーキテクチャ変遷
Eiji Sekiya
15.1K views
•
83 slides
強化学習における好奇心 by
強化学習における好奇心
Shota Imai
3.3K views
•
140 slides
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜 by
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII
3.7K views
•
146 slides
[DL輪読会] マルチエージェント強化学習と心の理論 by
[DL輪読会] マルチエージェント強化学習と心の理論
Deep Learning JP
4.1K views
•
42 slides
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling by
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
Deep Learning JP
2.9K views
•
25 slides
What's hot
(20)
強化学習と逆強化学習を組み合わせた模倣学習 by Eiji Uchibe
強化学習と逆強化学習を組み合わせた模倣学習
Eiji Uchibe
•
25.3K views
強化学習の分散アーキテクチャ変遷 by Eiji Sekiya
強化学習の分散アーキテクチャ変遷
Eiji Sekiya
•
15.1K views
強化学習における好奇心 by Shota Imai
強化学習における好奇心
Shota Imai
•
3.3K views
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜 by SSII
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
SSII
•
3.7K views
[DL輪読会] マルチエージェント強化学習と心の理論 by Deep Learning JP
[DL輪読会] マルチエージェント強化学習と心の理論
Deep Learning JP
•
4.1K views
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling by Deep Learning JP
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
Deep Learning JP
•
2.9K views
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2 by Preferred Networks
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
•
5.8K views
画像認識の初歩、SIFT,SURF特徴量 by takaya imai
画像認識の初歩、SIFT,SURF特徴量
takaya imai
•
228.5K views
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習 by Hori Tasuku
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
Hori Tasuku
•
1.6K views
Optimizer入門&最新動向 by Motokawa Tetsuya
Optimizer入門&最新動向
Motokawa Tetsuya
•
23K views
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演) by Shota Imai
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
Shota Imai
•
2.3K views
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展 by Deep Learning JP
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
Deep Learning JP
•
3.1K views
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング by mlm_kansai
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
•
67.6K views
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021) by Deep Learning JP
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
Deep Learning JP
•
3.7K views
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing by Deep Learning JP
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
Deep Learning JP
•
3K views
Transformerを雰囲気で理解する by AtsukiYamaguchi1
Transformerを雰囲気で理解する
AtsukiYamaguchi1
•
4.8K views
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料) by Shota Imai
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
•
274.5K views
強化学習その3 by nishio
強化学習その3
nishio
•
26.8K views
強化学習の基礎的な考え方と問題の分類 by 佑 甲野
強化学習の基礎的な考え方と問題の分類
佑 甲野
•
71.4K views
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて- by Deep Learning JP
[DL輪読会]`強化学習のための状態表現学習 -より良い「世界モデル」の獲得に向けて-
Deep Learning JP
•
5.2K views
Similar to OSS強化学習フレームワークの比較
DataEngConf NYC’18 セッションサマリー #2 by
DataEngConf NYC’18 セッションサマリー #2
gree_tech
3.6K views
•
43 slides
HerokuでRailsアプリ運用の パフォーマンス、SEO対策 by
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
Salesforce Developers Japan
3.4K views
•
48 slides
実録!Railsのはまりポイント10選 by
実録!Railsのはまりポイント10選
Drecom Co., Ltd.
24.5K views
•
53 slides
ターン制コマンドバトルにおける強化学習効率化 by
ターン制コマンドバトルにおける強化学習効率化
gree_tech
5.3K views
•
23 slides
グリーにおけるSumo Logic活用事例 by
グリーにおけるSumo Logic活用事例
gree_tech
619 views
•
18 slides
Oracle設計 by
Oracle設計
Kouta Shiobara
4K views
•
34 slides
Similar to OSS強化学習フレームワークの比較
(20)
DataEngConf NYC’18 セッションサマリー #2 by gree_tech
DataEngConf NYC’18 セッションサマリー #2
gree_tech
•
3.6K views
HerokuでRailsアプリ運用の パフォーマンス、SEO対策 by Salesforce Developers Japan
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
Salesforce Developers Japan
•
3.4K views
実録!Railsのはまりポイント10選 by Drecom Co., Ltd.
実録!Railsのはまりポイント10選
Drecom Co., Ltd.
•
24.5K views
ターン制コマンドバトルにおける強化学習効率化 by gree_tech
ターン制コマンドバトルにおける強化学習効率化
gree_tech
•
5.3K views
グリーにおけるSumo Logic活用事例 by gree_tech
グリーにおけるSumo Logic活用事例
gree_tech
•
619 views
Oracle設計 by Kouta Shiobara
Oracle設計
Kouta Shiobara
•
4K views
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介 by gree_tech
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech
•
4.7K views
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3] by David Buck
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
•
155 views
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017 by Yahoo!デベロッパーネットワーク
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
•
9K views
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編 by Fixstars Corporation
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
•
1.6K views
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1] by David Buck
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
David Buck
•
186 views
OSS強化学習向けゲーム環境の動向 by gree_tech
OSS強化学習向けゲーム環境の動向
gree_tech
•
2.7K views
Example of exiting legacy system by TakamchiTanaka
Example of exiting legacy system
TakamchiTanaka
•
2.3K views
[AWS re:invent 2013 Report] AWS New EC2 Instance Types by Amazon Web Services Japan
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
Amazon Web Services Japan
•
2.1K views
Java 10でぼくたちの生活はどう変わるの? by Yuji Kubota
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
•
11.3K views
AndApp開発における全て #denatechcon by DeNA
AndApp開発における全て #denatechcon
DeNA
•
2.7K views
[DLHacks]Comet ML -機械学習のためのGitHub- by Deep Learning JP
[DLHacks]Comet ML -機械学習のためのGitHub-
Deep Learning JP
•
7.1K views
大規模データに対するデータサイエンスの進め方 #CWT2016 by Cloudera Japan
大規模データに対するデータサイエンスの進め方 #CWT2016
Cloudera Japan
•
19.5K views
大規模Perl初心者研修を支える技術 by Daisuke Tamada
大規模Perl初心者研修を支える技術
Daisuke Tamada
•
78.4K views
Asakusa バッチの運用を支える技術 by KinebuchiTomo
Asakusa バッチの運用を支える技術
KinebuchiTomo
•
1.5K views
More from gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
727 views
•
36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
229 views
•
13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
1K views
•
18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
1.9K views
•
84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
347 views
•
116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
685 views
•
31 slides
More from gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
•
727 views
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
•
229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
•
1K views
アプリ起動時間高速化 ~推測するな、計測せよ~ by gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
•
1.9K views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
•
347 views
Cloud Spanner をより便利にする運用支援ツールの紹介 by gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
•
685 views
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介 by gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
•
599 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について by gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
•
626 views
海外展開と負荷試験 by gree_tech
海外展開と負荷試験
gree_tech
•
593 views
翻訳QAでのテスト自動化の取り組み by gree_tech
翻訳QAでのテスト自動化の取り組み
gree_tech
•
305 views
組み込み開発のテストとゲーム開発のテストの違い by gree_tech
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
•
576 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介 by gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
•
209 views
データエンジニアとアナリストチーム兼務になった件について by gree_tech
データエンジニアとアナリストチーム兼務になった件について
gree_tech
•
308 views
シェアドサービスとしてのデータテクノロジー by gree_tech
シェアドサービスとしてのデータテクノロジー
gree_tech
•
432 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて- by gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
•
1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 by gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
•
1.1K views
比較サイトの検索改善(SPA から SSR に変換) by gree_tech
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
•
694 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行 by gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
•
2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜 by gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
•
397 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮) by gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
•
752 views
Recently uploaded
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦
208 views
•
36 slides
Najah Matsuo Self Introduction by
Najah Matsuo Self Introduction
NajahMatsuo
10 views
•
29 slides
onewedge_companyguide1 by
onewedge_companyguide1
ONEWEDGE1
54 views
•
22 slides
システム概要.pdf by
システム概要.pdf
Taira Shimizu
44 views
•
1 slide
概要.pdf by
概要.pdf
Taira Shimizu
6 views
•
1 slide
SSH超入門 by
SSH超入門
Toru Miyahara
457 views
•
21 slides
Recently uploaded
(6)
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by 修治 松浦
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦
•
208 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self Introduction
NajahMatsuo
•
10 views
onewedge_companyguide1 by ONEWEDGE1
onewedge_companyguide1
ONEWEDGE1
•
54 views
システム概要.pdf by Taira Shimizu
システム概要.pdf
Taira Shimizu
•
44 views
概要.pdf by Taira Shimizu
概要.pdf
Taira Shimizu
•
6 views
SSH超入門 by Toru Miyahara
SSH超入門
Toru Miyahara
•
457 views
OSS強化学習フレームワークの比較
1.
Copyright © GREE,
Inc. All Rights Reserved. OSS強化学習フレームワークの 比較 2019/01/16 グリー株式会社 開発本部 辻本 貴昭
2.
Copyright © GREE,
Inc. All Rights Reserved. • グリーでの利用例 • フレームワーク全体のざっくりとした比較 • 各フレームワークごとの紹介 • Coach • RLlib • ChainerRL • Keras-RL • StableBaseline • Dopamine • Horizon 概要
3.
Copyright © GREE,
Inc. All Rights Reserved. • 敵のパラメータを調整後、バトルを繰り返して確認 • 想定通りのダメージ量になっているか? • 乱数の影響は想定の範囲内に収まっているか? • 問題点 • キャラクターの性能を把握していないとできない • かなり時間がかかる • 解決案 • バトルプレイAIの導入 • ルールを記述したり、バトルの状態毎に教師データを用意するのはほぼ不可能 • 強化学習でなんとかならないか? 利用例 ターン制コマンドバトルRPGでのバランス確認
4.
Copyright © GREE,
Inc. All Rights Reserved. • DQN, A3Cはだいたいどのフレームワークでも実装されている • 実装済みアルゴリズムはCoachが多い(ChainerRL, RLlibもそれなり) • 分散アルゴリズムはRLlibが充実している(Ape-X, IMPALAなど) • Dopamine, Keras-RLは実装済みアルゴリズムが少ない フレームワーク全体の比較 実装されているアルゴリズム
5.
Copyright © GREE,
Inc. All Rights Reserved. • 統合フレームワーク型 • 広範囲に抽象化している • 階層型・マルチエージェント環境に対応している • Coach, RLlib • 参考実装型 • 各アルゴリズムを統一したインターフェースで学習・推論できるようにしている • ChainerRL, Keras-RL, Dopamine, StableBaseline • 番外編 • ゲームQA・バランス調整の観点でみると目的が違うもの • Horizon • シミュレータが用意できないオフライン学習が主な目的 • ストリーミング配信のビットレート最適化に使っているらしい フレームワーク全体の比較 フレームワークの思想の違い
6.
Copyright © GREE,
Inc. All Rights Reserved. • 実験設定(preset)を記述してツールから実行する • presetに書く内容 • 学習させるステップ数 • どの学習アルゴリズムを利用するか • アルゴリズムごとのハイパーパラメータ • 環境の設定 Coach 使い方 $ coach -p CartPole_DQN $ coach -p CartPole_DQN –crd checkpoint-dir --evaluate
7.
Copyright © GREE,
Inc. All Rights Reserved. schedule_params = ScheduleParameters() schedule_params.improve_steps = TrainingSteps(10000) schedule_params.steps_between_evaluation_periods = EnvironmentEpisodes(10) schedule_params.evaluation_steps = EnvironmentEpisodes(1) schedule_params.heatup_steps = EnvironmentSteps(1000) agent_params = DQNAgentParameters() agent_params.algorithm.discount = 0.99 agent_params.memory.max_size = (MemoryGranularity.Transitions, 40000) agent_params.exploration.epsilon_schedule = LinearSchedule(1.0, 0.01, 10000) agent_params.network_wrappers['main'].learning_rate = 0.00025 env_params = GymVectorEnvironment(level='CartPole-v0') graph_manager = BasicRLGraphManager(agent_params=agent_params, env_params=env_params, schedule_params=schedule_params, vis_params=VisualizationParameters()) Coach presetの書き方
8.
Copyright © GREE,
Inc. All Rights Reserved. • 独自ダッシュボード • lossやrewardの確認 • グラフのスケールが自動で変わらずに使いにくい • カスタムメトリックを追加可能 • TensorBoard • ネットワーク構造や重みの確認 Coach ダッシュボード
9.
Copyright © GREE,
Inc. All Rights Reserved. • 環境とAgentを管理し、学習・評価全般をコントロールする • 学習はheatup, train and act, evaluateの3フェーズに分けられる • heatup • replay bufferの初期値を集めるためにランダム行動 • train and act • 環境からデータを集めながら価値関数や方策を更新 • 行動の決定の際は探索ポリシーに基づいて探索する • evaluate • 今のAgentの性能を評価する • 行動の決定の際は最善行動を選択する Coach アーキテクチャ(Graph Manager)
10.
Copyright © GREE,
Inc. All Rights Reserved. • 環境とAgentの相互作用を仲介する • Coachでは環境とAgentは直接やり取りしない • Agentを複数持つことができる • 他のLevel Managerに対して環境として振る舞う • 階層型の環境を実現するため Coach アーキテクチャ(Level Manager) Level Manager Level Manager Agent Agent Agent Environment
11.
Copyright © GREE,
Inc. All Rights Reserved. • アルゴリズムを定義する • Observe • 環境の最新状態をLevel Managerから受け取る • Act • Observeで受けとった情報を元に、次の行動を決定する • Train • ネットワークを学習する • パラメータはパラメータ用のクラスで管理する • AgentParameter • NetworkParameter Coach アーキテクチャ(Agent)
12.
Copyright © GREE,
Inc. All Rights Reserved. • Input Embedders • 入力を特徴ベクトルに変換する • 畳み込みネットワークのImage embedder • 多層パーセプトロンのVector embedder • Output Heads • アクション・状態価値などのネットワークの出力 • 複数のHeadsを持つことができる • Actor-Criticの場合はpolicy headとstate-value headがある • Middlewares • Input EmbeddersとOutput Headsを繋ぐネットワーク • 全結合ネットワークやLSTMなど Coach アーキテクチャ(Network)
13.
Copyright © GREE,
Inc. All Rights Reserved. • Exploration Policies • ε-greedy • UCB • etc • Filters • Atariのゲームで4フレームをまとめたり • rewardを[-1, 1]の範囲に変換したり • Memories • experience replay • prioritized experience replay • etc Coach アーキテクチャ(その他)
14.
Copyright © GREE,
Inc. All Rights Reserved. • メリット • 開発が活発で実装されているアルゴリズムも多い • 階層型強化学習や模倣学習にも対応できる • 設定ファイルを書くだけで学習・評価ができるので共有・再現が簡単 • デメリット • 学習状況を把握するためのダッシュボードが使いにくい • ワーカを分散できるアルゴリズムの選択肢が少ない • 実装が複雑で、新しいアルゴリズムを追加したり実装を読んだりするのが難しい Coach メリット・デメリット
15.
Copyright © GREE,
Inc. All Rights Reserved. • 実験設定を記述してツールから実行する • 実験設定に書く内容 • 環境 • 実行するアルゴリズム • 学習終了条件 • アルゴリズムのハイパーパラメータ RLlib 使い方 $ rllib train -f CartPole_DQN.yaml --checkpoint-freq 10 $ rllib rollout checkpoint-path --run DQN --env CartPole-v0
16.
Copyright © GREE,
Inc. All Rights Reserved. cartpole-dqn: env: CartPole-v0 run: DQN stop: time_total_s: 120 config: gamma: 0.99 lr: .000025 adam_epsilon: 1.0 exploration_final_eps: .01 schedule_max_timesteps: 100 exploration_fraction: 0.09 buffer_size: 40000 checkpoint-freq: 100 RLlib 実験設定の書き方
17.
Copyright © GREE,
Inc. All Rights Reserved. • TensorBoard • 標準ではRewardの遷移などが見られる。lossは無い • ネットワークの構造は見られない • callbackという仕組みを使ってカスタムメトリックを追加できる • episodeの開始・終了時 • step終了時 • trainの1イテレーション終了時 RLlib ダッシュボード
18.
Copyright © GREE,
Inc. All Rights Reserved. • Pythonの分散処理フレームワークRay上に実装されている • Rayのget(), put(), remote()などのメソッドがよく出てくる • Rayについて簡単に知っていないと読みにくい RLlib アーキテクチャ
19.
Copyright © GREE,
Inc. All Rights Reserved. • 学習全体を制御する • Rayのハイパーパラメータサーチ用ツール • _train()の出力が終了条件を満たすまで、_train()を繰り返す RLlib アーキテクチャ(tune) class Agent(Trainable): def _setup(self, config): # モデル構築 def _train(self): # 学習 def _save(self); # 重みの保存 def _restore(self): # 重みの読込
20.
Copyright © GREE,
Inc. All Rights Reserved. • アルゴリズムを定義する • Policy Graph・Policy Evaluator・Policy Optimizerを組み合わせる RLlib アーキテクチャ(Agent)
21.
Copyright © GREE,
Inc. All Rights Reserved. • Policy Graph • ネットワークや損失関数などを定義する • 標準ネットワークは畳み込みネットワークと多層パーセプトロン、LSTM • Custom Modelで変更可能 • Policy Evaluator • 環境から得たデータを前処理してPolicy Graphに入力 • Policy Graphが決定したactionを環境に作用させる • Policy Optimizer • どのように学習するか制御する • replay bufferを使うか・都度Evaluatorから取得するか、同期・非同期 RLlib アーキテクチャ (Policy [Graph|Evaluator|Optimizer])
22.
Copyright © GREE,
Inc. All Rights Reserved. • Exploration Policies • 数ステップ毎に一定値減衰する • 初期値から最終値まで線形に減衰する • Preprocessor • Environmentの出力を前処理する • Open AI Gymのラッパーとして実装 • Atariのゲームで4フレームをまとめたり • rewardを[-1, 1]の範囲に変換したり RLlib アーキテクチャ(その他)
23.
Copyright © GREE,
Inc. All Rights Reserved. • メリット • 開発が活発で実装されているアルゴリズムも多い • 学習状況を把握するためのダッシュボードが見やすい • 設定ファイルを書くだけで学習・評価ができるので共有・再現が簡単 • Coachよりも簡単に書ける • デメリット • 実装が複雑で、新しいアルゴリズムを追加したり実装を読んだりするのが難しい • (手元の環境の問題だが)MacアプリにGym InterfaceをかぶせたEnvironmentだ とクラッシュして使えない RLlib メリット・デメリット
24.
Copyright © GREE,
Inc. All Rights Reserved. ChainerRL 使い方 • exampleのコードを実行 • コマンドライン引数 • 環境 • 学習させるstep数 • ハイパーパラメータ $ python example/train_dqn_gym.py --env CartPole-v0 --outdir /tmp/chainerrl
25.
Copyright © GREE,
Inc. All Rights Reserved. • 学習経過(LossやReward)のダッシュボードは用意されていない • ファイルには出力される • (試していないが)ステップ毎にアクションの確率などを可視化する ツールがある • ChainerRL Visualizer ChainerRL ダッシュボード
26.
Copyright © GREE,
Inc. All Rights Reserved. • experiments • Agentを学習・評価するループを回す仕組み • Evaluator • Agentを評価する • これまでの最高スコアなどを管理 • Agent • アルゴリズムを定義 • Model • ネットワークを定義 • Wrapper • Gymラッパー • Envの出力を前処理する ChainerRL アーキテクチャ experiments Agent Evaluator Environment Environment model
27.
Copyright © GREE,
Inc. All Rights Reserved. • メリット • 実装されているアルゴリズムが多い • 実装が読みやすい • ChainerRL Visualizerを使うと、バランス調整などに役立ちそう • デメリット • コマンドライン引数で実験設定を渡すので、別途設定を管理する必要がある • ChainerがTensorFlowほどメジャーではない ChainerRL メリット・デメリット
28.
Copyright © GREE,
Inc. All Rights Reserved. • 普通のKerasと同じような書き方 • modelのcompile • fit Keras-RL 使い方 env = gym.make(‘CartPole-v0’) model = Sequential() model.add(Flatten(input_shape=(1,) + env.observation_space.shape)) model.add(Dense(16)) model.add(Activation('relu')) model.add(Dense(16)) model.add(Activation('relu')) model.add(Dense(env.action_space.n)) model.add(Activation('linear')) memory = SequentialMemory(limit=40000, window_length=1) policy = EpsGreedyQPolicy() dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, policy=policy) dqn.compile(Adam(lr=1e-3), metrics=['mae']) dqn.fit(env, nb_steps=50000) dqn.test(env, nb_episodes=5)
29.
Copyright © GREE,
Inc. All Rights Reserved. • Matplotlib • jsonで出力されたログをプロットするためのサンプルスクリプトあり • 見にくい Keras-RL ダッシュボード
30.
Copyright © GREE,
Inc. All Rights Reserved. • Agent • 学習・評価のループを回す • アルゴリズムを定義 • Model • ネットワークを定義 • Processor • 環境からの出力を前処理する Keras-RL アーキテクチャ Agent Environmentmodel processor
31.
Copyright © GREE,
Inc. All Rights Reserved. • メリット • ネットワークの変更が簡単 • 実装が読みやすい • デメリット • 実装されているアルゴリズムが少ない • 複数ワーカに分散させて学習ができない Keras-RL メリット・デメリット
32.
Copyright © GREE,
Inc. All Rights Reserved. StableBaseline 使い方 • 簡単なコードを書く env = gym.make('CartPole-v0') env = DummyVecEnv([lambda: env]) model = DQN(MlpPolicy, env, verbose=1) model.learn(total_timesteps=5000) model.save("deepq_cartpole") del model # remove to demonstrate saving and loading model = DQN.load("deepq_cartpole") obs = env.reset() while True: action, _states = model.predict(obs) obs, rewards, dones, info = env.step(action) env.render()
33.
Copyright © GREE,
Inc. All Rights Reserved. • TensorBoard • ネットワーク構造 • reward, loss • 自分でネットワークを定義すればtf.summaryで追加できる • その他 • step毎に呼び出されるcallbackを定義すれば、ファイルなどに値を出力可能 StableBaseline ダッシュボード
34.
Copyright © GREE,
Inc. All Rights Reserved. • Model • 学習のループを回す • アルゴリズムを定義する • Policy • ネットワークを定義する • 多層パーセプトロン、畳み込み、LSTM • EnvWrapper • 環境からの出力を前処理 • マルチワーカ対応 StableBaseline アーキテクチャ Model Policy EnvWrapper Environment Environment
35.
Copyright © GREE,
Inc. All Rights Reserved. • メリット • ネットワークの変更が簡単 • 実装が読みやすい • ダッシュボードが見やすい • デメリット • 実験のためにコードを書かないといけない StableBaseline メリット・デメリット
36.
Copyright © GREE,
Inc. All Rights Reserved. • 実験設定を記述してツールから実行する • 実験設定に書く内容 • 環境 • 学習させるstep数 • アルゴリズムのハイパーパラメータ Dopamine 使い方 $ python -um dopamine.atari.train --agent_name=dqn -- base_dir=/tmp/dopamine --gin_files=’dqn.gin’
37.
Copyright © GREE,
Inc. All Rights Reserved. DQNAgent.gamma = 0.99 DQNAgent.epsilon_train = 0.01 DQNAgent.epsilon_eval = 0.001 DQNAgent.epsilon_decay_period = 250000 # agent steps DQNAgent.optimizer = @tf.train.RMSPropOptimizer() tf.train.RMSPropOptimizer.learning_rate = 0.00025 tf.train.RMSPropOptimizer.decay = 0.95 tf.train.RMSPropOptimizer.momentum = 0.0 tf.train.RMSPropOptimizer.epsilon = 0.00001 Runner.game_name = 'Pong’ Runner.sticky_actions = True Runner.num_iterations = 200 Runner.training_steps = 250000 # agent steps Runner.evaluation_steps = 125000 # agent steps Runner.max_steps_per_episode = 27000 # agent steps WrappedReplayBuffer.replay_capacity = 1000000 WrappedReplayBuffer.batch_size = 32 Dopamine 実験設定の書き方
38.
Copyright © GREE,
Inc. All Rights Reserved. • TensorBoard • ネットワーク構造、報酬の平均、エピソード数のみ Dopamine ダッシュボード
39.
Copyright © GREE,
Inc. All Rights Reserved. • メリット • TensorFlowによる参考実装としては読みやすい • 実験設定の書き方は簡単 • デメリット • ドキュメントが全く足りていない • 実装されているアルゴリズムが少ない Dopamine メリット・デメリット
40.
Copyright © GREE,
Inc. All Rights Reserved. • ChainerRL、StableBaselineから使い始めると良さそう • アルゴリズムが揃っている • ダッシュボードが見やすい (ChainerRL Visualizerは試してみたい) • 実装が読みやすい • もっと複雑なことがしたくなったらCoach, RLlib • 階層型の環境やマルチエージェント環境が使いやすいようになっている • 複数ノードにワーカを分散する仕組みが入っている • 複雑なので、Agentにわたすパラメータの意味を実装から読み解くのがしんどい まとめ