Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
gree_tech
PPTX, PDF
6,018 views
OSS強化学習フレームワークの比較
グリー開発本部 Meetup #2 ゲーム x 強化学習エンジニアリングで発表された資料です。 https://gree.connpass.com/event/112599/ #GDMeetup
Engineering
◦
Read more
11
Save
Share
Embed
Embed presentation
Download
Downloaded 47 times
1
/ 40
2
/ 40
3
/ 40
4
/ 40
5
/ 40
6
/ 40
7
/ 40
8
/ 40
9
/ 40
10
/ 40
11
/ 40
12
/ 40
13
/ 40
14
/ 40
15
/ 40
16
/ 40
17
/ 40
18
/ 40
19
/ 40
20
/ 40
21
/ 40
22
/ 40
23
/ 40
24
/ 40
25
/ 40
26
/ 40
27
/ 40
28
/ 40
29
/ 40
30
/ 40
31
/ 40
32
/ 40
33
/ 40
34
/ 40
35
/ 40
36
/ 40
37
/ 40
38
/ 40
39
/ 40
40
/ 40
More Related Content
PPTX
強化学習 DQNからPPOまで
by
harmonylab
PPTX
【DL輪読会】ViT + Self Supervised Learningまとめ
by
Deep Learning JP
PDF
多様な強化学習の概念と課題認識
by
佑 甲野
PPTX
[DL輪読会]逆強化学習とGANs
by
Deep Learning JP
PPTX
強化学習アルゴリズムPPOの解説と実験
by
克海 納谷
PDF
強化学習の分散アーキテクチャ変遷
by
Eiji Sekiya
PDF
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
by
Preferred Networks
PPTX
【DL輪読会】Reward Design with Language Models
by
Deep Learning JP
強化学習 DQNからPPOまで
by
harmonylab
【DL輪読会】ViT + Self Supervised Learningまとめ
by
Deep Learning JP
多様な強化学習の概念と課題認識
by
佑 甲野
[DL輪読会]逆強化学習とGANs
by
Deep Learning JP
強化学習アルゴリズムPPOの解説と実験
by
克海 納谷
強化学習の分散アーキテクチャ変遷
by
Eiji Sekiya
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
by
Preferred Networks
【DL輪読会】Reward Design with Language Models
by
Deep Learning JP
What's hot
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
by
Deep Learning JP
PDF
強化学習と逆強化学習を組み合わせた模倣学習
by
Eiji Uchibe
PDF
[DL輪読会]近年のオフライン強化学習のまとめ —Offline Reinforcement Learning: Tutorial, Review, an...
by
Deep Learning JP
PDF
最適化計算の概要まとめ
by
Yuichiro MInato
PPTX
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
by
Deep Learning JP
PDF
DQNからRainbowまで 〜深層強化学習の最新動向〜
by
Jun Okumura
PDF
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
by
Deep Learning JP
PDF
時系列予測にTransformerを使うのは有効か?
by
Fumihiko Takahashi
PDF
自己教師学習(Self-Supervised Learning)
by
cvpaper. challenge
PDF
機械学習モデルのハイパパラメータ最適化
by
gree_tech
PDF
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
by
Preferred Networks
PPTX
強化学習における好奇心
by
Shota Imai
PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
by
RyuichiKanoh
PPTX
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
by
Shunichi Sekiguchi
PPTX
[DL輪読会]Dream to Control: Learning Behaviors by Latent Imagination
by
Deep Learning JP
PDF
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
by
Deep Learning JP
PDF
【DL輪読会】GPT-4Technical Report
by
Deep Learning JP
PDF
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
by
Preferred Networks
PDF
方策勾配型強化学習の基礎と応用
by
Ryo Iwaki
PPTX
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
by
Deep Learning JP
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
by
Deep Learning JP
強化学習と逆強化学習を組み合わせた模倣学習
by
Eiji Uchibe
[DL輪読会]近年のオフライン強化学習のまとめ —Offline Reinforcement Learning: Tutorial, Review, an...
by
Deep Learning JP
最適化計算の概要まとめ
by
Yuichiro MInato
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
by
Deep Learning JP
DQNからRainbowまで 〜深層強化学習の最新動向〜
by
Jun Okumura
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
by
Deep Learning JP
時系列予測にTransformerを使うのは有効か?
by
Fumihiko Takahashi
自己教師学習(Self-Supervised Learning)
by
cvpaper. challenge
機械学習モデルのハイパパラメータ最適化
by
gree_tech
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
by
Preferred Networks
強化学習における好奇心
by
Shota Imai
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
by
RyuichiKanoh
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
by
Shunichi Sekiguchi
[DL輪読会]Dream to Control: Learning Behaviors by Latent Imagination
by
Deep Learning JP
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
by
Deep Learning JP
【DL輪読会】GPT-4Technical Report
by
Deep Learning JP
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
by
Preferred Networks
方策勾配型強化学習の基礎と応用
by
Ryo Iwaki
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
by
Deep Learning JP
Similar to OSS強化学習フレームワークの比較
PPTX
DataEngConf NYC’18 セッションサマリー #2
by
gree_tech
PDF
20180830 implement dqn_platinum_data_meetup_vol1
by
Keisuke Nakata
PDF
Machine learning CI/CD with OSS
by
yusuke shibui
PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
by
de:code 2017
PDF
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
by
Jun Okumura
PDF
Introduction to Chainer (LL Ring Recursive)
by
Kenta Oono
PPTX
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
by
DeNA
PDF
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
by
DeNA
PPTX
【2017年】ディープラーニングのフレームワーク比較
by
Ryota Suzuki
PPTX
「機械学習とは?」から始める Deep learning実践入門
by
Hideto Masuoka
PDF
Chainerの使い方と自然言語処理への応用
by
Yuya Unno
PDF
「深層学習」勉強会LT資料 "Chainer使ってみた"
by
Ken'ichi Matsui
PDF
深層学習フレームワーク Chainer の開発と今後の展開
by
Seiya Tokui
PDF
研究を加速するChainerファミリー
by
Deep Learning Lab(ディープラーニング・ラボ)
PDF
ディープラーニングフレームワーク とChainerの実装
by
Ryosuke Okuta
PDF
分散型強化学習手法の最近の動向と分散計算フレームワークRayによる実装の試み
by
SusumuOTA
PDF
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
by
Kenta Oono
PPTX
OSS強化学習向けゲーム環境の動向
by
gree_tech
PPTX
A Generalist Agent
by
harmonylab
PDF
深層学習フレームワークChainerの特徴
by
Yuya Unno
DataEngConf NYC’18 セッションサマリー #2
by
gree_tech
20180830 implement dqn_platinum_data_meetup_vol1
by
Keisuke Nakata
Machine learning CI/CD with OSS
by
yusuke shibui
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
by
de:code 2017
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
by
Jun Okumura
Introduction to Chainer (LL Ring Recursive)
by
Kenta Oono
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
by
DeNA
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
by
DeNA
【2017年】ディープラーニングのフレームワーク比較
by
Ryota Suzuki
「機械学習とは?」から始める Deep learning実践入門
by
Hideto Masuoka
Chainerの使い方と自然言語処理への応用
by
Yuya Unno
「深層学習」勉強会LT資料 "Chainer使ってみた"
by
Ken'ichi Matsui
深層学習フレームワーク Chainer の開発と今後の展開
by
Seiya Tokui
研究を加速するChainerファミリー
by
Deep Learning Lab(ディープラーニング・ラボ)
ディープラーニングフレームワーク とChainerの実装
by
Ryosuke Okuta
分散型強化学習手法の最近の動向と分散計算フレームワークRayによる実装の試み
by
SusumuOTA
日本神経回路学会セミナー「DeepLearningを使ってみよう!」資料
by
Kenta Oono
OSS強化学習向けゲーム環境の動向
by
gree_tech
A Generalist Agent
by
harmonylab
深層学習フレームワークChainerの特徴
by
Yuya Unno
More from gree_tech
PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
by
gree_tech
PDF
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
by
gree_tech
PPTX
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
by
gree_tech
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
by
gree_tech
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
PPTX
Cloud Spanner をより便利にする運用支援ツールの紹介
by
gree_tech
PPTX
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
by
gree_tech
PPTX
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
by
gree_tech
PPTX
海外展開と負荷試験
by
gree_tech
PPTX
翻訳QAでのテスト自動化の取り組み
by
gree_tech
PPTX
組み込み開発のテストとゲーム開発のテストの違い
by
gree_tech
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
by
gree_tech
PPTX
データエンジニアとアナリストチーム兼務になった件について
by
gree_tech
PPTX
シェアドサービスとしてのデータテクノロジー
by
gree_tech
PPTX
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
by
gree_tech
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
by
gree_tech
PPTX
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
by
gree_tech
PPTX
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
by
gree_tech
PPTX
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
by
gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
by
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
by
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
by
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
by
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
by
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
by
gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
by
gree_tech
海外展開と負荷試験
by
gree_tech
翻訳QAでのテスト自動化の取り組み
by
gree_tech
組み込み開発のテストとゲーム開発のテストの違い
by
gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
by
gree_tech
データエンジニアとアナリストチーム兼務になった件について
by
gree_tech
シェアドサービスとしてのデータテクノロジー
by
gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
by
gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
by
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
by
gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
by
gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
by
gree_tech
Recently uploaded
PDF
サーバーサイド Kotlin を社内で普及させてみた - Server-Side Kotlin Night 2025
by
Hirotaka Kawata
PDF
Rin Ukai_即興旅行の誘発を目的とした口コミ情報に基づく雰囲気キーワード_EC2025.pdf
by
Matsushita Laboratory
PPTX
【ASW22-01】STAMP:STPAロスシナリオの発想・整理支援ツールの開発 ~astah* System Safetyによる構造化・階層化機能の実装...
by
csgy24013
PDF
Nanami Doikawa_寄り道の誘発を目的とした旅行写真からのスポット印象語彙の推定に関する基礎検討_EC2025
by
Matsushita Laboratory
PDF
Backlog World 2025_抜け漏れは、努力でなく仕組みでなくす.pdf
by
Flyke1
PDF
0.0001秒の攻防!?快適な運転を支えるリアルタイム制御と組み込みエンジニアの実践知【DENSO Tech Night 第四夜】
by
dots.
PDF
Kubernetes Release Team Release Signal Role について ~Kubernetes Meetup Tokyo #72~
by
Keisuke Ishigami
サーバーサイド Kotlin を社内で普及させてみた - Server-Side Kotlin Night 2025
by
Hirotaka Kawata
Rin Ukai_即興旅行の誘発を目的とした口コミ情報に基づく雰囲気キーワード_EC2025.pdf
by
Matsushita Laboratory
【ASW22-01】STAMP:STPAロスシナリオの発想・整理支援ツールの開発 ~astah* System Safetyによる構造化・階層化機能の実装...
by
csgy24013
Nanami Doikawa_寄り道の誘発を目的とした旅行写真からのスポット印象語彙の推定に関する基礎検討_EC2025
by
Matsushita Laboratory
Backlog World 2025_抜け漏れは、努力でなく仕組みでなくす.pdf
by
Flyke1
0.0001秒の攻防!?快適な運転を支えるリアルタイム制御と組み込みエンジニアの実践知【DENSO Tech Night 第四夜】
by
dots.
Kubernetes Release Team Release Signal Role について ~Kubernetes Meetup Tokyo #72~
by
Keisuke Ishigami
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にわたすパラメータの意味を実装から読み解くのがしんどい まとめ
Download