yiskw note

機械学習やプログラミングについて気まぐれで書きます

Don't Judge an Object by Its Context: Learning to Overcome Contextual Biasを読んだのでメモ


概要

image

既存のモデルは,物体とそのコンテキストの共起性を活用することがあるが,あまりコンテキストに頼りすぎるとコンテキストがない場合に認識できない(上図). 本研究では,コンテキストとカテゴリの特徴表現の相関を減らすことを目的とし,これを実現するためにコンテキストとカテゴリを表現するjoint spaceと一緒に,カテゴリmにみを表現するsubspaceを学習する. 物体分類と属性分類のマルチタスク学習において,精度の向上を確認した.

提案手法

問題設定

共起するバイアスによって分類が難しくなるカテゴリをbaised categoriesと定義する. (例: COCO-Stuffデータセットには,スキーと人間が同時に存在する画像が2209枚ある一方で,スキーのみが存在する画像が29枚存在する)

本研究では,より具体的に(1)カテゴリbの確率が,カテゴリcがないときに著しく下がる時,もしくは(2)bがカテゴリcと頻繁に共起する時,カテゴリbが,カテゴリcにバイアスを受けると仮定する. あるカテゴリbとカテゴリzの間のバイアスを以下のように定義する.

image

ここで,I_b ∩ I_z と,I_b \ I_zはそれぞれ,bがzと共起する画像の集合,bがzなしで存在する画像の集合を表す.

image

image

bias(b, z)が最大となるようなz,かつ少なくとも10~20%の頻度でbとzが共起する場合に,bに最もバイアスを与えるカテゴリcと定義する.

提案手法

image

概要は上図の通り.カテゴリ同士の分類を正しく行いつつ,異なるカテゴリにおいてCAMの領域が重ならないように特徴抽出器を学習させる.損失関数は以下.

image

L_BCE ... マルチタスクラーニングのためのbinary cross entropy loss

L_O ... 異なるカテゴリ間のCAMのオーバーラップを最小化する.

image

L_R ... L_O損失だけではbとcのCAMを実際のピクセル領域からずらして出力するという自明解に陥ってしまう.空間方向のアノテーションなしでこれを防ぐために,正則化項を導入する.具体的には,おもみを固定した事前学習モデルを用意し,それによって得られたCAM_preに,ネットワークが出力するCAMが近づくように学習させる.

image

上記の手法では,コンテキストとカテゴリが相補的に有用である情報を活用することができない. そこで,コンテキストと分離したカテゴリのfeature subspaceを学習する方法を提案する.

image

通常の分類では,以下のように特徴量xに対して,全結合層の重みW∈ R^{D×M}をかけることで,最終的なクラスごとのスコアyを得る. image

本研究ではカテゴリの特徴表現を,コンテキストのものと分離したいので,適当にWをrow-wiseに2つに分割する.それぞれW_o, W_s ∈ R^{D/2×M}とする.同様にxをx_o, x_sに分割して,以下のようにクラスごとのスコアyを得る.

image

こうすることで, 1) バイアスがあるカテゴリがコンテキストなしで出現するときには,W_sを抑制することでW_oだけに頼るように強制する.これにより,カテゴリがWコンテキストなしで出現するときに,カテゴリ特有の情報を捉えようとすることができる. 2) バイアスのあるカテゴリがコンテキストと共起するときには,両方の情報を活用させることで,特徴空間全体でカテゴリとコンテキストを学習することができる.

この際に,W_sは重みを固定し,x_sは前の10イテレーションの間の平均値を使用する.

L_BCEは以下のようになる.

image

その時の重みαは以下の通り

image

実験

CAMの出力結果の比較.提案法の方が妥当な場所をハイライトしている.

image

データセットデータセットでの精度.

image

Reference

Krishna Kumar Singh et al., "Don't Judge an Object by Its Context: Learning to Overcome Contextual Bias" in CVPR2020

link