[cv勉強会]active object localization with deep reinfocement learning

41
32CV勉強会「ICCV2015読み会」 Active Object Localization with Deep Reinforcement Learning 皆川卓也(takmin)

Upload: takuya-minagawa

Post on 21-Feb-2017

4.051 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

第32回 CV勉強会「ICCV2015読み会」Active Object Localization with Deep

Reinforcement Learning

皆川卓也(takmin)

Page 2: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

自己紹介

2

テクニカル・ソリューション・アーキテクト

皆川 卓也(みながわ たくや)フリーエンジニア(ビジョン&ITラボ)「コンピュータビジョン勉強会@関東」主催博士(工学)

略歴:1999-2003年日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリセールス、プロジェクトマネジメント、サポート等の業務に従事

2004-2009年コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事

2007-2010年慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻単位取得退学後、博士号取得(2014年)

2009年-現在フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事

Page 3: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

紹介論文

Active Object Localization with Deep Reinforcement Learning

Juan C. Caicedo, and Svetlana Lazebnik

物体検出のタスクにDeep Q-Networkを使用した

Page 4: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Deep Q-Network (DQN)

Q Learningという強化学習のアルゴリズムにConvolutional Neural Networkを適用

以下の論文で、機械にコンピュータゲームのやり方を学習させ、3/7で人間以上のスコア

Mnih, V., et al., “Playing Atari with Deep Reinforcement Learning”, NIPS Deep Learning Workshop, 2013

Mnih, V., et al., “Human-level control through deep reinforcement learning”, Nature, 518 (7540), 529–533. 2015

Page 5: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

強化学習とは?

「ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。エージェントは行動を選択することで環境から報酬を得る。強化学習は一連の行動を通じて報酬が最も多く得られるような方策(policy)を学習する。」(Wikipedia)

Page 6: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

強化学習とは?

エージェント

状態: 𝑠

時間: t

アクション: 𝑎

観測方策: 𝜋(𝑠)

Page 7: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

強化学習とは?

エージェント

状態: 𝑠

時間: t

アクション: 𝑎

観測方策: 𝜋(𝑠)

Page 8: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

強化学習とは?

エージェント

時間: t

アクション: 𝑎

方策: 𝜋(𝑠)

状態: 𝑠′

Page 9: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

強化学習とは?

エージェント

状態: 𝑠′

時間: t+1

報酬: 𝑟𝑡

観測方策: 𝜋(𝑠′)

学習で求める

Page 10: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

強化学習とは?

どのような方策を学習する?

以下の報酬の和の期待値が最大となるように今の行動を決定する

𝑅𝑡 = 𝑟𝑡 + 𝛾𝑟𝑡+1 + 𝛾2𝑟𝑡+2 +⋯+ 𝛾𝑇−𝑡𝑟𝑇報酬の和

将来の報酬

減衰率

𝜋∗(𝑠) = argmax𝑎

𝔼 𝑅𝑡|𝑠𝑡 = 𝑠, 𝑎𝑡 = 𝑎

状態sの時、報酬の和が最大となりそうな行動aを選ぶ

Page 11: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

𝑄∗(𝑠, 𝑎)

𝜋∗(𝑠) = argmax𝑎

𝔼 𝑅𝑡|𝑠𝑡 = 𝑠, 𝑎𝑡 = 𝑎

状態s、行動aの組み合わせの良し悪しをスコアで教えてくれる関数

状態sの時、報酬の和が最大となりそうな行動aを選ぶ

状態sで行動aをとったとき、その後最適な行動をとり続けた時に得られる報酬の和の期待値

𝜋の代わりに関数Qを学習する

Page 12: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

𝜋∗(𝑠) = argmax𝑎

𝑄∗(𝑠, 𝑎)

𝜋の代わりに関数Qを学習する

関数𝑄のパラメータ𝜃を学習により求める

𝑄(𝑠, 𝑎; 𝜃∗)

𝜃𝑖+1 = 𝜃𝑖 − 𝛼𝛻𝜃𝑖𝐿(𝜃𝑖)

学習率

確率的勾配降下法(SGD)

損失関数

Page 13: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

𝐿(𝜃𝑖) =1

2𝑄∗(𝑠, 𝑎) − 𝑄(𝑠, 𝑎; 𝜃𝑖)

2

教師信号

存在しない

損失関数

𝜃𝑖+1 = 𝜃𝑖 − 𝛼𝛻𝜃𝑖𝐿(𝜃𝑖)

