"Learning Physical Intuition of Block Towers by Example" @ DL Hacks
2016/04/28
東京大学大学院工学系研究科技術経営戦略学専攻 松尾研究室
黒滝 紘生[email protected]
概要
・ Learning Physical Intuition of Block Towers by Example
・ Adam Lerer, Sam Gross, Rob Fergus・ Facebook AI Research・ Cited: 1 (Google Scholar)・ http://arxiv.org/abs/1603.01312
・要点
- 「積み木が崩れるかどうか」 + 「どこに落ちるか」を予測させるタスク
- ゲームエンジン内で、大量の積み木パターンを生成して学習 / 実験
- さらに、実世界の実験データでも良い結果を得た
- 人間並みの予測結果を得た
- フレームワーク (UETorch) を公開した
3
タスク 1/2
・左 : ゲーム内に生成した積み木 右 : 実世界の積み木 これが、支えを外したとき、下図のように崩れるか否かを予測する。
4
タスク 2/2
・上 : ゲーム空間内で、積み木が崩れる様子 (1 秒ごと ) 下 : この積み木の動作に対応する「マスク」。
・初期状態の画像だけから、このマスクを予測する。
5
結果の様子 1/2
・上が正しいマスク、下がモデルによる (0 秒時点での ) 予測。 多くのケースでは正しく予測できている。 ( 論文 )
6
結果の様子 2/2
・上が正しいマスク、下がモデルによる (0 秒時点での ) 予測。 予測が難しいケースもある。
7
選んだ理由
・ドワンゴのハッカソンに行ってきた (Web ページにて説明 )・「類似研究も出ている」とおっしゃっていたので、発掘してみた
8
補足
・もう一つ、もっと行動学習っぽい論文が見つかった・こっちは Q 学習 + Minecraft を扱ってる
・ Exploratory Gradient Boosting for Reinforcement Learning in Complex Domains
・ David Abel, Alekh Agarwal, Fernando Diaz, Akshay Krishnamurthy, Robert E. Schapire
・ http://arxiv.org/abs/1603.04119
9
Contents
10
1. Introduction
2. Methods
3. Results
4. Discussion
1. Introduction 1/3
・実世界での物理的な常識や直感を学習させたい
・ディープで生データから、高レベルの物理的常識の学習に成功した研究はない
・ロボットの利用も一つの方法だが、ここではゲームエンジンを使った
- ゲームエンジンは、確立した物理シミュレーション + 行動環境としても使える。
- エンジン "Unreal Engine 4" の内部スクリプトは Lua で書ける。 そこで、このエンジンに、 Torch の Deep Learning コードを組み込んだ。
- ( 注 ) この研究では、行動学習そのものは行っていない
・「積み木が崩れるか否か ? 」「積み木が最後どこに行くか ? 」の 2 つを学習させた
11
1. Introduction 2/3
・提案手法ネットワークの "PhysNet" は、以下の既存手法を組み合わせている( 後述 )
- ResNet-34 ( 共通部分 )
- Googlenet ( 落下判定 )
- DeepMask のアレンジ ( マスク予測 )
12
1. Introduction 3/3
【貢献】
・ Convnet による、静的安定性の予測- 実世界の積み木についても汎化できた- 訓練時に見なかった、新たな物理的状況にも汎化できた。
・力学的な予測 - 積み木が落ちる軌跡も予測できた。
- 加速度や運動量を捉えたといえる。
・人間の被験者との比較- 実データでは同じぐらい、 ( ゲーム内の ) 人工データでは上回った。- 人間の判断と、高い相関をもっていた。
・フレームワーク UETorch の公開- オープンソースで無料公開
13
Contents
14
1. Introduction
2. Methods
3. Results
4. Discussion
2.1 UETorch
・ Unreal Engine4 (UE4) のゲームループに直接組み込まれた、Lua/Torch の機械学習環境
・ Lua はゲームスクリプトの代表的言語なので、相性がよい
・スクリーンショット、セグメンテーションマスク、 optical フロー、ゲームの入力操作などの機能もつけた
・ http://github.com/facebook/UETorch
15
2.2 Data Collection
・人工データ
- (UETorch 内で、 )2〜 4個の色ブロックをランダムに置いた- 場所、回転、カメラの位置、背景、光源などもランダム- 8 フレーム / 秒でスクリーンショットを記録- 全部合わせて 180,000 シミュレーション ( 積み木の個数などはバランス取った )- そのうち 12,288 シミュレーションは、テストデータ
・実世界データ
- 4 つの積み木に色を塗り、白い背景においた- 初めは棒で上側をおさえているので、崩れない。 棒を離すと、崩れたり崩れなかったりする。- その様子をカメラ動画として撮った。- 合わせて 493例ができた
16
2.3 Human Subject Methodology
・ 10 人の人間の被験者をよんで、同じ実験をやってもらった (数は減らした )
- 人工データと実データの両方
17
2.4 Model Architectures
・図は、提案手法の "PhysNet"
・上の分岐がマスク予測 (ResNet34 + DeepMask のアレンジ ) 下の分岐が落下予測 (ResNet34 + Googlenet)
・マスクセグメンテーションから、マスクの未来予測へとアレンジ。
18
2.5 Evaluation
・落下予測の評価は、予測精度で行った。 また、「特定のブロック高さを抜いて学習」→「抜いて置いた高さでテスト」の転移学習の評価も行った。
・マスク予測は、「 mean mask IoU 」およびピクセル毎の対数尤度 IoU = intersection over union
( マスク 2色が被ってしまってるピクセル数 ) / (2色を合わせたピクセル数 )
19
Contents
20
1. Introduction
2. Methods
3. Results
4. Discussion
3.1 Fall Prediction Results 1/3
・落下予測の精度・ Googlenet を、 Imagenet で pretraining すると、
実世界データでの精度が向上することに注目。人工データは変わらない。
21
3.1 Fall Prediction Results 2/3
・画像の一部を、ガウシアンノイズでぼやかす。 →画像のどの部分が、予測に効いているのか知りたい。
・図 A はかけたノイズの様子。
・図 B-D で、- 緑のヒートマップの部分を隠すと、
「落ちる」の確信度が増加。
- 赤のヒートマップの部分を隠すと、 「落ちる」の確信度が減少。
・ B の不安定そうな部分を隠すと、「落ちる」と思いにくくなる。
青 /緑ブロックの接地面の 不安定さを認識している、と取れる。
22
3.1 Fall Prediction Results 3/3
・人間との比較。 赤 : 人間 青 : 提案モデル (PhysNet) 。・人工データでは上回り、実世界データでも並んだ。・相関係数の比較において、人間 -PhysNet が、人間 - 正解よりも近かった。
23
3.2 Mask Prediction Results
・マスク予測の精度
24
3.3 Evaluation on Held-Out Number of Blocks 1/2
・ブロック {3個 or 4個 } のパターンを抜いて学習させたネットワークを、 抜いた個数パターンでテストした結果。 (青い部分が、学習しなかったパター
ン )
・学習しなかったパターンの精度は落ちたが、やはり人間と比較できる。
25
3.3 Evaluation on Held-Out Number of Blocks 2/2
・ブロック {3個 or 4個 } のパターンを抜いて学習させたネットワークを、 抜いた個数パターンでテストしたときのマスク。
26
Contents
27
1. Introduction
2. Methods
3. Results
4. Discussion
4. Discussion
・ボトムアップの CNN で、人間レベルのブロック予測ができた。
・ Imagenet で pretraining していれば、実世界の画像にも汎化 / 対応できる。
・訓練で見てないタワーの高さにも対応できるので、物理法則を捉えていると言えそうだ。
・ UETorch は、他の機械学習の実験にも有用なはず。
28