Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
第32回 CV勉強会「ICCV2015読み会」
Active Object Localization with Deep
Reinforcement Learning
皆川卓也(takmin)
自己紹介
2
テクニカル・ソリューション・アーキテクト
皆川 卓也(みながわ たくや)
フリーエンジニア(ビジョン&ITラボ)
「コンピュータビジョン勉強会@関東」主催
博士(工学)
略歴:
1999-2003年
日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ
セールス、プロジェクトマネジメント、サポート等の業務に従事
2004-2009年
コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事
2007-2010年
慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻
単位取得退学後、博士号取得(2014年)
2009年-現在
フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事
紹介論文
 Active Object Localization with Deep Reinforcement
Learning
 Juan C. Caicedo, and Svetlana Lazebnik
 物体検出のタスクにDeep Q-Networkを使用した
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
強化学習とは?
 「ある環境内におけるエージェントが、現
在の状態を観測し、取るべき行動を決定
する問題を扱う機械学習の一種。エー
ジェントは行動を選択することで環境か
ら報酬を得る。強化学習は一連の行動
を通じて報酬が最も多く得られるような
方策(policy)を学習する。」(Wikipedia)
強化学習とは?
エージェント
状態: 𝑠
時間: t
アクション: 𝑎
観測方策: 𝜋(𝑠)
強化学習とは?
エージェント
状態: 𝑠
時間: t
アクション: 𝑎
観測方策: 𝜋(𝑠)
強化学習とは?
エージェント
時間: t
アクション: 𝑎
方策: 𝜋(𝑠)
状態: 𝑠′
強化学習とは?
エージェント
状態: 𝑠′
時間: t+1
報酬: 𝑟𝑡
観測方策: 𝜋(𝑠′)
学習で求める
強化学習とは?
 どのような方策を学習する?
 以下の報酬の和の期待値が最大となるように今の行動を決
定する
𝑅𝑡 = 𝑟𝑡 + 𝛾𝑟𝑡+1 + 𝛾2
𝑟𝑡+2 + ⋯ + 𝛾 𝑇−𝑡
𝑟 𝑇
報酬の和
将来の報酬
減衰率
𝜋∗
(𝑠) = argmax
𝑎
𝔼 𝑅𝑡|𝑠𝑡 = 𝑠, 𝑎 𝑡 = 𝑎
状態sの時、報酬の和が最大となりそうな行動aを選ぶ
Q Learning
𝑄∗
(𝑠, 𝑎)
𝜋∗
(𝑠) = argmax
𝑎
𝔼 𝑅𝑡|𝑠𝑡 = 𝑠, 𝑎 𝑡 = 𝑎
状態s、行動aの組み合わせの良し悪し
をスコアで教えてくれる関数
状態sの時、報酬の和が最大となりそうな行動aを選ぶ
状態sで行動aをとったとき、その後最適な行動
をとり続けた時に得られる報酬の和の期待値
𝜋の代わりに関数Qを学習する
Q Learning
𝜋∗
(𝑠) = argmax
𝑎
𝑄∗
(𝑠, 𝑎)
𝜋の代わりに関数Qを学習する
関数𝑄のパラメータ𝜃を
学習により求める
𝑄(𝑠, 𝑎; 𝜃∗
)
𝜃𝑖+1 = 𝜃𝑖 − 𝛼𝛻𝜃 𝑖
𝐿(𝜃𝑖)
学習率
確率的勾配降下法(SGD)
損失関数
Q Learning
𝐿(𝜃𝑖) =
1
2
𝑄∗
(𝑠, 𝑎) − 𝑄(𝑠, 𝑎; 𝜃𝑖) 2
教師信号
存在しない
 損失関数
