Large-Scale Object Classification Using Label Relation Graphs

Post on 06-Jul-2015

2.351 views 2 download

description

コンピュータビジョン勉強会@関東 IEEE2014読み会発表資料 Large-Scale Object Classification Using Label Relation Graphs

Transcript of Large-Scale Object Classification Using Label Relation Graphs

2014/12/06 CV勉強会@関東ECCV2014読み会 発表資料

takmin

自己紹介

2

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

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

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

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

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

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

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

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

紹介する研究

“Large-Scale Object Classification Using Label Relation Graphs”

Jia Deng*1,2, JNan Ding*2, Yangqing Jia*2, Andrea Frome*2, Kevin Murphy*2, SamyBengio*2, Yuan Li*2, Hartmut Neven*2, and Hartwig Adam*2

*1 University of Michigan

*2 Google

Best Paper Award

一般物体認識

今までの一般物体認識

単語ラベル間の意味関係を考慮せず

一般物体認識

提案する新しい枠組み

単語ラベル間の意味関係を考慮

目的

ラベル(単語)同士の意味的な関係性を考慮した新しい物体認識の枠組みを提案する。

概要

ラベル間の意味関係をグラフで定義

Hierarchy and Exclusion (HEX) Graph

HEXグラフに基づいた識別モデル

条件付き確率場(CRF)によるモデル化

学習方法

効率的な推論

グラフが取り得る状態空間の算出

推論しやすいようにグラフを変形

実験

Hierarchy and Exclusion(HEX) Graph

ノードは単語(ラベル)

「犬(Dog)」に対する「ハスキー(Husky)」や「子犬(Puppy)」など包含関係を表す場合は有向エッジ

「犬(Dog)」と「猫(Cat)」など排他的な関係を表す場合は無効エッジ

エッジの存在しない箇所は両方のラベルを取り得る

Hierarchy and Exclusion(HEX) Graph

定義1:

HEX Graph: 𝑮 = 𝑽, 𝑬ℎ, 𝑬𝑒

ノード(単語ラベル): 𝑽 = 𝑣1, ⋯ , 𝑣𝑛

有向エッジ(包含関係): 𝑬ℎ ⊆ 𝑽 × 𝑽

無向エッジ(排他関係): 𝑬𝑒⊆ 𝑽 × 𝑽

ただし𝑮ℎ = 𝑽,𝑬ℎ は有向非循環グラフ、𝑮𝑒 = 𝑽, 𝑬𝑒 は自己ループのない無向グラフ

Hierarchy and Exclusion(HEX) Graph

定義2:

HEX Graph 𝑮 = 𝑽,𝑬ℎ , 𝑬𝑒 の𝑽の状態𝐲 ∈ 0,1 𝒏が以下を満たす時、 𝑮は正しい (legal)

𝑦𝑖 , 𝑦𝑗 = 1, 1 ⟹ 𝑣𝑖, 𝑣𝑗 ∉ 𝑬𝑒

(𝑦𝑖, 𝑦𝑗 ) = (0, 1) ⟹ (𝑣𝑖, 𝑣𝑗 ) ∉ 𝑬ℎ

Dog Cat

Husky Puppy

Hierarchy and Exclusion(HEX) Graph

定義2:

HEX Graph 𝑮 = 𝑽,𝑬ℎ , 𝑬𝑒 の𝑽の状態𝐲 ∈ 0,1 𝒏が以下を満たす時、 𝑮は正しい (legal)

𝑦𝑖 , 𝑦𝑗 = 1, 1 ⟹ 𝑣𝑖, 𝑣𝑗 ∉ 𝑬𝑒

(𝑦𝑖, 𝑦𝑗 ) = (0, 1) ⟹ (𝑣𝑖, 𝑣𝑗 ) ∉ 𝑬ℎ

Dog Cat

Husky Puppy

1 1

「犬」かつ「猫」の状態はありえない

Hierarchy and Exclusion(HEX) Graph

定義2:

HEX Graph 𝑮 = 𝑽,𝑬ℎ , 𝑬𝑒 の𝑽の状態𝐲 ∈ 0,1 𝒏が以下を満たす時、 𝑮は正しい (legal)

𝑦𝑖 , 𝑦𝑗 = 1, 1 ⟹ 𝑣𝑖, 𝑣𝑗 ∉ 𝑬𝑒

(𝑦𝑖, 𝑦𝑗 ) = (0, 1) ⟹ (𝑣𝑖, 𝑣𝑗 ) ∉ 𝑬ℎ

Dog Cat

Husky Puppy

0

1

「ハスキー」なのに「犬」ではない状態はありえない

Hierarchy and Exclusion(HEX) Graph

定義3:

HEX Graph 𝑮 = 𝑽,𝑬ℎ , 𝑬𝑒 の任意のラベル𝒗𝒊 ∈ 𝑽が2つの状態y𝑖 ∈ 0,1 を取り得る時、𝑮は一貫している(consistent)

0 0

1 0

0しか取れない(consistentではない)

Hierarchy and Exclusion(HEX) Graph

定理1:

