SlideShare a Scribd company logo
1 of 46
Download to read offline
DQNを
実装してみて学んだこと
仲田圭佑
2018/08/30 Platinum Data Meetup vol.1
自己紹介
● 仲田圭佑 (なかた けいすけ)
● 2015新卒でブレインパッド (BP) に入社し、現在4年目
● 役職:データサイエンティスト?機械学習エンジニア?
○ BP の受託分析部門における DS/MLE は結構フロントに立つ機会も多め?な
気がする
■ (他の会社を知らないのでわからない )
● 強化学習に興味があり色々調べている
免責
● この発表は会社の見解とは一切関係ありません
● アルゴリズムに関する私の理解が誤っている可能性もありま
す
○ なにかあったら教えてほしいです
今日話すこと
● 今日話すこと
○ DQN を実装してみた
○ つらかった
○ DQN を実装するとき参考になる (した) 資料集
● 今日話さないこと
○ 強化学習とは
DQN: Deep Q Network
● DeepMind が NIPS 2013 で発表した、Atari 2600 というレト
ロゲームを強化学習でプレイさせるアルゴリズム
● その後、2015 年に Nature で (改善版を) 発表
https://www.youtube.com/watch?v=TmPfTpjtdgg
DeepMind が YouTube に公開している動画。
何かしら似たようなものを見たことがあると思います
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
DQN のテクニックとして有名なもの
DQN の学習を成功させるための工夫として有名なもの以外 (主
観) の話をします。例えば以下は話しません:
● fixed target network
● experience replay
● ε の焼きなまし
● エピソード開始時の NOOP 行動
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
DeepMind 実装が読みにくい
https://github.com/deepmind/dqn で公開されている
DeepMind 自身による DQN の実装。しかし、
● Torch (PyTorch じゃないよ)
● Atari の独自ラッパ
● 研究用スクリプトっぽい雰囲気
等が組み合わさって非常に読みにくい。
(深層強化学習の始祖的なものなので仕方ない?)
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
NIPS版、Nature版
前述の通り、DQN には二種類の論文が存在する:
● NIPS 2013 版 [1]
● Nature 2015 版 [2]
大抵 Nature 版のことを指しているが、紛らわしい。
現在 DeepMind によってコードが公開されているのは Nature 版
のほう。(DQN 3.0 [3])
[1]: Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing Atari with Deep Reinforcement Learning.
[2]: Mnih, V., et. al. (2015). Human-level control through deep reinforcement learning.
[3]: https://github.com/deepmind/dqn
NIPS版、Nature版
NIPS 版 Nature 版
even/odd frame 処理 なし? あり
frame のリサイズ処理 cropping している? 単純なリサイズ?
アーキテクチャ Conv(8x8, 16 filters, 4 strides)
-> Conv(4x4, 32, 2)
-> Dense(256)
-> Dense(n_actions)
Conv(8x8, 32, 4)
-> Conv(4x4, 64, 2)
-> Conv(3x3, 64, 1)
-> Dense(512)
-> Dense(n_actions)
ハイパーパラメータ 謎が多い 詳しく載っている。コードも公
開されている
他にも違いあるかも・・・?
NIPS 版は明記されていないだけで、本当はしている処理とかも多そうな印象
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
even/odd frame 処理
Nature版より:
(抄訳) ゲーム機の性能上、偶数/奇数フレームにしか出現しな
いオブジェクトがあるので、前の frame との max を取る
この処理は言及されることが少ない気がする
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
frame のリサイズ処理
NIPS 版より:
(抄訳) まずグレスケにしてから 110x84 にリサイズし、その後
84x84 領域をクロッピング
frame のリサイズ処理
Nature 版より:
(抄訳) グレスケにしてから 84x84 にリサイズ
→ NIPS 版の処理 (クロッピング) が使われていることはまずない
気がする。多少アスペクト比が歪むが、Nature版のリサイズのみ
の処理が普通使われる?
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
ちゃんと学習できてるのかわからない問題
深層強化学習は正しく実装できたのかどうかわかりづらい (バグ
があってもなんとなく動くが、学習がうまく進まない)
とよく言われているのを聞く。実際、その通りだと感じた。
最初、実装を間違えていたときの
学習中の報酬グラフ (Alien)。
なんかそれっぽいが
実は全然性能が出ていない
ちゃんとした学習中の報酬グラフ。スケールやエ
ピソードの数え方が合っていないので見にくい
が、上の図のスケールで比べると 10倍くらい得ら
れている報酬が違う。
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
frame skip, frame stack, update frequency
これらの値はすべて「4」である。とても紛らわしい。
frame skip
DQN では、「一度行動を選ぶと、その行動を暗黙に4frameぶん
繰り返す」という処理が入っている。
それが frame skip。
論文中では「action repeat」「k」とも呼ばれている。
OpenAI Gym の Atari 環境について
Python から手軽に使える OpenAI Gym の Atari 環境にはPong-v0, Pong-v4,
PongDeterministic-v0, PongNoFrameskip-v4 というような環境の種類名がある。
● v0/v4 どっち?
○ v0 は使ってはいけません 。入力した行動が25%の確率で無視されます。 v4 を使いましょう。
● Deterministic/<無印>/NoFrameskip どれ?
○ <無印> を使ってはいけません 。2-4 のランダムな回数、内部で行動が繰り返されます。
Deterministic は4回固定繰り返し、NoFrameskip は繰り返しなしです。
結論:「XXXXNoFrameskip-v4 を使い、frame-skip 処理を自分でおこなう」か、
「XXXXDeteministic-v4を使い、frame-skip 処理は環境に任せるか」のどちらかだけが
選択肢。それ以外の環境名の選択はその時点で再現が不可能となる
(ちなみに、even/odd frame 問題を考えると、NoFrameskip-v4 一択)
詳しくはこちら(宣伝):OpenAI Gym の Atari Environment の命名規則と罠について- Qiita
frame stack
モデルに入力する状態を、過去4フレームぶん結合したものとする
処理のこと。
ここで生まれる疑問:
「過去4フレームって、skip されたものを含んで4フレーム?除いて
4フレーム?」
→ 結論:skip されたフレームは除いて4フレーム
つまり
時間の流れ
実際のゲーム画面
直前のフレームとの max 処理
state
grayscale→resize→結合
同じ
行動
同じ
行動
model
行動選択
同じ
行動
state
model
行動選択
同じ
行動
同じ
行動
同じ
行動
Q) state の作り方それでいいの? frame-skip と frame-stack が両方とも 4 ってことは、skip した frame を stack し
ろって意味じゃないの? → A) これで良い (らしい)
update frequency
モデルを (経験再生を使って) 学習するのは、行動選択4回ごとに
1回だけ
「ゲームのフレーム4回ごとに1学習」ではなく、
「行動選択4回ごとに1学習」
つまり
時間の流れ
実際のゲーム画面
直前のフレームとの max 処理
state
grayscale→resize→結合
同じ
行動
同じ
行動
model
行動選択
同じ
行動
state
model
行動選択
同じ
行動
同じ
行動
同じ
行動
学習
最後に学習してから 4回目の
行動選択まで学習しない
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
frame で数えるの?step で数えるの?
frame-skip が入っているため、「ゲームのフレームの個数」は「行
動選択 (step)」の回数の4倍になる。
論文では所々で「n frame ごとに」のような表現があるが、これは
「ゲームのフレーム」ではなく「行動選択」で数える
(論文と DeepMind のコードを照らし合わせて検証)
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
reward clipping
報酬をクリッピングする有名な処理。
しかし、これは [-1, 1] にクリッピングするという意味ではなく、報酬
の符号を用いる (0は0のまま) という意味。
つまり与えられる報酬は {-1, 0, +1} の3種類のうちのどれかに必
ずなっている。
(が、Pong/Breakout/Alien 等の環境では絶対値が1以下の報酬
が与えられることはないので、いわゆる clipping 処理でも等価で
はある・・・他のゲームでは何かあるのかもしれない)
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
Huber loss
DQN のロス関数が Huber loss であることは色んな所で言及さ
れている
しかし、論文の該当部分は非常に混乱を招く表現が使われている
Huber loss
Nature 版より:
(抄訳) 誤差項 r+γmaxQ’-Q を -1 から 1 に clipping する。
絶対値関数の微分値は -1 か 1 になるので、二乗誤差の
(-1, 1) の外側では絶対値誤差を用いることに対応する。
Huber loss
(前提) Q学習の更新式を導けるロス関数は:
今、前半の文をナイーブに解釈すると:
これはおかしい!こんなことをしたら、[-1, 1] の外側では勾配がゼロになってしまい、学
習ができない
TensorFlow で DQN を実装し、多くのスター数を集めているレポジトリでも最初間違って実装していた
https://github.com/devsisters/DQN-tensorflow/issues/16
誤差項 r+γmaxQ’-Q を -1 から 1 に clipping する。
絶対値関数の微分値は -1 か 1 になるので、二乗誤差の
(-1, 1) の外側では絶対値誤差を用いることに対応する。
Huber loss
後半の文が言っているのは、まさに Huber loss そのもの。
では前半の文が言っているのは、結局何???
→ Q学習の更新式 (ロス関数の微分) の更新部を clipping せよと言っている。
(前提) Q学習の更新式:
つまり、 Q(s, a) = Q(s, a) + α * clip(TD, [-1, 1]) で更新しろ、ということ。
実際にこの更新式を導くことのできるロス関数は Huber loss だから辻褄があう。
誤差項 r+γmaxQ’-Q を -1 から 1 に clipping する。
絶対値関数の微分値は -1 か 1 になるので、二乗誤差の
(-1, 1) の外側では絶対値誤差を用いることに対応する。
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
ライフを失うとエピソード終了
こんなことは論文に書いてない (たぶん) が、DeepMind の実装で
は確かにそうなっている
(正確に言えば、ライフを失うと「エピソード終了」ではなく、「疑似
の terminal 信号を送り、エピソード続行」)
ライフを失うとリスポーンしたりするので、その不連続性を嫌った
のだろう。。。
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
RMSPropGraves
NIPS 版より:
Nature 版より:
実際に行われていること:
RMSPropGraves と呼ばれる optimizer が使われています。
Keras にはない。TensorFlow にはたぶんない。Chainer にはあ
る。PyTorch は知らない。
学んだこと一覧
● よく言われるシリーズ
○ DeepMind 実装が読みにくい
○ NIPS版、Nature版
○ even/odd frame 処理
○ frame の cropping/resize 処理
○ ちゃんと学習できてるのかわからない問題
● 紛らわしいシリーズ
○ frame skip, frame stack, update frequency
○ それは frame で数えるの?step で数えるの?
○ reward clipping
○ huber_loss
● そんなのわかるわけないだろシリーズ
○ ライフを失うとエピソード終了
○ RMSpropGraves
○ sum(huber_loss)
sum(huber_loss)
こんなことは論文に書いてない (たぶん) し、普通思わない
何がおこなわれているか:「誤差関数を、バッチ次元で平均を取る
のではなく、総和を取る」
普通、ミニバッチ学習ではバッチサイズの影響をなるべく受けない
ように総和ではなく平均を取る・・・
なぜこんな処理になっているのかはよくわからない。
当時の常識が今とは違ったのかもしれない。
DQN の学習率をやたら低く設定する必要があるのはこれが原因では・・・
参考資料集
● DQN NIPS 版 (2013)
○ https://arxiv.org/abs/1312.5602
● DQN Nature 版 (2015)
○ https://web.stanford.edu/class/psych209/Readings/MnihEtAlHassibis15N
atureControlDeepRL.pdf
● DeepMind 実装 (DQN3.0)
○ https://github.com/deepmind/dqn
○ Nature 版の実装にあたる (論文中には google sites で公開していると書か
れているが移動した?)
参考資料集
● ALE の lua ラッパ
○ https://github.com/deepmind/alewrap
○ 正確に言えば、DeepMind の fork 版であるdeepmind/xitari のラッパ
参考資料集
● Keras-rl
○ https://github.com/keras-rl/keras-rl
● ChainerRL
○ https://github.com/chainer/chainerrl
● RMSPropGraves について
○ https://arxiv.org/abs/1308.0850
● いまさらだけどTensorflowでDQN(完全版)を実装する - Qiita
● DQNの生い立ち + Deep Q-NetworkをChainerで書いた -
Qiita
参考資料集
● Speeding up DQN on PyTorch: how to solve Pong in 30
minutes
● Frame Skipping and Pre-Processing for Deep Q-Networks
on Atari 2600 Games
● Beat Atari with Deep Reinforcement Learning! (Part 2:
DQN improvements)

