機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Object Detection as a Positive-Unlabeled Problemを読んだのでメモ

はじめに

Object Detection as a Positive-Unlabeled Problemを読んだのでメモ.

気持ち

物体検出のデータセットは正解ラベルが抜けていることが多々ある(例えばFig. 1).そして従来の物体検出手法は学習中ラベルなし領域全てを背景領域として扱ってしまうため,真に物体である領域を背景領域として扱ってしまう問題がある. 実際そのようなデータでモデルを学習すると通常の学習により検出できたいた物体が検出できなくなってしまう(Fig. 2). 特にラベルが付いていないモデルはしばしばhard exampleである場合が多く,hard exampleはサポートベクターの観点から識別境界を決定するのに重要なサンプルとなる.

この論文では,物体検出をPositive-Unlabeled Problem(正例ラベル付きデータとラベルなしデータからなるデータを使った問題設定)として捉え,PU problemとしての学習手法を提案するというもの.

PU Learning

まず前提としてFaster R-CNNのRPNによる物体候補領域検出(物体(P)か否(N)かの2値分類)を考える.入力のデータをX\in\mathbb{R}^dとし,ラベルをY\in\{\pm1\}とする. 通常の学習(Positive-Negative problem)ではPとN両方のラベルを使用できるが,PU learningではPのラベルのみを使うことができ,残りはラベルなし(U)となる.

p(x,y)(X,Y)が従う同時分布とし,p_p(x)=p(x|Y=+1)p_n(x)=p(x|Y=-1)p(x)をそれぞれPとNとUの分布とする. また,\pi_p=p(Y=+1)をPの事前分布,\pi_n=p(Y=-1)=1-\pi_pをNの事前分布とする.

Positive-Negative(PN)の設定ではデータはp_p(x)p_n(x)から,\mathcal{X}_p=\{x_i^p\}_{i=1}^{N_p}\sim p_p(x)\mathcal{X}_n=\{x_i^n\}_{i=1}^{N_n}\sim p_n(x)のようにサンプリングされるものとする. gを任意のモデルとした時,PNによる学習を以下の目的関数を最小化するようにモデルを決定するものとして定義する.

\displaystyle
\hat{R}_{pn}^{RPN}=\pi_p\hat{R}_p^+(g)+\pi_n\hat{R}_n^-(g)

ここで\hat{R}_p^+(g)=1/N_p\sum_{i=1}^{N_p}l(g(x_i^p),+1)\hat{R}_n^-(g)=1/N_n\sum_{i=1}^{N_n}l(g(x_i^n),-1)とする.ただしlはクロスエントロピーH(t,y)のような損失関数.

PUの設定では\mathcal{X}_nは使えず,全てラベルなしデータ\mathcal{X}_u=\{x_i^u\}_{i=1}^{N_u}\sim p(x)に含まれる. R^-_p(g)=\mathbb{E}_p[l(g(X),-1)]R^-_u(g)=\mathcal{E}_{X\sim p(x)}[l(g(X),-1)\pi_np_n(x)=p(x)-\pi_pp_p(x)とした時,PUでは直接計算できないNに関する事前分布を\pi_nR_n^-(g)=R^-_u(g)-\pi_pR_p^-(g)として計算する. 従って,PU学習における損失は次のように定義される.

\displaystyle
\hat{R}_{pu}(g)=\pi_p\hat{R}_p^+(g)+\hat{R}_u^-(g)-\pi_p\hat{R}^-_p(g)

ただし,\hat{R}_p^-(g)=1/N_p\sum_{i=1}^{N_p}l(g(x_i^p),-1)\hat{R}_u^-(g)=1/N_u\sum_{i=1}^{N_u}l(g(x_i^u),-1)とする.

上記の定式化は自然ではあるもののプラクティカルにはデータにoverfitしてしまうため,先行研究で提案されたnon-negative PU riskを使うとのこと.

\displaystyle
\hat{R}_{pu}(g)=\pi_p\hat{R}_p^+(g)+\max\{0,\hat{R}_u^-(g)-\pi_p\hat{R}^-_p(g)\}

Estimating \pi_p

PU learningとして目的関数を定式化することができたが\pi_pの推定方法が必要となる. ここでは推定された\pi_p\hat{\pi}_pとし,\hat{\pi}_pRPNの推論結果から推定されるとする. RPNによって推論された前景領域(objectnessが0.5以上)の数をN^{RPN}_pとし,RPNによってサンプルされた全ての候補領域数をN^{RPN}とすれば\hat{\pi}_pは次のように計算される.

\displaystyle
\hat{\pi}_p=\frac{N^{RPN}_p}{N^{RPN}}

この場合\hat{\pi}_pは入力される画像によってブレが大きいので,実験では学習中\gammaを係数とした移動平均を利用する.

まとめ

実験では画像のアノテーションの一部をランダムで無視することで意図的にPU問題を作り出しPNと比較を行っており,Uの割合が増えるほどPNからの性能の向上が著しい.

ただ一方で画像中の一部ではなく学習データそのものを減らしてPNと比較した場合にはPNの方が性能が高いので,基本的にはちゃんとアノテーションをつけようという結論になる気もする.