HEX Graph 𝑮 = 𝑽,𝑬ℎ , 𝑬𝑒 の任意のラベル𝒗𝒊 ∈ 𝑽と

すると、𝑬𝑒 ∩ 𝛼 𝒗𝒊 × 𝛼 𝒗𝒊 ≠ 𝟎の時においてのみ、𝑮は

一貫している (consistent)。ただし 𝛼 𝒗𝒊 はノード𝒗𝒊とその先祖ノード。

あるノードとその先祖ノードを排他リンクで結んだらconsistentではない

HEXグラフによる識別モデル

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1) (1)

Dog Cat

Husky

Puppy

条件付き確率場(CRF)

HEXグラフによる識別モデル

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1)

ある入力画像𝑥のラベルが状態𝒚をとる(正規化してない)確率

(1)

状態の例:

𝒚 = 0,1,0,1

Dog Cat

Husky

Puppy

条件付き確率場(CRF)

Cat Dog Husky Puppy

HEXグラフによる識別モデル

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1) (1)

Dog Cat

Husky

Puppy

条件付き確率場(CRF)

ラベルiの画像識別器(ex. DeepCNN)

i番目のラベルが1になる(正規化されていない)確率

識別器のパラメータ

HEXグラフによる識別モデル

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1) (1)

Dog Cat

Husky

Puppy

条件付き確率場(CRF)

このケースが含まれる𝒚は0になる

0

1

HEXグラフによる識別モデル

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1) (1)

Dog Cat

Husky

Puppy

条件付き確率場(CRF)

このケースが含まれる𝒚は0になる

1 1

HEXグラフによる識別モデル

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1) (1)

Dog Cat

Husky

Puppy

条件付き確率場(CRF)

1 0

0 1

例: 𝒚 = 0,1,0,1

𝑃 𝒚 𝑥

= exp 𝑓𝑑𝑜𝑔 𝑥;𝒘 + 𝑓𝑝𝑢𝑝𝑝𝑦 𝑥;𝒘

例1:排他リンクだけの場合

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1)

条件付き確率場(CRF)

𝑃 𝒚 𝑥 =1

1 + 𝑗 𝑒𝑓𝑗

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]Softmax関数

例2:リンクがない場合

𝑃 𝒚 𝑥

=

𝑖

𝑒𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]

(𝑣𝑖,𝑣𝑗)∈𝑬ℎ

(𝑦𝑖 , 𝑦𝑗) ≠ (0,1)

(𝑣𝑖,𝑣𝑗)∈𝑬𝑒

(𝑦𝑖 , 𝑦𝑗) ≠ (1,1)

条件付き確率場(CRF)

𝑃 𝒚 𝑥 =

𝑖

1

1 + 𝑒−𝑓𝑖 𝑥;𝒘 [𝑦𝑖=1]Logistic関数の積

識別モデルの学習

確率的勾配降下法(SGD)で識別モデルのパラメータ𝒘

を学習する

1. 訓練画像を識別モデルで認識し、各ラベルの状態確率を算出

2. 出力した状態確率と実際のラベルとの誤差を損失関数で計算する

3. 誤差が小さくなるように損失関数の勾配を用いてパラメータ𝒘を更新する。

4. 1から学習を逐次的に繰り返す

識別モデルの学習

確率的勾配降下法(SGD)で識別モデルのパラメータ𝒘

を学習する

ℒ 𝑫,𝒘 = −

𝑙

log Pr 𝒚𝒈(𝑙)

(𝑙)𝑥(𝑙); 𝒘

損失関数: 負の対数尤度

𝑫 = 𝑥(𝑙), 𝒚(𝑙), 𝒈(𝑙) , 𝑙 = 1,⋯ ,𝑚

学習サンプル

画像 教師ラベル 観測されたラベルのインデックス集合

学習サンプル数

(2)

効率的な推論

知りたいこと:

画像に各ラベルのオブジェクトが含まれている確率

Dog Cat

Husky Puppy

ex. Pr Dog = 1 𝑥

HuskyかPuppyかは、とりあえずどうでもいい

Pr Puppy = 1 𝑥

Huskyかは、とりあえずどうでもいい(Dogは自明)

効率的な推論

知りたいこと:

画像に各ラベルのオブジェクトが含まれている確率

Dog Cat

Husky Puppy

ex. Pr Dog = 1 𝑥

Cat 0 1 0 0 0 0

Dog 0 0 1 1 1 1

Husky 0 0 0 1 0 1

Puppy 0 0 0 0 1 1

取り得る状態

この範囲の状態の確率の和を求める(周辺化)

周辺分布

効率的な推論

知りたいこと:

画像に各ラベルのオブジェクトが含まれている確率

各ラベルの周辺分布を効率的に計算したい!

積和アルゴリズム

積和アルゴリズム

木構造のグラフがあった時に、端から順にメッセージを伝搬していくことで、効率的に周辺分布の計算を行うアルゴリズム

1x3x

2x

5x

4x

1f2f3f

35 fx 11 fx

11 xf

43 xf 32 xf

