Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

mogamin
March 08, 2019

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

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

mogamin

March 08, 2019
Tweet

More Decks by mogamin

Other Decks in Technology

Transcript

  1. WHO AM I? Takashi, MOGAMI / @mogamin ウルシステムズ株式会社 シニアコンサルタント 画像処理(OpenCV)、DeepLearningや強化学習がメインの業務。時間があ

    ればkaggleやSIGNATEで技術を磨いたり、社内でarxiv論文を読む活動し たり。最近ではブロックチェーン(Ethereum)を使った研究開発を推進中。 - Scrum Master - AWS Certified Solutions Architect Professional
  2. AGENDA - 強化学習とは - PyTorch用強化学習フレームワークが出た - Horizonのドキュメントをできる限り読み解く - Readme編 -

    Document編 - Installation編 - Usage編 ※本内容は個人の見解です。所属組織とは一切関係ありません。
  3. Horizonのドキュメントをできる限り読み解く - Document編 - ABSTRACT - 高速プロトタイピングや実験用に設計されていることが多い他のRLプラットフォーム とは異なり、Horizonはプロダクションユースケースを念頭に置いて設計されている。 - INTRODUCTION

    - 現在の強化学習は、主に学術機関向けであり、プロダクションユースケースが考えられ ていない。プロダクションでは、何百、何千もの特徴と分布、高次元の離散的および連 続的なアクション空間、最適化されたトレーニングとサービス、および展開前のアルゴ リズムパフォーマンスの見積もりを含む大規模データセットの処理が重要なのです。 - Horizonは、そのようなデータセット上で動作するように調整されたプラットフォーム として提供する。
  4. 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.
  5. Horizonのドキュメントをできる限り読み解く - Document編 - TRAINING - トレーニングは、CPU、GPU、または複数のGPUを使用して実行できる。 - オープンソース版における多数のマシンにまたがるマルチGPUトレーニングは、近い将 来リリースされる予定。

    - GPUおよびマルチGPUトレーニングを使用して、数時間で数千万の例にわたる数百か ら数千の機能を含む大規模なRLモデルをトレーニングできる。(すべてのバッチで機 能の正規化およびポリシー評価を行う)
  6. Horizonのドキュメントをできる限り読み解く - Document編 - REPORTING AND EVALUATION - 時間差損失(TD-loss)は関数近似誤差を測定する。 -

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

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