Page 14: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

𝑅𝑡 = 𝑟𝑡 + 𝛾𝑟𝑡+1 + 𝛾2𝑟𝑡+2 +⋯+ 𝛾𝑇−𝑡𝑟𝑇

𝑅𝑡 = 𝑟𝑡 + 𝛾𝑅𝑡+1

𝑄∗(𝑠, 𝑎) = 𝔼 𝑅𝑡|𝑠𝑡 = 𝑠, 𝑎𝑡 = 𝑎

𝑄∗(𝑠, 𝑎) = 𝑟𝑡 + 𝛾max𝑎′

𝑄∗(𝑠′, 𝑎′)

報酬の和

𝑎によって遷移した状態

Page 15: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

𝑄∗(𝑠, 𝑎) = 𝑟𝑡 + 𝛾max𝑎′

𝑄∗(𝑠′, 𝑎′)

損失関数

𝐿(𝜃𝑖) =1

2𝑄∗(𝑠, 𝑎) − 𝑄(𝑠, 𝑎; 𝜃𝑖)

2

Page 16: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

損失関数

=1

2𝑟𝑡 + 𝛾max

𝑎′𝑄∗(𝑠′, 𝑎′) − 𝑄(𝑠, 𝑎; 𝜃𝑖)

2

≈1

2𝑟𝑡 + 𝛾max

𝑎′𝑄(𝑠′, 𝑎′; 𝜃𝑖−1) − 𝑄(𝑠, 𝑎; 𝜃𝑖)

2

今のパラメータを使って近似

𝐿(𝜃𝑖) =1

2𝑄∗(𝑠, 𝑎) − 𝑄(𝑠, 𝑎; 𝜃𝑖)

2

Page 17: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Q Learning

損失関数の勾配

𝛻𝜃𝑖𝐿 𝜃𝑖= − 𝑟𝑡 + 𝛾max

𝑎′𝑄(𝑠′, 𝑎′; 𝜃𝑖−1) − 𝑄(𝑠, 𝑎; 𝜃𝑖) 𝛻𝜃𝑖𝑄(𝑠, 𝑎; 𝜃𝑖)

𝐿 𝜃𝑖 =12

𝑟𝑡 + 𝛾max𝑎′

𝑄(𝑠′, 𝑎′; 𝜃𝑖−1) − 𝑄(𝑠, 𝑎; 𝜃𝑖)2

Page 18: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Deep Q-Network

関数𝑄(𝑠, 𝑎; 𝜃𝑖)を畳み込みニューラルネットワークで表す 入力が状態s, 出力が各行動ごとのQの値

Deep CNN

𝑄(𝑠, 𝑎1)

𝑄(𝑠, 𝑎𝐿)

𝑄(𝑠, 𝑎2)

𝜃𝑖

・・・・・

s

Page 19: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Deep Q-Networkの学習

1. 状態𝑆𝑡を入力し、 𝑄(𝑠𝑡 , 𝑎; 𝜃𝑖)が最大となる行動𝑎𝑡を選択

ただし確率𝜀でランダムに選択

Deep CNN

𝑄(𝑠𝑡, 𝑎1)

𝑄(𝑠𝑡, 𝑎𝐿)

𝑄(𝑠𝑡, 𝑎2)

𝜃𝑖

・・・・・

𝑠𝑡

Page 20: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Deep Q-Networkの学習

2. 行動𝑎𝑡によって状態𝑆𝑡+1と報酬𝑟𝑡を得る

𝑎𝑡

𝑠𝑡 → 𝑠𝑡+1

エージェント

環境

𝑟𝑡

Page 21: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Deep Q-Networkの学習

3. 状態𝑆𝑡+1を入力し、 max𝑎 𝑄(𝑠𝑡+1, 𝑎; 𝜃𝑖) を求める

Deep CNN

𝑄(𝑠𝑡+1, 𝑎1)

𝑄(𝑠𝑡+1, 𝑎𝐿)

𝑄(𝑠𝑡+1, 𝑎2)

𝜃𝑖

・・・・・

𝑠𝑡+1

Page 22: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Deep Q-Networkの学習

4. 以下を教師信号としてパラメータ𝜃𝑖を更新

𝑦𝑖 = 𝑟𝑡 + γmax𝑎 𝑄(𝑠𝑡+1, 𝑎; 𝜃𝑖)

Deep CNN

𝑄(𝑠𝑡, 𝑎1)

