SlideShare a Scribd company logo
1 of 16
Pytorch
強化学習プラットフォーム?
Horizonのドキュメントを読む
08.Mar.2019
Machine Learning Casual Talks #9 LT
Takashi,MOGAMI
@mogamin
WHO AM I?
Takashi, MOGAMI / @mogamin
ウルシステムズ株式会社
シニアコンサルタント
画像処理(OpenCV)、DeepLearningや強化学習がメインの業務。時間があ
ればkaggleやSIGNATEで技術を磨いたり、社内でarxiv論文を読む活動し
たり。最近ではブロックチェーン(Ethereum)を使った研究開発を推進中。
- Scrum Master
- AWS Certified Solutions Architect Professional
AGENDA
- 強化学習とは
- PyTorch用強化学習フレームワークが出た
- Horizonのドキュメントをできる限り読み解く
- Readme編
- Document編
- Installation編
- Usage編
※本内容は個人の見解です。所属組織とは一切関係ありません。
強化学習とは
- エージェント(学習の主体)が環境から得られる状態に対
して、報酬を最大化するように行動を学習する。
- 何がうれしいかというと、正答データがない問題でも報
酬を正しく定義できれば問題を解くことができる。
※https://www.slideshare.net/ssuserf2c42e/20190125-minecraft-129160073
Agent Environment
action
observation, reward
Pytorch用強化学習フレームワークがでた
- Chainer、Keras、PyTorch
Pytorch用強化学習フレームワークがでた
- プラットフォーム??
- Scalaが7.7%??
Horizonのドキュメントをできる限り読み解く
- ReadMe編
- OverView
- HorizonはモデリングとトレーニングにはPyTorchを、servingにはCaffe2を使用。
Horizonは一般的なRLアルゴリズムを学習するためのワークフローが含まれている。デ
ータの前処理、機能の変換、分散トレーニング、反事実的なポリシー評価、および最適
化されたサービス。
- Algorithms Supported
- Discrete-Action DQN
- Parametric-Action DQN
- Double DQN, Dueling DQN, Dueling Double DQN
- DDPG (DDPG)
- Soft Actor-Critic (SAC)
Horizonのドキュメントをできる限り読み解く
- Document編
- ABSTRACT
- 高速プロトタイピングや実験用に設計されていることが多い他のRLプラットフォーム
とは異なり、Horizonはプロダクションユースケースを念頭に置いて設計されている。
- INTRODUCTION
- 現在の強化学習は、主に学術機関向けであり、プロダクションユースケースが考えられ
ていない。プロダクションでは、何百、何千もの特徴と分布、高次元の離散的および連
続的なアクション空間、最適化されたトレーニングとサービス、および展開前のアルゴ
リズムパフォーマンスの見積もりを含む大規模データセットの処理が重要なのです。
- Horizonは、そのようなデータセット上で動作するように調整されたプラットフォーム
として提供する。
Horizonのドキュメントをできる限り読み解く
- Document編
- DATA PREPROCESSING
- 多くのRLモデルのデータは、状態/アクションの連続したペアで学習している。本番の
環境では一般的にログに記録されることが多く、RLに適した形式ではない。Horizonで
は、収集されたログデータを変換するSparkパイプライン(タイムラインパイプライン
と呼ばれます)が含まれている。
- MDP ID
- Sequence Number
- State Features
- Action
- Action Probability
- Reward
- Possible Actions
- 内部的には、Hiveテーブルに対して書き込む。変換後もHiveテーブルに書き込む。
Horizonのドキュメントをできる限り読み解く
- Document編
- FEATURE NORMALIZATION
- 文献によれば、ニューラルネットワークは、データが正規分布していると、より速くよ
り良く学習することが示されている(Ioffe&Szegedy、2015)。
- RLは、大きな特徴量にさらされると不安定になる可能性があるため、特徴量の正規化
が非常に重要である。
- Horizonは学習データセットを自動的に分析し、各フィーチャに最適な変換関数と対応
する正規化パラメータを決定するワークフローが含まれている。
- そのワークフローでは、特徴がどのように正規化されるべきかを「正規化仕様」として
作成される。A “normalization specification” is then created which describes how the
feature should be normalized during training.
Horizonのドキュメントをできる限り読み解く
- Document編
- TRAINING
- トレーニングは、CPU、GPU、または複数のGPUを使用して実行できる。
- オープンソース版における多数のマシンにまたがるマルチGPUトレーニングは、近い将
来リリースされる予定。
- GPUおよびマルチGPUトレーニングを使用して、数時間で数千万の例にわたる数百か
ら数千の機能を含む大規模なRLモデルをトレーニングできる。(すべてのバッチで機
能の正規化およびポリシー評価を行う)
Horizonのドキュメントをできる限り読み解く
- Document編
- REPORTING AND EVALUATION
- 時間差損失(TD-loss)は関数近似誤差を測定する。
- たとえばDQNでは、ベルマン方程式によって与えられるQの期待値とモデルによ
って出力されるQの実際の値との差を測定する。ラベルが定常分布からのもので
ある教師あり学習とは異なりRLではラベル自体がモデルの関数である。主に最適
化ループが安定していることを確認するために使用される。
- モンテカルロ損失(MC損失)は、モデルのQ値を記録された値(記録された報酬の割
引合計)と比較する。
- プロセスの可視化として、TensorboardXプラグインを使用してメトリックを表示できる。
Horizonのドキュメントをできる限り読み解く
- Document編
- MODEL SERVING
- PyTorch 1.0はモデル推論のためのオープンソースフォーマットであるONNXをサポート
している。
Horizonのドキュメントをできる限り読み解く
- Document編
- CASE STUDY: NOTIFICATIONS AT FACEBOOK
- これまでは、クリックスルー率(CTR)とその通知が意味のあるアクティビティにつな
がることを予測するために、教師付き学習モデルを使用してきた。が、長期的または増
分的な価値を捉えるものではなかった。
- 通知の設定は人によって異なる。しきい値に基づくフィルタリングでは、通知に対する
感度が異なる人への通知にどう調整するべきかが、見逃されてきていた。
- この問題に対処するためにHorizonで送信するべき通知をDiscrete-Action DQNモデルで
学習したところ、以前のモデルと比較して、特定の種類の通知とFacebook上のアクティ
ビティ促進に大幅な改善が見られた。
- Facebook上でのアクティビティに報酬を加え、通知送信量の増大に対してペナルティを
付加させた。
Horizonのドキュメントをできる限り読み解く
- Install編
- dockerの下に、CPU専用ビルドとCUDAビルド用のDockerfileがある。CUDAビルドを実行す
るにはnvidia-dockerが必要。
git clone https://github.com/facebookresearch/Horizon.git
cd Horizon/
docker build -f docker/cpu.Dockerfile -t horizon:dev --memory=8g --memory-swap=8g .
※macOSの2Gでは足りない。メモリ割り当てを少なくても8Gに増やす必要がある。
ありがとうございました。
We are now hiring!
@mogaminまで