22 fx

24 fx

HEX Graphの積和アルゴリズム

巨大なネットワークにおける積和アルゴリズムを効率的に計算するために

1. 効率的な積分計算のために取り得る状態空間をリストアップする

2. 余計なリンクを省いてグラフをできるだけシンプルにする

1. 密なHEX Graphを利用2. 疎なHEX Graphを利用

HEXグラフの変形

定義4:

HEX Graph 𝑮と𝑮′の状態𝐲, 𝐲′ ∈ 0,1 𝒏が取り得る状態空間をそれぞれ𝑺𝑮、𝑺𝑮′とした場合、𝑺𝑮 = 𝑺𝑮′の時𝑮と𝑮′は等価 (equivalent)

等価なHEXグラフ

HEXグラフの変形

定義5:

HEX Graph 𝑮 = 𝑽,𝑬ℎ , 𝑬𝑒 が与えられた時、有向/無向エッジ e ∈ 𝑽 × 𝑽が以下のいずれかの条件を満たす場合、 eは冗長(redundant)であるとする

𝑮′ = 𝑽, 𝑬ℎ ∖ {𝑒}, 𝑬𝑒 と𝑮′′ = 𝑽, 𝑬ℎ ∪ {𝑒}, 𝑬𝑒 が共に𝑮と等価

𝑮′ = 𝑽, 𝑬ℎ, 𝑬𝑒 ∖ {𝑒} と𝑮′′ = 𝑽, 𝑬ℎ, 𝑬𝑒 ∪ {𝑒} が共に𝑮と等価

要は、足しても引いても状態空間に影響しないエッジは冗長

HEXグラフの変形

定義6:

グラフ𝑮に冗長なエッジが存在しない場合、最も疎(minimally sparce)であるとする。

グラフ𝑮が全ての冗長なエッジを含む場合、最も密(maximally dense)であるとする。

状態空間の算出

密なグラフは状態空間を算出しやすい

例: E=1ならば、B=1, A=1, F=0がすぐに求まる

状態空間の算出

1. 適当なノードを1つ選び、状態を1にする。

1

状態空間の算出

2. 親ノードを1、排他ノードを0にする。

1 0

1

状態空間の算出

3. 残ったノードをサブグラフとして、状態空間算出の関数に渡す(再帰呼び出し)

0

1

1

状態空間の算出

4. 同じように今度は適当なノードを0にして、子ノードを0にする。

0

0

0

状態空間の算出

5. 残ったノードをサブグラフとして、状態空間算出の関数に渡す(再帰呼び出し)。

0

0

0

HEX Graphの推論

積和アルゴリズムは、最も疎なグラフに対して適用する

メッセージの数が少なくて済む

HEX Graphの推論

ループしている排他エッジについてはジャンクションツリーアルゴリズムによって木構造に直す

A

B

E

D

C

G

F

A

BF

B

ED

C

G

F

B

C

F

A

BF

B

ED

C

G

F

B

C

F

HEX Graphの推論:まとめ

A

B

E

D

C

G

F

A

B

E

D

C

G

F

A

B

E

D

C

G

F

A

BF

B

ED

C

G

F

B

C

F2.Build Junction Tree(offline)

実験

実験環境

Deep Neural Networkを用いて、ラベルのスコア𝒇(𝑥;𝒘)を算出

パラメータ𝒘は誤差逆伝播法で(2)式より学習

グラフの構築、状態空間の算出、ジャンクションツリーの構築などはオフラインで行った

実験1:ImageNet

ILSVRC2012のデータセットを用いて評価

1.2Mの訓練画像

1000オブジェクトクラス

排他関係

WordNetを使用してHEX Graphを作成

葉ノードではなく、内側のノードのラベルに対応した訓練画像がないため、一部を親ノードのラベルに付け替えた

実験1:結果

Convolutional Neural Networkの最後の層の出力を様々に変えて比較実験(カッコ内はトップ5での精度)

試験では葉ノードのラベルのみ使用

葉ノードのラベルのみで学習したSoftmax

全てのラベルで学習したSoftmax

実験2:Zero-Shot Recognition

物体と属性間の関係性をHEX Graphで学習できるか確認するのが目的

Animal with Attributes (AWA)データセットを使用

50種類の動物

85種類の属性

40種類の動物で属性について学習させ、残り10種類の動物に対して認識試験を行った

HEXグラフで各動物の属性を関連付け

動物の種の間は排他リンク

属性は包含リンク

正しくない属性(ex.「シマウマ」は「魚を食べる」)は排他リンク

実験2:Zero-Shot Recognition

DAP (Lampert et al.) IAP (Lampert et al.) Ours

40.5% 27.8% 38.5%

HEXグラフによる属性の定義の例:

結果

まとめ

意味的な関係を考慮した識別のためのフレームワークを提案

HEXグラフにより、包含関係と排他関係を定義

実験から高い精度を確認

推定速度も効率的

ISLSVRC2012の実験でSoftmaxの約6倍程度の処理時間

様々なタスクに応用可能

属性認識、シーン認識、行動認識など