Slide 1

Slide 1 text

Pytorch 強化学習プラットフォーム? Horizonのドキュメントを読む 08.Mar.2019 Machine Learning Casual Talks #9 LT Takashi,MOGAMI @mogamin

Slide 2

Slide 2 text

WHO AM I? Takashi, MOGAMI / @mogamin ウルシステムズ株式会社 シニアコンサルタント 画像処理(OpenCV)、DeepLearningや強化学習がメインの業務。時間があ ればkaggleやSIGNATEで技術を磨いたり、社内でarxiv論文を読む活動し たり。最近ではブロックチェーン(Ethereum)を使った研究開発を推進中。 - Scrum Master - AWS Certified Solutions Architect Professional

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

AGENDA - 強化学習とは - PyTorch用強化学習フレームワークが出た - Horizonのドキュメントをできる限り読み解く - Readme編 - Document編 - Installation編 - Usage編 ※本内容は個人の見解です。所属組織とは一切関係ありません。

Slide 5

Slide 5 text

強化学習とは - エージェント(学習の主体)が環境から得られる状態に対 して、報酬を最大化するように行動を学習する。 - 何がうれしいかというと、正答データがない問題でも報 酬を正しく定義できれば問題を解くことができる。 ※https://www.slideshare.net/ssuserf2c42e/20190125-minecraft-129160073 Agent Environment action observation, reward

Slide 6

Slide 6 text

Pytorch用強化学習フレームワークがでた - Chainer、Keras、PyTorch

Slide 7

Slide 7 text

Pytorch用強化学習フレームワークがでた - プラットフォーム?? - Scalaが7.7%??

Slide 8

Slide 8 text

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)

Slide 9

Slide 9 text

Horizonのドキュメントをできる限り読み解く - Document編 - ABSTRACT - 高速プロトタイピングや実験用に設計されていることが多い他のRLプラットフォーム とは異なり、Horizonはプロダクションユースケースを念頭に置いて設計されている。 - INTRODUCTION - 現在の強化学習は、主に学術機関向けであり、プロダクションユースケースが考えられ ていない。プロダクションでは、何百、何千もの特徴と分布、高次元の離散的および連 続的なアクション空間、最適化されたトレーニングとサービス、および展開前のアルゴ リズムパフォーマンスの見積もりを含む大規模データセットの処理が重要なのです。 - Horizonは、そのようなデータセット上で動作するように調整されたプラットフォーム として提供する。

Slide 10

Slide 10 text

Horizonのドキュメントをできる限り読み解く - Document編 - DATA PREPROCESSING - 多くのRLモデルのデータは、状態/アクションの連続したペアで学習している。本番の 環境では一般的にログに記録されることが多く、RLに適した形式ではない。Horizonで は、収集されたログデータを変換するSparkパイプライン(タイムラインパイプライン と呼ばれます)が含まれている。 - MDP ID - Sequence Number - State Features - Action - Action Probability - Reward - Possible Actions - 内部的には、Hiveテーブルに対して書き込む。変換後もHiveテーブルに書き込む。

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

Horizonのドキュメントをできる限り読み解く - Document編 - TRAINING - トレーニングは、CPU、GPU、または複数のGPUを使用して実行できる。 - オープンソース版における多数のマシンにまたがるマルチGPUトレーニングは、近い将 来リリースされる予定。 - GPUおよびマルチGPUトレーニングを使用して、数時間で数千万の例にわたる数百か ら数千の機能を含む大規模なRLモデルをトレーニングできる。(すべてのバッチで機 能の正規化およびポリシー評価を行う)

Slide 13

Slide 13 text

Horizonのドキュメントをできる限り読み解く - Document編 - REPORTING AND EVALUATION - 時間差損失(TD-loss)は関数近似誤差を測定する。 - たとえばDQNでは、ベルマン方程式によって与えられるQの期待値とモデルによ って出力されるQの実際の値との差を測定する。ラベルが定常分布からのもので ある教師あり学習とは異なりRLではラベル自体がモデルの関数である。主に最適 化ループが安定していることを確認するために使用される。 - モンテカルロ損失(MC損失)は、モデルのQ値を記録された値(記録された報酬の割 引合計)と比較する。 - プロセスの可視化として、TensorboardXプラグインを使用してメトリックを表示できる。

Slide 14

Slide 14 text

Horizonのドキュメントをできる限り読み解く - Document編 - MODEL SERVING - PyTorch 1.0はモデル推論のためのオープンソースフォーマットであるONNXをサポート している。

Slide 15

Slide 15 text

Horizonのドキュメントをできる限り読み解く - Document編 - CASE STUDY: NOTIFICATIONS AT FACEBOOK - これまでは、クリックスルー率(CTR)とその通知が意味のあるアクティビティにつな がることを予測するために、教師付き学習モデルを使用してきた。が、長期的または増 分的な価値を捉えるものではなかった。 - 通知の設定は人によって異なる。しきい値に基づくフィルタリングでは、通知に対する 感度が異なる人への通知にどう調整するべきかが、見逃されてきていた。 - この問題に対処するためにHorizonで送信するべき通知をDiscrete-Action DQNモデルで 学習したところ、以前のモデルと比較して、特定の種類の通知とFacebook上のアクティ ビティ促進に大幅な改善が見られた。 - Facebook上でのアクティビティに報酬を加え、通知送信量の増大に対してペナルティを 付加させた。

Slide 16

Slide 16 text

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に増やす必要がある。

Slide 17

Slide 17 text

Horizonのドキュメントをできる限り読み解く - Usage編 - すいません。もっとがんばります。

Slide 18

Slide 18 text

Horizonのドキュメントをできる限り読み解く - 機械学習の本番稼働が技術的負債といわれるなかで、Horizonはそこに答え を出すのかもしれません。 - 日本語の情報が少ないので非常に苦労しておりますが、Horizonを一緒に勉 強していただける方がおりましたら、ぜひ お声がけください。

Slide 19

Slide 19 text

ありがとうございました。 We are now hiring! @mogaminまで