More Related Content

What's hot

High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data scienceTakami Sato
 
なにわTech20170218(tpu) tfug
なにわTech20170218(tpu) tfugなにわTech20170218(tpu) tfug
なにわTech20170218(tpu) tfugNatsutani Minoru
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解するAtsukiYamaguchi1
 
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会Shotaro Sano
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろうShingo Omura
 
Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)
Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)
Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)Ohsawa Goodfellow
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Ryosuke Okuta
 
CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...
CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...
CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...禎晃 山崎
 
畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstmtak9029
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用Yuya Unno
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能Yuya Unno
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなものHiroshi Watanabe
 
D言語会議#1
D言語会議#1D言語会議#1
D言語会議#19rnsr
 
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...Yuta Kikuchi
 
[ICLR2016] 採録論文の個人的まとめ
[ICLR2016] 採録論文の個人的まとめ[ICLR2016] 採録論文の個人的まとめ
[ICLR2016] 採録論文の個人的まとめYusuke Iwasawa
 

What's hot (20)

High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
なにわTech20170218(tpu) tfug
なにわTech20170218(tpu) tfugなにわTech20170218(tpu) tfug
なにわTech20170218(tpu) tfug
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
 
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)
Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)
Learning Deep Architectures for AI (第 3 回 Deep Learning 勉強会資料; 松尾)
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
 
CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...
CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...
CluBERT: A Cluster-Based Approach for Learning Sense Distributions in Multipl...
 
畳み込みLstm
畳み込みLstm畳み込みLstm
畳み込みLstm
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用
 
BERT+XLNet+RoBERTa
BERT+XLNet+RoBERTaBERT+XLNet+RoBERTa
BERT+XLNet+RoBERTa
 
comp_pfiseminar
comp_pfiseminarcomp_pfiseminar
comp_pfiseminar
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能
 
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
短距離ハイブリッド並列分子動力学コードの設計思想と説明のようなもの
 
D言語会議#1
D言語会議#1D言語会議#1
D言語会議#1
 
Extract and edit
Extract and editExtract and edit
Extract and edit
 
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...
Learning Phrase Representations using RNN Encoder-Decoder for Statistical Mac...
 
[ICLR2016] 採録論文の個人的まとめ
[ICLR2016] 採録論文の個人的まとめ[ICLR2016] 採録論文の個人的まとめ
[ICLR2016] 採録論文の個人的まとめ
 
Paxos
PaxosPaxos
Paxos
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 

Similar to 20180830 implement dqn_platinum_data_meetup_vol1

Tensor flow勉強会3
Tensor flow勉強会3Tensor flow勉強会3
Tensor flow勉強会3tak9029
 
