SlideShare a Scribd company logo
Ver1.1 中井悦司
Twitter @enakai00
オープンクラウド・キャンパス
TensorFlowで学ぶDQN
Open Cloud Campus
2
TensorFlowで学ぶDQN
自己紹介
 中井悦司(なかいえつじ)
– Twitter @enakai00
 日々の仕事
– Cloud Solutions Architect at Google
 昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
– Linuxディストリビューターのエバンジェリスト
好評発売中!
DQN (Deep Q-Network) とは?
Open Cloud Campus
4
TensorFlowで学ぶDQN
DQNの適用例
 ビデオゲームの画面イメージを入力データとして、「取得点数が高くなる操作方
法」を学習
– ゲームのルールは知らなくても、「どの画面で、どの操作をすれば、どのように点数が変
化するか」というデータを「あらゆる画面の状況」に対して取得すれば、原理的には学習
できるはず。
– 囲碁のルールを知らなくても、「どの盤面で、どこに石を打てば、どのように優劣が変化
するか」というデータを「あらゆる盤面」に対して取得すれば、原理的には最強の囲碁ア
ルゴリズムができるのと同じ原理。
https://www.youtube.com/watch?v=r3pb-ZDEKVghttps://www.youtube.com/watch?v=V1eYniJ0Rnk
Open Cloud Campus
5
TensorFlowで学ぶDQN
DQNの理論的枠組み
 「現在の状態 (State) s とその時の操作 (Action) a 」に対して、その直後に得られ
る「点数 (Reward) r と新しい状態 s' 」の4つ組データ (s, a, r, s') があらゆる (s, a)
に対して分かっているものと仮定します。
– 「どの画面で、どの操作をすれば、どのように点数が変化するか」というデータに相当す
るものです。実際には、すべての (s, a) についてのデータを得ることは不可能ですが、十
分たくさんのデータがあるものと考えておいてください。
– 数学的には、r と s' は、(s, a) の関数になっている点に注意してください。
 このようなデータがあれば、単純に考えると、現在の状態 s が与えられた時、次の
ルールで操作を決定すればよい気がします。
          
 ⇒ 「状態 s において、その直後に得られる点数 r が最大になる行動 a を選択する」
 しかしながら、これは必ずしもベストな結果にはなりません。
– たとえば、ブロック崩しの場合、急いでブロックを消して目先の点数を稼ぐよりも、少し
時間がかかっても、隅のブロックを狙った方が、トータルの点数は高くなります。
– 直後の点数ではなく、「長期的なトータルの点数」を最大化する行動 a を見つける方法が
必要なのです。
Open Cloud Campus
6
TensorFlowで学ぶDQN
魔法の「Q 関数」の存在を仮定する
 長期的なトータルの点数を次のように定義します。
–   と  は n ステップ目の状態と操作を表します。 は 0.9 程度の値とします。(トータ
ルの点数が発散しないための計算上の工夫として入れてあります。)
 ここで、どうやって計算するかはまったく謎ですが、次のような都合のよい魔法の
関数 Q(s, a) があったと仮定してみます。
Q(s, a) = 「状態 s において行動 a を選択したとして、さらにその後、常にベストな行動 
    をとり続けた場合のトータルの点数」
 魔法の関数 Q(s, a) が手に入れば、状態 s におけるベストな行動は、次のルールで
決まります。
 ⇒ 「状態 s において、その後にベストな行動をとり続けた場合のトータルの点数が最大に
   なる行動 a を選択する」
Open Cloud Campus
7
TensorFlowで学ぶDQN
数学における「帰納的関係」の魔力
 関数 Q(s, a) の計算方法はまったく謎ですが、少なくとも、次の関係式を満たすこ
とは言えます。
– ここでは、これを「Q関係式」と呼んでおきます。(証明は次ページを参照)
Open Cloud Campus
8
TensorFlowで学ぶDQN
数学における「帰納的関係」の魔力
 証明