𝜃𝑖+1 = 𝜃𝑖 − 𝛼𝛻𝜃 𝑖
𝐿(𝜃𝑖)
Q Learning
𝑅𝑡 = 𝑟𝑡 + 𝛾𝑟𝑡+1 + 𝛾2
𝑟𝑡+2 + ⋯ + 𝛾 𝑇−𝑡
𝑟 𝑇
𝑅𝑡 = 𝑟𝑡 + 𝛾𝑅𝑡+1
𝑄∗
(𝑠, 𝑎) = 𝔼 𝑅𝑡|𝑠𝑡 = 𝑠, 𝑎 𝑡 = 𝑎
𝑄∗
(𝑠, 𝑎) = 𝑟𝑡 + 𝛾 max
𝑎′
𝑄∗
(𝑠′, 𝑎′)
報酬の和
𝑎によって遷
移した状態
Q Learning
𝑄∗
(𝑠, 𝑎) = 𝑟𝑡 + 𝛾 max
𝑎′
𝑄∗
(𝑠′, 𝑎′)
 損失関数
𝐿(𝜃𝑖) =
1
2
𝑄∗
(𝑠, 𝑎) − 𝑄(𝑠, 𝑎; 𝜃𝑖) 2
Q Learning
 損失関数
=
1
2
𝑟𝑡 + 𝛾 max
𝑎′
𝑄∗
(𝑠′, 𝑎′) − 𝑄(𝑠, 𝑎; 𝜃𝑖)
2
≈
1
2
𝑟𝑡 + 𝛾 max
𝑎′
𝑄(𝑠′
, 𝑎′
; 𝜃𝑖−1) − 𝑄(𝑠, 𝑎; 𝜃𝑖)
2
今のパラメータを
使って近似
𝐿(𝜃𝑖) =
1
2
𝑄∗
(𝑠, 𝑎) − 𝑄(𝑠, 𝑎; 𝜃𝑖) 2
Q Learning
 損失関数の勾配
𝛻𝜃 𝑖
𝐿 𝜃𝑖
= − 𝑟𝑡 + 𝛾 max
𝑎′
𝑄(𝑠′, 𝑎′; 𝜃𝑖−1) − 𝑄(𝑠, 𝑎; 𝜃𝑖) 𝛻𝜃 𝑖
𝑄(𝑠, 𝑎; 𝜃𝑖)
𝐿 𝜃𝑖 =
1
2
𝑟 𝑡 + 𝛾 max
𝑎′
𝑄(𝑠′, 𝑎′; 𝜃𝑖−1) − 𝑄(𝑠, 𝑎; 𝜃𝑖)
2
Deep Q-Network
 関数 𝑄(𝑠, 𝑎; 𝜃𝑖)を畳み込みニューラルネットワークで表
す
 入力が状態s, 出力が各行動ごとのQの値
Deep CNN
𝑄(𝑠, 𝑎1)
𝑄(𝑠, 𝑎 𝐿)
𝑄(𝑠, 𝑎2)
𝜃𝑖
・・・・・
s
Deep Q-Networkの学習
1. 状態 𝑆𝑡を入力し、 𝑄(𝑠𝑡, 𝑎; 𝜃𝑖)が最大となる行動𝑎 𝑡を
選択
 ただし確率 𝜀でランダムに選択
Deep CNN
𝑄(𝑠𝑡, 𝑎1)
𝑄(𝑠𝑡, 𝑎 𝐿)
𝑄(𝑠𝑡, 𝑎2)
𝜃𝑖
・・・・・
𝑠𝑡
Deep Q-Networkの学習
2. 行動𝑎 𝑡によって状態𝑆𝑡+1と報酬𝑟𝑡を得る
𝑎 𝑡
𝑠𝑡 → 𝑠𝑡+1
エージェント
環境
𝑟𝑡
Deep Q-Networkの学習
3. 状態 𝑆𝑡+1を入力し、 max 𝑎 𝑄(𝑠𝑡+1, 𝑎; 𝜃𝑖) を求める
Deep CNN
𝑄(𝑠𝑡+1, 𝑎1)
𝑄(𝑠𝑡+1, 𝑎 𝐿)
𝑄(𝑠𝑡+1, 𝑎2)
𝜃𝑖
・・・・・
𝑠𝑡+1
Deep Q-Networkの学習
4. 以下を教師信号としてパラメータ 𝜃𝑖を更新
 𝑦𝑖 = 𝑟𝑡 + γ max 𝑎 𝑄(𝑠𝑡+1, 𝑎; 𝜃𝑖)