Tf勉強会(4)
Tf勉強会(4)Tf勉強会(4)
Tf勉強会(4)tak9029
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用Seiya Tokui
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggugkimukou_26 Kimukou
 
dl-with-python01_handout
dl-with-python01_handoutdl-with-python01_handout
dl-with-python01_handoutShin Asakawa
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)Yoshifumi Yamaguchi
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
Windowsユーザのlinux入門(20130126)
Windowsユーザのlinux入門(20130126)Windowsユーザのlinux入門(20130126)
Windowsユーザのlinux入門(20130126)Kimiyuki Yamauchi
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化marsee101
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural NetworksSeiya Tokui
 
111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッションShohei Hido
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門TanUkkii
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門ryos36
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さんAkira Shibata
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例Ryota Murohoshi
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 

Similar to 20180830 implement dqn_platinum_data_meetup_vol1 (20)

Tensor flow勉強会3
Tensor flow勉強会3Tensor flow勉強会3
Tensor flow勉強会3
 
Tf勉強会(4)
Tf勉強会(4)Tf勉強会(4)
Tf勉強会(4)
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
 
dl-with-python01_handout
dl-with-python01_handoutdl-with-python01_handout
dl-with-python01_handout
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
Windowsユーザのlinux入門(20130126)
Windowsユーザのlinux入門(20130126)Windowsユーザのlinux入門(20130126)
Windowsユーザのlinux入門(20130126)
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural Networks
 
詳解! Decimal
詳解! Decimal詳解! Decimal
詳解! Decimal
 
111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 

20180830 implement dqn_platinum_data_meetup_vol1