– 状態  から出発して、ベストな行動をとり続けた場合に、状態と行動は次のように変化
したとします。
– この時、 Q(s, a) の定義より、次が成り立ちます。
– ここで、最初の状態が  ではなくて だったとすると、そこからベストな行動をとり続
けると、状態と行動は次のように変化します。
– この時、 Q(s, a) の定義より、次が成り立ちます。
– (1) を次のように変形して、(2) を代入します。
– 次の関係に注意すると、「Q関係式」が得られます。
―― (1)
―― (2)
Open Cloud Campus
9
TensorFlowで学ぶDQN
Q関係式を手がかりにQ関数を近似的に求める
 パラメーターを含む関数を適当に用意して、パラメーターをうまく調整した結果、
Q関係式を満たすようにできれば、それが求めるべきQ関数に他なりません。
– 厳密には、必要条件であって十分条件ではありませんが、(一定の条件の下に)十分性が
成り立つことも数学的に示されています。
 具体的には、次の手順でパラメーターを調整していきます。
– (1) 手元にある4つ組データ (s, a, r, s') のすべてを D とします。
– (2) Q関数の候補 Q(s, a | w) を用意します。パラメーター w には、適当な値をセットして
おきます。
– (3) D に含まれるすべて(もしくは、一部)のデータについて、Q関係式の両辺の差(の
2乗)の合計を「誤差関数 E(w)」として計算します。
– (4) 誤差関数の値が小さくなるようにパラメーター w の値を修正して、(3)に戻ります。
 (3)(4)を繰り返して、誤差関数 E(w) が十分小さくなれば、近似的にQ関数が求めら
れたことになります。
– ただし、最初に用意した「パラメーターを含む関数」が単純な関数だと、よい近似にはな
りません。できるだけ複雑な関数を用意するほうが得策です。
Open Cloud Campus
10
TensorFlowで学ぶDQN
できるだけ複雑な関数???
 そっそそそっそそっそそそそっそそそそそそれって・・・・
ディープニューラルネットワーク!
 前述の「パラメーターを含む関数」として、多段ニューラルネットワークを利用し
たものが、「Deep Q-Network」の正体です。
Open Cloud Campus
11
TensorFlowで学ぶDQN
え?ニューラルネットワークって何?
 ものすごく単純化して言うと、単一の関数を表すノードを組み合わせて、複雑な関
数を作り出すテクニックです。
Open Cloud Campus
12
TensorFlowで学ぶDQN
4つ組データの収集方法について
 4つ組データ (s, a, r, s') はどのようにして収集するのでしょうか?
– 基本的には、ランダムなアクションでゲームをプレイしまくって集めます。
– 無限の時間プレイすれば、理屈上は、すべての状態のデータが集まるはずです。
 とはいえ、ランダムなアクションでは(確率的になかなか)得られない状態もある
ので、次のような工夫をします。
– ある程度データが溜まったら、その時点のデータで近似的なQ関数を学習します。
– それ以降は、ランダムなアクションと現時点のQ関数を用いた(現時点でベストと判断さ
れる)アクションを適当な割合でまぜてプレイして、さらにデータを集めます。
– さらに集まったデータで、再度、近似的なQ関数を学習します。
– これを繰り返すと、より上達したQ関数を得ながら、上達したプレイでないと得られない
データを収集していくことが可能になります。
 ランダムなアクションを混ぜずに、その時点のQ関数でベストなプレイのデータだ
け集めたらだめなの?
– だめです。ダメなアクションを含めて、あらゆる状態のデータを集めることで、「短期的
にはダメだけど長期的には成功する」という判断が可能になります。
TensorFlowで学ぶDQN
DQN (Deep Q-Network) の実装例
Open Cloud Campus
14
TensorFlowで学ぶDQN
倒立振子(とうりつしんし)の問題
– Chainerで4層NNを用いた実装例が紹介されています。
– あえて0層〜2層の単純なNNを用いた場合に、結果がどのように変わるかをTensorFlowで
実験しています。
http://qiita.com/ashitani/items/bb393e24c20e83e54577
http://enakai00.hatenablog.com/entry/2016/05/18/125007
Open Cloud Campus
15
TensorFlowで学ぶDQN
倒立振子(とうりつしんし)の問題
詳しくはデモでご紹介!
中井悦司
Twitter @enakai00
オープンクラウド・キャンパス
TensorFlowで楽しく
機械学習を学びましょう!

More Related Content

What's hot

「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
marsee101
 
これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座
NVIDIA Japan
 
画像認識のための深層学習
画像認識のための深層学習画像認識のための深層学習
画像認識のための深層学習
Saya Katafuchi
 
深層学習 第4章 大規模深層学習の実現技術
深層学習 第4章 大規模深層学習の実現技術深層学習 第4章 大規模深層学習の実現技術
深層学習 第4章 大規模深層学習の実現技術
孝昌 田中
 
Deep Learningの技術と未来
Deep Learningの技術と未来Deep Learningの技術と未来
Deep Learningの技術と未来
Seiya Tokui
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using Scala
Taisuke Oe
 
MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearningMIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
Takayoshi Yamashita
 
畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり
畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり
畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり
tm_2648
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Preferred Networks
 
20150414seminar
20150414seminar20150414seminar
20150414seminar
nlab_utokyo
 
20150930
2015093020150930
20150930
nlab_utokyo
 
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
Hokuto Kagaya
 
Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016
Takayoshi Yamashita
 
Dropout Distillation
Dropout DistillationDropout Distillation
Dropout Distillation
Shotaro Sano
 
Meta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkMeta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural Network
Yusuke Watanabe
 
深層学習入門
深層学習入門深層学習入門
深層学習入門
Danushka Bollegala
 
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
Kotaro Asami
 
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
Kazuki Nakajima
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
Yusuke Uchida
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
Deep Learning JP
 

What's hot (20)

「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 
これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座
 
画像認識のための深層学習
画像認識のための深層学習画像認識のための深層学習
画像認識のための深層学習
 
深層学習 第4章 大規模深層学習の実現技術
深層学習 第4章 大規模深層学習の実現技術深層学習 第4章 大規模深層学習の実現技術
深層学習 第4章 大規模深層学習の実現技術
 
Deep Learningの技術と未来
Deep Learningの技術と未来Deep Learningの技術と未来
Deep Learningの技術と未来
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using Scala
 
MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearningMIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
 
畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり
畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり
畳み込みニューラルネットワークが なぜうまくいくのか?についての手がかり
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
 
20150414seminar
20150414seminar20150414seminar
20150414seminar
 
20150930
2015093020150930
20150930
 
Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東Convolutional Neural Network @ CV勉強会関東
Convolutional Neural Network @ CV勉強会関東
 
Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016
 
Dropout Distillation
Dropout DistillationDropout Distillation
Dropout Distillation
 
Meta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkMeta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural Network
 
深層学習入門
深層学習入門深層学習入門
深層学習入門
 
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
 
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
 

Viewers also liked

Tensor flow唐揚サーバーロボット rev1
Tensor flow唐揚サーバーロボット rev1Tensor flow唐揚サーバーロボット rev1
Tensor flow唐揚サーバーロボット rev1
Yuki Nakagawa
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
智啓 出川
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
Takanori Sejima
 
経験過程
経験過程経験過程
経験過程
hoxo_m
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
hoxo_m
 
統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?
Yuto Suzuki
 
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
Hirotaka Nishimiya
 
ベイズ基本0425
ベイズ基本0425ベイズ基本0425
ベイズ基本0425
asato kuno
 
確率論基礎
確率論基礎確率論基礎
確率論基礎
hoxo_m
 
Windows10の展開手法
Windows10の展開手法Windows10の展開手法
Windows10の展開手法
NAOKI ABE
 
MLaPP 2章 「確率」(前編)
MLaPP 2章 「確率」(前編)MLaPP 2章 「確率」(前編)
MLaPP 2章 「確率」(前編)
Shinichi Tamura
 
「数学の世界」発表資料
「数学の世界」発表資料「数学の世界」発表資料
「数学の世界」発表資料
spdbear
 
便利な数を100億個の乱数から算出
便利な数を100億個の乱数から算出便利な数を100億個の乱数から算出
便利な数を100億個の乱数から算出
Toshiyuki Shimono
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説
AtCoder Inc.
 
H231126 統計および確率を利用した予測と判断rev1
H231126 統計および確率を利用した予測と判断rev1H231126 統計および確率を利用した予測と判断rev1
H231126 統計および確率を利用した予測と判断rev1
Kenichi Takara
 
Cpu pipeline basics
Cpu pipeline basicsCpu pipeline basics
Cpu pipeline basics
Shinichiro Niiyama
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
Etsuji Nakai
 

Viewers also liked (20)

Tensor flow唐揚サーバーロボット rev1
Tensor flow唐揚サーバーロボット rev1Tensor flow唐揚サーバーロボット rev1
Tensor flow唐揚サーバーロボット rev1
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
経験過程
経験過程経験過程
経験過程
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
 
統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?
 
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
 
ベイズ基本0425
ベイズ基本0425ベイズ基本0425
ベイズ基本0425
 
確率論基礎
確率論基礎確率論基礎
確率論基礎
 
Windows10の展開手法
Windows10の展開手法Windows10の展開手法
Windows10の展開手法
 
MLaPP 2章 「確率」(前編)
MLaPP 2章 「確率」(前編)MLaPP 2章 「確率」(前編)
MLaPP 2章 「確率」(前編)
 
「数学の世界」発表資料
「数学の世界」発表資料「数学の世界」発表資料
「数学の世界」発表資料
 
便利な数を100億個の乱数から算出
便利な数を100億個の乱数から算出便利な数を100億個の乱数から算出
便利な数を100億個の乱数から算出
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説
 
H231126 統計および確率を利用した予測と判断rev1
H231126 統計および確率を利用した予測と判断rev1H231126 統計および確率を利用した予測と判断rev1
H231126 統計および確率を利用した予測と判断rev1
 
Cpu cache arch
Cpu cache archCpu cache arch
Cpu cache arch
 
Cpu pipeline basics
Cpu pipeline basicsCpu pipeline basics
Cpu pipeline basics
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
 

Similar to TensorFlowで学ぶDQN

DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
Jun Okumura
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
Etsuji Nakai
 
Eucalyptus infra technology
Eucalyptus infra technologyEucalyptus infra technology
Eucalyptus infra technology
Etsuji Nakai
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
Preferred Networks
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
nlab_utokyo
 
ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)
kunihikokaneko1
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境
Yaboo Oyabu
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
Jiro Nishitoba
 
Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷
Taiga Nomi
 
完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク
Etsuji Nakai
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
Retrieva inc.
 
これから始める人の為のディープラーニング基礎講座
これから始める人の為のディープラーニング基礎講座これから始める人の為のディープラーニング基礎講座
これから始める人の為のディープラーニング基礎講座
NVIDIA Japan
 
AIとScrumとスケール
AIとScrumとスケールAIとScrumとスケール
AIとScrumとスケール
Kenji Morita
 
NVIDIA GPU Cloud の紹介
NVIDIA GPU Cloud の紹介NVIDIA GPU Cloud の紹介
NVIDIA GPU Cloud の紹介
NVIDIA Japan
 
Deep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowDeep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlow
Tadaichiro Nakano
 
JAWS-UG Nagoya 20160729
JAWS-UG Nagoya 20160729JAWS-UG Nagoya 20160729
JAWS-UG Nagoya 20160729
陽平 山口
 
20180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol120180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol1
Keisuke Nakata
 
SeRanet
SeRanetSeRanet
SeRanet
Kosuke Nakago
 

Similar to TensorFlowで学ぶDQN (18)

DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
Eucalyptus infra technology
Eucalyptus infra technologyEucalyptus infra technology
Eucalyptus infra technology
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷
 
完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 
これから始める人の為のディープラーニング基礎講座
これから始める人の為のディープラーニング基礎講座これから始める人の為のディープラーニング基礎講座
これから始める人の為のディープラーニング基礎講座
 
AIとScrumとスケール
AIとScrumとスケールAIとScrumとスケール
AIとScrumとスケール
 
NVIDIA GPU Cloud の紹介
NVIDIA GPU Cloud の紹介NVIDIA GPU Cloud の紹介
NVIDIA GPU Cloud の紹介
 
Deep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlowDeep Learning基本理論とTensorFlow
Deep Learning基本理論とTensorFlow
 
JAWS-UG Nagoya 20160729
JAWS-UG Nagoya 20160729JAWS-UG Nagoya 20160729
JAWS-UG Nagoya 20160729
 
20180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol120180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol1
 
SeRanet
SeRanetSeRanet
SeRanet
 

More from Etsuji Nakai

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
Etsuji Nakai
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
Etsuji Nakai
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Etsuji Nakai
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
Etsuji Nakai
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
Etsuji Nakai
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
Etsuji Nakai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
Etsuji Nakai
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
Etsuji Nakai
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
Etsuji Nakai
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
Etsuji Nakai
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
Etsuji Nakai
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
Etsuji Nakai
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
Etsuji Nakai
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
Etsuji Nakai
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
Etsuji Nakai
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
Etsuji Nakai
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Etsuji Nakai
 
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Etsuji Nakai
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
Etsuji Nakai
 

More from Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
 
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
 

Recently uploaded

"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo Lab
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
Ayachika Kitazaki
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
ARISE analytics
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
Toru Tamaki
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
Natsutani Minoru
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
Sony - Neural Network Libraries
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
CRI Japan, Inc.
 
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Shinichi Hirauchi
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
Toru Tamaki
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo Lab
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
chisatotakane
 

Recently uploaded (15)

"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
 
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
 

TensorFlowで学ぶDQN

  • 2. Open Cloud Campus 2 TensorFlowで学ぶDQN 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Cloud Solutions Architect at Google  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) – Linuxディストリビューターのエバンジェリスト 好評発売中!
  • 4. Open Cloud Campus 4 TensorFlowで学ぶDQN DQNの適用例  ビデオゲームの画面イメージを入力データとして、「取得点数が高くなる操作方 法」を学習 – ゲームのルールは知らなくても、「どの画面で、どの操作をすれば、どのように点数が変 化するか」というデータを「あらゆる画面の状況」に対して取得すれば、原理的には学習 できるはず。 – 囲碁のルールを知らなくても、「どの盤面で、どこに石を打てば、どのように優劣が変化 するか」というデータを「あらゆる盤面」に対して取得すれば、原理的には最強の囲碁ア ルゴリズムができるのと同じ原理。 https://www.youtube.com/watch?v=r3pb-ZDEKVghttps://www.youtube.com/watch?v=V1eYniJ0Rnk
  • 5. Open Cloud Campus 5 TensorFlowで学ぶDQN DQNの理論的枠組み  「現在の状態 (State) s とその時の操作 (Action) a 」に対して、その直後に得られ る「点数 (Reward) r と新しい状態 s' 」の4つ組データ (s, a, r, s') があらゆる (s, a) に対して分かっているものと仮定します。 – 「どの画面で、どの操作をすれば、どのように点数が変化するか」というデータに相当す るものです。実際には、すべての (s, a) についてのデータを得ることは不可能ですが、十 分たくさんのデータがあるものと考えておいてください。 – 数学的には、r と s' は、(s, a) の関数になっている点に注意してください。  このようなデータがあれば、単純に考えると、現在の状態 s が与えられた時、次の ルールで操作を決定すればよい気がします。             ⇒ 「状態 s において、その直後に得られる点数 r が最大になる行動 a を選択する」  しかしながら、これは必ずしもベストな結果にはなりません。 – たとえば、ブロック崩しの場合、急いでブロックを消して目先の点数を稼ぐよりも、少し 時間がかかっても、隅のブロックを狙った方が、トータルの点数は高くなります。 – 直後の点数ではなく、「長期的なトータルの点数」を最大化する行動 a を見つける方法が 必要なのです。
  • 6. Open Cloud Campus 6 TensorFlowで学ぶDQN 魔法の「Q 関数」の存在を仮定する  長期的なトータルの点数を次のように定義します。 –   と  は n ステップ目の状態と操作を表します。 は 0.9 程度の値とします。(トータ ルの点数が発散しないための計算上の工夫として入れてあります。)  ここで、どうやって計算するかはまったく謎ですが、次のような都合のよい魔法の 関数 Q(s, a) があったと仮定してみます。 Q(s, a) = 「状態 s において行動 a を選択したとして、さらにその後、常にベストな行動      をとり続けた場合のトータルの点数」  魔法の関数 Q(s, a) が手に入れば、状態 s におけるベストな行動は、次のルールで 決まります。  ⇒ 「状態 s において、その後にベストな行動をとり続けた場合のトータルの点数が最大に    なる行動 a を選択する」
  • 7. Open Cloud Campus 7 TensorFlowで学ぶDQN 数学における「帰納的関係」の魔力  関数 Q(s, a) の計算方法はまったく謎ですが、少なくとも、次の関係式を満たすこ とは言えます。 – ここでは、これを「Q関係式」と呼んでおきます。(証明は次ページを参照)
  • 8. Open Cloud Campus 8 TensorFlowで学ぶDQN 数学における「帰納的関係」の魔力  証明 – 状態  から出発して、ベストな行動をとり続けた場合に、状態と行動は次のように変化 したとします。 – この時、 Q(s, a) の定義より、次が成り立ちます。 – ここで、最初の状態が  ではなくて だったとすると、そこからベストな行動をとり続 けると、状態と行動は次のように変化します。 – この時、 Q(s, a) の定義より、次が成り立ちます。 – (1) を次のように変形して、(2) を代入します。 – 次の関係に注意すると、「Q関係式」が得られます。 ―― (1) ―― (2)
  • 9. Open Cloud Campus 9 TensorFlowで学ぶDQN Q関係式を手がかりにQ関数を近似的に求める  パラメーターを含む関数を適当に用意して、パラメーターをうまく調整した結果、 Q関係式を満たすようにできれば、それが求めるべきQ関数に他なりません。 – 厳密には、必要条件であって十分条件ではありませんが、(一定の条件の下に)十分性が 成り立つことも数学的に示されています。  具体的には、次の手順でパラメーターを調整していきます。 – (1) 手元にある4つ組データ (s, a, r, s') のすべてを D とします。 – (2) Q関数の候補 Q(s, a | w) を用意します。パラメーター w には、適当な値をセットして おきます。 – (3) D に含まれるすべて(もしくは、一部)のデータについて、Q関係式の両辺の差(の 2乗)の合計を「誤差関数 E(w)」として計算します。 – (4) 誤差関数の値が小さくなるようにパラメーター w の値を修正して、(3)に戻ります。  (3)(4)を繰り返して、誤差関数 E(w) が十分小さくなれば、近似的にQ関数が求めら れたことになります。 – ただし、最初に用意した「パラメーターを含む関数」が単純な関数だと、よい近似にはな りません。できるだけ複雑な関数を用意するほうが得策です。
  • 10. Open Cloud Campus 10 TensorFlowで学ぶDQN できるだけ複雑な関数???  そっそそそっそそっそそそそっそそそそそそれって・・・・ ディープニューラルネットワーク!  前述の「パラメーターを含む関数」として、多段ニューラルネットワークを利用し たものが、「Deep Q-Network」の正体です。
  • 11. Open Cloud Campus 11 TensorFlowで学ぶDQN え?ニューラルネットワークって何?  ものすごく単純化して言うと、単一の関数を表すノードを組み合わせて、複雑な関 数を作り出すテクニックです。
  • 12. Open Cloud Campus 12 TensorFlowで学ぶDQN 4つ組データの収集方法について  4つ組データ (s, a, r, s') はどのようにして収集するのでしょうか? – 基本的には、ランダムなアクションでゲームをプレイしまくって集めます。 – 無限の時間プレイすれば、理屈上は、すべての状態のデータが集まるはずです。  とはいえ、ランダムなアクションでは(確率的になかなか)得られない状態もある ので、次のような工夫をします。 – ある程度データが溜まったら、その時点のデータで近似的なQ関数を学習します。 – それ以降は、ランダムなアクションと現時点のQ関数を用いた(現時点でベストと判断さ れる)アクションを適当な割合でまぜてプレイして、さらにデータを集めます。 – さらに集まったデータで、再度、近似的なQ関数を学習します。 – これを繰り返すと、より上達したQ関数を得ながら、上達したプレイでないと得られない データを収集していくことが可能になります。  ランダムなアクションを混ぜずに、その時点のQ関数でベストなプレイのデータだ け集めたらだめなの? – だめです。ダメなアクションを含めて、あらゆる状態のデータを集めることで、「短期的 にはダメだけど長期的には成功する」という判断が可能になります。
  • 14. Open Cloud Campus 14 TensorFlowで学ぶDQN 倒立振子(とうりつしんし)の問題 – Chainerで4層NNを用いた実装例が紹介されています。 – あえて0層〜2層の単純なNNを用いた場合に、結果がどのように変わるかをTensorFlowで 実験しています。 http://qiita.com/ashitani/items/bb393e24c20e83e54577 http://enakai00.hatenablog.com/entry/2016/05/18/125007