More Related Content

What's hot

サンプル発話からVUXを考える
サンプル発話からVUXを考えるサンプル発話からVUXを考える
サンプル発話からVUXを考える紗良 松本 (Ohtani)
 
Fringe81内定者研修2013 yコンベンチャー発表資料
Fringe81内定者研修2013 yコンベンチャー発表資料Fringe81内定者研修2013 yコンベンチャー発表資料
Fringe81内定者研修2013 yコンベンチャー発表資料Yuzuru Tanaka
 
Teachme for training
Teachme for trainingTeachme for training
Teachme for trainingKeitaro Shoji
 
How did you start learning Azure
 How did you start learning Azure How did you start learning Azure
How did you start learning AzureYukiya Hayashi
 
JAZUG 9周年イベント 懇親会ライトニングトーク
JAZUG 9周年イベント 懇親会ライトニングトークJAZUG 9周年イベント 懇親会ライトニングトーク
JAZUG 9周年イベント 懇親会ライトニングトークDai Iwai
 
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】Dai Iwai
 
泥臭い受託開発Dev love関西
泥臭い受託開発Dev love関西泥臭い受託開発Dev love関西
泥臭い受託開発Dev love関西Toshiyuki Ohtomo
 
20210915 株式会社旅武者紹介資料v21.9
20210915 株式会社旅武者紹介資料v21.920210915 株式会社旅武者紹介資料v21.9
20210915 株式会社旅武者紹介資料v21.9yohei yamaguchi
 
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えようShigeki Morizane
 
JAZUG 8周年イベント登壇資料
JAZUG 8周年イベント登壇資料JAZUG 8周年イベント登壇資料
JAZUG 8周年イベント登壇資料Dai Iwai
 
ただのエンジニアチームの改善を謀ったら。。。
ただのエンジニアチームの改善を謀ったら。。。ただのエンジニアチームの改善を謀ったら。。。
ただのエンジニアチームの改善を謀ったら。。。Shoko Kayano
 
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指してHaruo Sato
 
海外武者修行プログラム Rev.2
海外武者修行プログラム Rev.2海外武者修行プログラム Rev.2
海外武者修行プログラム Rev.2yohei yamaguchi
 

What's hot (15)

サンプル発話からVUXを考える
サンプル発話からVUXを考えるサンプル発話からVUXを考える
サンプル発話からVUXを考える
 