𝑄(𝑠𝑡, 𝑎𝐿)

𝑦𝑖

𝜃𝑖

・・・・・

𝑠𝑡

Page 23: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

やっと本題

Page 24: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

DQNで物体検出

エージェント: Bounding Box

行動a: Bounding Boxの移動/形状変化

状態s: Box内の画像特徴ベクトル+行動履歴

報酬r : Ground Truthとのオーバーラップ率

Page 25: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

DQNで物体検出

行動 (x9) 上下左右の移動、拡大/縮小、形状変化(細

く/低く)、終了

移動やサイズ変化の大きさは、Boxの大きさに比例(α = 0.2)

Page 26: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

DQNで物体検出

状態 Bounding Box内の画像から画像特徴ベクトルを取得

畳み込みニューラルネットワークで取得した4096次元ベクトル

過去の行動履歴

直近10回の行動まで

それぞれの行動は、9次元バイナリベクトル(とった行動を1、他0)

10 x 9 = 90次元ベクトル

4096+90 = 4186次元ベクトルをDQNへの入力とする

Page 27: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

DQNで物体検出

報酬

b

g 𝐼𝑜𝑈 𝑏, 𝑔 =𝑎𝑟𝑒𝑎(𝑏 ∩ 𝑔)

𝑎𝑟𝑒𝑎(𝑏 ∪ 𝑔)

𝑅𝑎 𝑠, 𝑠′ = 𝑠𝑖𝑔𝑛 𝐼𝑜𝑈 𝑏′, 𝑔 − 𝐼𝑜𝑈 𝑏, 𝑔

エージェント

Ground Truth

正解データとのオーバーラップ

Trigger(終了)以外の行動に対する報酬

オーバーラップが大きくなったら1、小さくなったら-1

Page 28: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

DQNで物体検出

報酬

b

g 𝐼𝑜𝑈 𝑏, 𝑔 =𝑎𝑟𝑒𝑎(𝑏 ∩ 𝑔)

𝑎𝑟𝑒𝑎(𝑏 ∪ 𝑔)

エージェント

Ground Truth

正解データとのオーバーラップ

Trigger(終了)に対する報酬

オーバーラップが閾値以上なら+𝜂、それ未満なら−𝜂

𝑅𝑤 𝑠, 𝑠′ = +𝜂 𝑖𝑓 𝐼𝑜𝑈 𝑏, 𝑔 ≥ 𝜏−𝜂 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Page 29: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

ネットワーク構成

Bounding Box内の画像領域を224x224へリサイズ

特徴量抽出はPre-trainedのネットワークを使用

Page 30: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

エージェントの学習

ε-greedyアルゴリズム

確率εでランダムに行動を選ぶそれ以外は最もQ値が高い行動

本手法では、学習時に正解データがわかっているので、報酬がプラスになる行動の中からランダムに選ぶ

εは学習が進むにつれて小さくしていく

Page 31: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

エージェントの学習

Experience Replay

過去の(𝑠𝑡, 𝑎𝑡, 𝑟𝑡, 𝑠𝑡+1)をreplay-memoryに保存

DQNの学習時、保存したreplay-memoryからランダムに選んでミニバッチにして再学習

Page 32: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

エージェントによる物体検出

Trigger?

DQN

𝑠

𝑎

Restart40 steps

over?total 200

steps over?

25% smaller start box size

Put it on an image corner

Do Action

Y

Y

Y

N

N

N

Page 33: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

実験 (Pascal VOC2007)

Pascal VOC 2007

Page 34: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Recallの評価

Page 35: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

物体検出までのステップ数の分布

Page 36: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

行動履歴の例

Page 37: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

複数物体検出の例

Page 38: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

検出失敗の例

Page 39: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Sensitivity Analysis

物体の見え方(Occlusion, Truncation, Size, Aspect Ratio, Viewpoint of Objects, Visibility of parts)に対する頑健さ

Page 40: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

Runtime

K-40 GPU 一台

CNNによる特徴抽出 (4.5 ms)

Q-network (3.2 ms)

平均 1.54sec/image

Page 41: [CV勉強会]Active Object Localization with Deep Reinfocement Learning

結論

強化学習を用いて、Top-Downで物体検出を行う手法を提案

一つのオブジェクトに対し11から25くらいの領域しか見ていなくても検出できた

将来的には もう少しカテゴリを増やしてみたい

ネットワークを深くしてみたい

Pre-trainedなモデルではなくend-to-endで画像特徴量を学習したい