SlideShare a Scribd company logo
1 of 26
マインクラフトで深層強化学習
ハンズオン
Preferred Networks / Chainer Evangelist
Keisuke Umezawa
2018/02/23
自己紹介
2
• 梅澤 慶介
• 金融マーケット予測モデルの研究開発
@AlpacaJapan
• Chainer Evangelist @Preferred Networks
• Twitter:@kmechann
• GitHub:@keisuke-umezawa
2018/11/25
Alpaca Forecast AI Prediction Matrix
3
• 最近、Bloombergアプリとしてリリースした金融商品予測システム
• 30分後に価格が上がるか下がるか予測する
2018/02/23
マインクラフトで深層強化学習
4
2018/11/25
概要
5
• Minecraftをシミュレーション環境として深層強化学習のハンズオン
を行います
• 現在、マインクラフトを活用したMARLOという深層強化学習のコ
ンテストが行われています
• そこで使用されている、marLoというOpenAI's Gym互換の
Minecraft環境を活用します
2018/11/25
ハンズオン内容
6
• marLoでは下記のような環境が用意されており、今回はこのうち一
つを選んでハンズオンを行います。
• その後、皆さんに好きな課題にチャレンジしていただきます。
• だいたいのタイムスケジュール
• 18:30〜 Chainer/CuPy/ChainerRLの紹介
• 18:45〜 環境設定・問題解説
• 20:00〜 演習
• 21:00 終了
2018/02/23
Chainer/CuPy/ChainerRLの紹介
7
2018/11/25
Chainer
• Chainerとは (http://chainer.org/)
• Preferred Networks製Deep Learningフレームワーク
8
2018/11/25
Chainer
9
• Google社製TensorFlowなどの同類
2018/11/25
CuPy
10
ChainerにおけるGPU計算を全て担当するライブラリが独立
NumPy互換APIで低コストにCPUコードをGPUへ移行
特異値分解などの線形代数アルゴリズムをGPU実行
KMeans, Gaussian Mixture ModelなどのExampleの充実
import numpy as np
x = np.random.rand(10)
W = np.random.rand(10, 5)
y = np.dot(x, W)
import cupy as cp
x = cp.random.rand(10)
W = cp.random.rand(10, 5)
y = cp.dot(x, W)
GPU
https://github.com/cupy/cupy
2018/11/25
拡大するChainerファミリー
11
Chainer UI
Chainer Chemistry
強化学習
画像認識
可視化
グラフ構造
大規模分散
Menoh
推論特化
強化学習?
ChainerRL: 深層強化学習ライブラリ
エージェントが環境とのインタラクションを通じて報酬を最大化
する行動を学習する
ChainerRLによる強化学習の流れ
1. 環境を構築
ChainerRLによる強化学習の流れ
2. モデルを定義 (contd.)
Q-Function: 観測→各行動の価値(将来の報酬の和の期待値)
ActionValue: Discrete, Quadratic
ChainerRLによる強化学習の流れ
Distribution: Softmax, Mellowmax,
Gaussian,…
Policy: 観測→行動の確率分布
2. モデルを定義
ChainerRLによる強化学習の流れ
3. エージェントを定義
ChainerRLによる強化学習の流れ
4. インタラクションさせる
実装済みのアルゴリズム
• Deep Q-Network (Mnih et al., 2015)
• Double DQN (Hasselt et al., 2016)
• Normalized Advantage Function (Gu et al., 2016)
• (Persistent) Advantage Learning (Bellemare et al., 2016)
• Deep Deterministic Policy Gradient (Lillicrap et al., 2016)
• SVG(0) (Heese et al., 2015)
• Asynchronous Advantage Actor-Critic (Mnih et al., 2016)
• Asynchronous N-step Q-learning (Mnih et al., 2016)
• Actor-Critic with Experience Replay (Wang et al., 2017) <- NEW!
• Path Consistency Learning (Nachum et al., 2017) <- NEW!
• etc.
ChainerRL Quickstart Guide
• Jupyter notebookでQ-functionを定義し、Double DQNでCart
Pole Balancingを学習
https://chainer-colab-notebook.readthedocs.io/ja/latest/notebook/hands_on/chainerrl/quickstart.html
2018/02/23
ハンズオンをはじめよう!
20
2018/11/25
今回の強化学習の問題
21
• MarLo-FindTheGoal-v0
• 7x7 room
• Goal: find the goal 
(yellow block)
• Rewards:
• -0.01 per command
• 100 commands max
• 1.0 find goal
• -0.1 out of time
2018/11/25
ハンズオン開始!
22
• https://bit.ly/2Bfmi9z
2018/02/23
chug (Chainer User Group)の紹介
23
2018/02/23
Chainer User Groupの紹介
• connpass
• Slack chainer-jp
• Twitter @chug_jp
• 活動内容
• Meetup・ハンズオンの開催
• Chainerに関する情報・ドキュメントの拡充
• Web チュートリアルの作成
• 一緒に活動できる方を募集しています
!Slack #chug-jp-management に是非
24
2018/02/23
2018/02/23
APPENDIX
26

More Related Content

Similar to 20181214 Minecraftで深層強化学習 ハンズオン

20180628 chainer on_colaboratory
20180628 chainer on_colaboratory20180628 chainer on_colaboratory
20180628 chainer on_colaboratoryKeisuke Umezawa
 
20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjp20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjpHirokuni Uchida
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...Takayoshi Tanaka
 
Microsoft Autonomousへの取り組み
Microsoft Autonomousへの取り組みMicrosoft Autonomousへの取り組み
Microsoft Autonomousへの取り組みHirono Jumpei
 
大企業 vs ベンチャー
大企業 vs ベンチャー大企業 vs ベンチャー
大企業 vs ベンチャーKeisuke Umezawa
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Project Samurai
 

Similar to 20181214 Minecraftで深層強化学習 ハンズオン (6)

20180628 chainer on_colaboratory
20180628 chainer on_colaboratory20180628 chainer on_colaboratory
20180628 chainer on_colaboratory
 
20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjp20180221 chainer on_colaboratory_at_gdcjp
20180221 chainer on_colaboratory_at_gdcjp
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
Microsoft Autonomousへの取り組み
Microsoft Autonomousへの取り組みMicrosoft Autonomousへの取り組み
Microsoft Autonomousへの取り組み
 
大企業 vs ベンチャー
大企業 vs ベンチャー大企業 vs ベンチャー
大企業 vs ベンチャー
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!
 

More from Keisuke Umezawa

C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用Keisuke Umezawa
 
Chainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するにはChainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するにはKeisuke Umezawa
 
20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介Keisuke Umezawa
 
Chainer User Group 「chug」
Chainer User Group 「chug」 Chainer User Group 「chug」
Chainer User Group 「chug」 Keisuke Umezawa
 
Start to Contribute to Chainer!
Start to Contribute to Chainer!Start to Contribute to Chainer!
Start to Contribute to Chainer!Keisuke Umezawa
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowKeisuke Umezawa
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information RetrievalKeisuke Umezawa
 
2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainer2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainerKeisuke Umezawa
 

More from Keisuke Umezawa (9)

C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用C2CマーケットプレイスでのMLの応用
C2CマーケットプレイスでのMLの応用
 
Chainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するにはChainerを使ってプロダクション環境上で推論するには
Chainerを使ってプロダクション環境上で推論するには
 
20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介20181215 Chainer User Group 「chug」のご紹介
20181215 Chainer User Group 「chug」のご紹介
 
Chainer User Group 「chug」
Chainer User Group 「chug」 Chainer User Group 「chug」
Chainer User Group 「chug」
 
Start to Contribute to Chainer!
Start to Contribute to Chainer!Start to Contribute to Chainer!
Start to Contribute to Chainer!
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
 
Rustを支える技術
Rustを支える技術Rustを支える技術
Rustを支える技術
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information Retrieval
 
2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainer2017-05-30_deepleaning-and-chainer
2017-05-30_deepleaning-and-chainer
 

20181214 Minecraftで深層強化学習 ハンズオン

Editor's Notes

  1. エージェントが環境の状態を観測をして行動を選び、その行動に応じて状態が変化して、また新しい観測と報酬がエージェントの元に届く まず環境を初期状態にリセットし、最初の観測を返す 環境はアクションを受け取って4つの値を返せば十分
  2. Q-Functionは観測から、エージェントが取れる行動の価値を予測する アクションの価値の定義にはいろいろある 離散的なら別々に返す 連続的なアクションなら二次形式で返す、など それらを統一的に扱えるよう抽象化している
  3. ポリシーは、観測を受け取って、行動の確率分布を返す ガウシアンだったら、平均と分散をLinearで計算して、distributionに渡して、分布を返す
  4. アルゴリズムごとに異なるエージェントのパラメータを渡して、エージェンとを作る
  5. 環境とインタラクションさせる 環境とエージェントのインタラクションをベタにかけばよい エージェントが観測と報酬をうけとって次の行動を返す 環境が行動を受け取って次の観測、報酬などをかえす このループを回す
  6. 環境とインタラクションさせる 環境とエージェントのインタラクションをベタにかけばよい エージェントが観測と報酬をうけとって次の行動を返す 環境が行動を受け取って次の観測、報酬などをかえす このループを回す
  7. 環境とインタラクションさせる 環境とエージェントのインタラクションをベタにかけばよい エージェントが観測と報酬をうけとって次の行動を返す 環境が行動を受け取って次の観測、報酬などをかえす このループを回す