Fringe81内定者研修2013 yコンベンチャー発表資料
Fringe81内定者研修2013 yコンベンチャー発表資料Fringe81内定者研修2013 yコンベンチャー発表資料
Fringe81内定者研修2013 yコンベンチャー発表資料
 
Teachme for training
Teachme for trainingTeachme for training
Teachme for training
 
How did you start learning Azure
 How did you start learning Azure How did you start learning Azure
How did you start learning Azure
 
JAZUG 9周年イベント 懇親会ライトニングトーク
JAZUG 9周年イベント 懇親会ライトニングトークJAZUG 9周年イベント 懇親会ライトニングトーク
JAZUG 9周年イベント 懇親会ライトニングトーク
 
shikigaku.pdf
shikigaku.pdfshikigaku.pdf
shikigaku.pdf
 
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
Global Azure Bootcamp 2019@Tokyo資料【ExpressRoute構築でハメられた】
 
大規模JavaScript開発
大規模JavaScript開発大規模JavaScript開発
大規模JavaScript開発
 
泥臭い受託開発Dev love関西
泥臭い受託開発Dev love関西泥臭い受託開発Dev love関西
泥臭い受託開発Dev love関西
 
20210915 株式会社旅武者紹介資料v21.9
20210915 株式会社旅武者紹介資料v21.920210915 株式会社旅武者紹介資料v21.9
20210915 株式会社旅武者紹介資料v21.9
 
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
 
JAZUG 8周年イベント登壇資料
JAZUG 8周年イベント登壇資料JAZUG 8周年イベント登壇資料
JAZUG 8周年イベント登壇資料
 
ただのエンジニアチームの改善を謀ったら。。。
ただのエンジニアチームの改善を謀ったら。。。ただのエンジニアチームの改善を謀ったら。。。
ただのエンジニアチームの改善を謀ったら。。。
 
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
 
海外武者修行プログラム Rev.2
海外武者修行プログラム Rev.2海外武者修行プログラム Rev.2
海外武者修行プログラム Rev.2
 

Similar to Pytorch 強化学習プラットフォーム horizonのドキュメントを読む

ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話しユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話しHideaki Tarumi
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Ryosuke Okuta
 
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!泰史 栃折
 
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-貴志 上坂
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例Recruit Technologies
 
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキングMasahito Zembutsu
 
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHIKamonohashi
 
【DL輪読会】マルチモーダル LLM
【DL輪読会】マルチモーダル LLM【DL輪読会】マルチモーダル LLM
【DL輪読会】マルチモーダル LLMDeep Learning JP
 
1日で分かった気になる機械学習
1日で分かった気になる機械学習1日で分かった気になる機械学習
1日で分かった気になる機械学習Junji Imaoka
 
事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西Tomoyuki Sugita
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCYusuke Suzuki
 
AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ Yasuhiro Matsuo
 
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -Tier_IV
 
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~dots.
 
Elasticsearchによるリモートワーク時代のセキュリティ対策
Elasticsearchによるリモートワーク時代のセキュリティ対策Elasticsearchによるリモートワーク時代のセキュリティ対策
Elasticsearchによるリモートワーク時代のセキュリティ対策Elasticsearch
 
大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術RyuichiKanoh
 
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazugAzure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug満徳 関
 

Similar to Pytorch 強化学習プラットフォーム horizonのドキュメントを読む (20)

Rakuten20181027
Rakuten20181027Rakuten20181027
Rakuten20181027
 
ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話しユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話し
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
 
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
 
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
 
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
 
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
 
【DL輪読会】マルチモーダル LLM
【DL輪読会】マルチモーダル LLM【DL輪読会】マルチモーダル LLM
【DL輪読会】マルチモーダル LLM
 
Tletle 190520030943
Tletle 190520030943Tletle 190520030943
Tletle 190520030943
 
1日で分かった気になる機械学習
1日で分かった気になる機械学習1日で分かった気になる機械学習
1日で分かった気になる機械学習
 
事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
 
Pycon mini20190511 pub
Pycon mini20190511 pubPycon mini20190511 pub
Pycon mini20190511 pub
 
AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ AWSでGPUも安く大量に使い倒せ
AWSでGPUも安く大量に使い倒せ
 
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
 
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
dots.女子部勉強会 vol.5 機械学習ハンズオン ~ 協調フィルタリング ~
 
Elasticsearchによるリモートワーク時代のセキュリティ対策
Elasticsearchによるリモートワーク時代のセキュリティ対策Elasticsearchによるリモートワーク時代のセキュリティ対策
Elasticsearchによるリモートワーク時代のセキュリティ対策
 
大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術
 
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazugAzure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
 

Pytorch 強化学習プラットフォーム horizonのドキュメントを読む