画像から原因と結果を識別する論文を読む
(1) 画像から原因と結果を識別する論文を読む
「Discovering Causal signals in Images」https://arxiv.org/abs/1605.08179
これもhttps://twitter.com/miyamotok0105さん主催の「酒を飲みながらCVPR2017の論文を読む会」で興味を持った一つです。
この論文は静止画像から原因となる物体と結果となる物体を特定するものです。
下図は人間が犬とフリスビーで遊んでいる画像で、犬がフリスビーに飛びついています。
・人間がフリスビーを掲げているのが原因 (causal)
・犬が飛びついているのが結果 (anticausal)
一般にデータから原因を特定する方法は2つあります。
1) 操作の介在があるデータから原因を推定
介入前後のデータの状態が変化するので、その変化より原因を推定します
2) データの特性から原因を推定 ICM(Inpedent Causal Mechanism)方式
データの分布状態から原因を推定します。
1)の精度は高いですが介入操作が必要です。2)はノイズがあると識別できません。
この論文は静止画像なので2)の方法に採っています。
(1.1) 静止データでの原因分析
ICMでは誤差の状態で判別しますが、2方法あります。 (a) (b)図
・ANM(Added Nose Model)で誤差の状態で原因が識別できます。
の場合は誤差が縦に並びます
の場合は誤差が横に並びます
下図だと赤の棒線線の幅が(a)では同じ、(b)では相違しているのでノイズの並びか分ります。
・Monotonic法 (c)図
真値(実践)からのノイズの分布を見ると横方向には矩形、縦方向には山形になって、この分布は で形成されたことが分ります。
・独立成分分析(ICA)
手法としては独立成分分析(ICA)で分布の方向を探ることができます。
下図はその例です。ノイズの方向が見えない場合でもICAは判断することができます。
http://www.geocities.jp/mabonakai/sub/ex_icaCausal.htm
(1.2) 論文の手法
データを高次元に写像してICMを使っています。
本論文の手法では、まず画像を部分画像個に分解します。
この分解方法については一般の矩形(BoundingBox)で行います。
(1.2.1) pixelベースの「原因」「結果」判別分析
ICMはpixelデータを高次元に写像して行っています。
一般にデータを高次元に写像するとデータは分離しやすくなります。
高次元の写像にはカーネルが一般的ですが、ここでは深層モデルで行っています。
ここで
は部分画像のpixel
は部分画像のpixel数
は原因か結果かのICM2値判別関数
・深層学習によるデータの高次元化NCC(Neural Causation Coefficent)
この論文では次式を使って「原因か結果」かを判別しています。
次式の値が1に近ければ「結果」となります。
(1.2.1) 物体レベルの判別分析
しかしながらpixelベースでは「原因か結果」では判別が難しいので、
最終的には物体とその特徴量とでNCCで判別しています。
物体とその特徴量は深層学習で20個識別しています。
上段が物体の検出精度で、下段が「結果」の識別精度となっています