Deep CNN
𝑄(𝑠𝑡, 𝑎1)
𝑄(𝑠𝑡, 𝑎 𝐿)
𝑦𝑖
𝜃𝑖
・・・・・
𝑠𝑡
やっと本題
DQNで物体検出
 エージェント: Bounding Box
 行動a: Bounding Boxの移動/形状変化
 状態s: Box内の画像特徴ベクトル+行動履歴
 報酬r : Ground Truthとのオーバーラップ率
DQNで物体検出
 行動 (x9)
 上下左右の移動、拡大/縮小、形状変化(細
く/低く)、終了
 移動やサイズ変化の大きさは、Boxの大きさ
に比例(α = 0.2)
DQNで物体検出
 状態
 Bounding Box内の画像から画像特徴ベクトルを取得
 畳み込みニューラルネットワークで取得した4096次元ベ
クトル
 過去の行動履歴
 直近10回の行動まで
 それぞれの行動は、9次元バイナリベクトル(とった行動
を1、他0)
 10 x 9 = 90次元ベクトル
 4096+90 = 4186次元ベクトルをDQNへの入力とする
DQNで物体検出
 報酬
b
g 𝐼𝑜𝑈 𝑏, 𝑔 =
𝑎𝑟𝑒𝑎(𝑏 ∩ 𝑔)
𝑎𝑟𝑒𝑎(𝑏 ∪ 𝑔)
𝑅 𝑎 𝑠, 𝑠′ = 𝑠𝑖𝑔𝑛 𝐼𝑜𝑈 𝑏′, 𝑔 − 𝐼𝑜𝑈 𝑏, 𝑔
エージェント
Ground Truth
正解データとのオーバーラップ
Trigger(終了)以外の行動に対する報酬
オーバーラップが大きくなったら1、小さくなったら-1
DQNで物体検出
 報酬
b
g 𝐼𝑜𝑈 𝑏, 𝑔 =
𝑎𝑟𝑒𝑎(𝑏 ∩ 𝑔)
𝑎𝑟𝑒𝑎(𝑏 ∪ 𝑔)
エージェント
Ground Truth
正解データとのオーバーラップ
Trigger(終了)に対する報酬
オーバーラップが閾値以上なら+𝜂、それ未満なら−𝜂
𝑅 𝑤 𝑠, 𝑠′
=
+𝜂 𝑖𝑓 𝐼𝑜𝑈 𝑏, 𝑔 ≥ 𝜏
−𝜂 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
ネットワーク構成
 Bounding Box内の画像領域を224x224へリサイズ
 特徴量抽出はPre-trainedのネットワークを使用
エージェントの学習
 ε-greedyアルゴリズム
 確率εでランダムに行動を選ぶ
 それ以外は最もQ値が高い行動
 本手法では、学習時に正解データがわ
かっているので、報酬がプラスになる行動
の中からランダムに選ぶ
 εは学習が進むにつれて小さくしていく
エージェントの学習
 Experience Replay
 過去の(𝑠𝑡, 𝑎 𝑡, 𝑟𝑡, 𝑠𝑡+1)をreplay-memoryに保
存
 DQNの学習時、保存したreplay-memoryか
らランダムに選んでミニバッチにして再学習
エージェントによる物体検出
Trigger?
DQN
𝑠
𝑎
Restart
40 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
実験 (Pascal VOC2007)
 Pascal VOC 2007
Recallの評価
物体検出までのステップ数の分布
行動履歴の例
複数物体検出の例
検出失敗の例
Sensitivity Analysis
 物体の見え方(Occlusion, Truncation, Size, Aspect Ratio,
Viewpoint of Objects, Visibility of parts)に対する頑健さ
Runtime
K-40 GPU 一台
CNNによる特徴抽出 (4.5 ms)
Q-network (3.2 ms)
平均 1.54sec/image
結論
 強化学習を用いて、Top-Downで物体検出を
行う手法を提案
 一つのオブジェクトに対し11から25くらいの領
域しか見ていなくても検出できた
 将来的には
 もう少しカテゴリを増やしてみたい
 ネットワークを深くしてみたい
 Pre-trainedなモデルではなくend-to-endで画像特
徴量を学習したい

More Related Content

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