派生問題:背景の過密状態
時系列自己符号化器をはじめとした生成モデル系の深層学習を前提とした場合、その特徴表現は「動いている群衆(Moving Crowds)」から異常を検知する場合と等価な問題を招く。
「生成モデルに準拠した一般的な異常検知の深層ニューラルネットワークの能力をよそに、こうしたネットワークは背景(background)によって簡単に振り回されてしまう。故にこうしたネットワークは(例えば動いている群衆などのように)関心となる対象物に焦点を絞ることができない。時間的に変異する対象物は高い複合性を有しているのである。」
Yang, B., Cao, J., Ni, R., & Zou, L. (2018). Anomaly Detection in Moving Crowds through Spatiotemporal Autoencoding and Additional Attention. Advances in Multimedia, 2018., 引用はp2.より。
問題解決策:ロバスト主成分分析
時系列自己符号化器による異常検知モデルに対する上述した問題設定を展開しているYang, B., Cao, J., Ni, R., & Zou, L. (2018)では、「動いている群衆」に対する問題解決策として、「動いている前景のセグメンテーション(Segmenting Moving Foregrounds)」を提案している。時系列自己符号化器が背景の情報に振り回されてしまうのなら、事前にその背景の情報を除外してしまえば良い。その具体的なアルゴリズムとして、論文ではロバスト主成分分析(Robust principal component analysis: Robust PCA: RPCA)が採用されている。
Block-RPCAへの構造的拡張
伝統的なRPCA分解ではフレームごとに一定の罰則パラメタを与える仕様であったが、Yang, B., Cao, J., Ni, R., & Zou, L. (2018)で採用されているBlock-RPCA(Yang, B., & Zou, L. 2015)は、入力フレームを異なるパッチに分割した上で、各パッチに罰則パラメタを割り当てる。
「一般的に言えば、入力された行列は低いランクの背景とスパースな背景で構成されている。前景はRPCAを利用して解くことのできる行列分解の理論に基づいて、入力行列を背景と前景に分割することによって検出することが可能になる。」
Yang, B., & Zou, L. (2015). Robust foreground detection using block-based RPCA. Optik-International Journal for Light and Electron Optics, 126(23), 4586-4590., 引用はp4586.
Yang, B., & Zou, L. (2015)で提唱されているBlock-RPCAは、従来のRPCAとは異なり、初期のセグメンテーションによって取得できるデータ構造のブロック(Block)に準拠している。RPCAの近似追跡によって得られた特徴の軌道情報は、ブロックベースのRPCAを構築するために必要となる均衡パラメタを計算するために参照できる。Block-RPCAのアルゴリズムは次の三段階に大別できる。
- 3フレーム差分法により、移動した可能性の高い観測データ点をセグメント化する。
- カルマンフィルタにより外れ値を除去することで、初期のセグメンテーション結果における物体の軌跡を確定する。
- IALM(inexact lagrangian augmented multipliers)によってBlockの解を出し、RPCAで前景を検出する。
機能的等価物の探索:背景差分法
Yang, B., & Zou, L. (2015)でも明記されているように、前景の検出は「背景差分法(background subtraction approach)」によっても実現する。この背景差分法は、深層畳み込みニューラルネットワークとの関連から用いられてきたという点で、実績のある方法として挙げられる。差分画像の生成方法は、単に二つのフレームの減算だけで成り立つとは限らない。
「本質的に、背景差分は、背景(BG)モデルと呼ばれる静的シーンのモデルを初期化または更新することで、そのモデルを入力画像と比較することによって成立する。顕著な差異を有するピクセルあるいは領域は、動いている対象物の属性であると見做される(それらは前景:FGを構成する。)したがって、完全な背景差分法は、背景の初期化過程、背景のモデリング戦略、更新の機構、そして減算操作という、4つの要素を有している。」
Braham, M., & Van Droogenbroeck, M. (2016). Deep background subtraction with scene-specific convolutional neural networks. In IEEE International Conference on Systems, Signals and Image Processing (IWSSIP), Bratislava 23-25 May 2016 (pp. 1-4). IEEE., p1.
Braham, M., & Van Droogenbroeck, M. (2016)では、この背景のモデリング戦略と減算操作を考慮した上で、深層畳み込みニューラルネットワークを利用した方法を提案している。ベイズ的に表現するなら、背景のみの画像データセットから事前分布を抽出し、前景と背景で構成された学習データを尤度関数とした上で、前景と背景の二値データを事後分布として得る方法と言える。
このモデルはリアルタイム性や適応性を加味して設計されている訳ではない。上記の論文では、背景データは150枚ほど人手で選定されている。この意味では教師あり学習で要求される程度にはヒューマンリソースを費やす。
しかし、固定された画角で撮影された周期的に反復される行動の認識においては、背景そのものの確率分布は変異しないと考えるのは妥当と考えられる。時系列自己符号化器を設計して実装できているならば、深層畳み込みニューラルネットワークにも機能的に再利用可能になっているはずなので、設計と実装のコストは節約できる。少なからずRPCAを導入するよりは遥かに安い。
機能的等価物の探索:深層背景学習
前景の検出器があり得るのなら、背景の検出器もあり得る。
「動的な背景から前景を検出することは、困難な課題である。何故なら、綺麗な背景画像の集合を発見することが非常に困難で、背景もまた動的に変異するからである。前景が消失している時か、映像系列の中で発生している時に、映像のフレームにおける幾つかの部分は綺麗な背景となる。そのため、ほとんどの時間において、ピクセルは背景に属する。これは、我々の研究の基本的な観察である。」
Xu, P., Ye, M., Li, X., Liu, Q., Yang, Y., & Ding, J. (2014, November). Dynamic background learning through deep auto-encoder networks. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 107-116). ACM., p108.
Xu, P., et al. (2014)で提案されているモデルでは、二つの自己符号化器をスタックした構造として設計されている。二つの自己符号化器をスタックさせているのは、理由のないことではない。このモデルでは、第一の自己符号化器が「背景抽出ネットワーク(Background Extraction Network)」として機能するのに対して、第二の自己符号化器は「背景学習ネットワーク(Background Learning Network)」として機能する。
この自己符号化器は、事前に背景情報に関して学習した後に、背景と前景の差異を推論するモデルとなっている。
自己符号化の構造
「背景抽出ネットワーク」に入力される観測データ点は、グレースケールに変換された画像のピクセル値を一次元にflattenした1次元のベクトルとなる。値は0-256から0-1にスケールされている。その際、映像の各フレームは次のように表現される。
$$\vec{x} = \{x^1, x^2, …, x^D\} \ (x^j \in [0, 1]^N)$$
ここで$$D$$はフレーム数を意味する。$$N$$は1フレームにおけるピクセル数を意味する。この集合 $$\vec{x}$$ が、「背景抽出ネットワーク」への入力データとなる。一方、「背景抽出ネットワーク」からの出力データは、次のようになる。
$$B^0 \in [0, 1]^N$$
次の$$h_1$$ と $$h_2$$ は、それぞれの符号化の段階で出力された値である。
$$h_1 = f(x) = sigm(W_{1}x + b_1)$$
$$h_2 = f(h_1) = sigm(W_{2}h_1 + b_2)$$
ここで、$$f$$は特徴変換の関数で、$$sigm$$はシグモイド関数ないしロジスティクス関数を意味する。$$W_{1}x$$ と $$W_{2}h_1$$ はそれぞれ、Encoderにおける第一と第二の重み行列を表す。$$b_N$$ は N層目のバイアスのベクトルを表す。復号化の段階での出力は次のようになる。
$$h’_1 = g(h_2) = sigm(W^T_2 h_2 + b_3)$$
再構成の特徴点(feature points)は次のようになる。
$$\vec{\hat{x}} = g(h’_1) = sigm(W^T_1 h’_1 + b_4)$$
最小化すべきコスト関数は典型的なクロスエントロピーとなっている。
$$\epsilon (\vec{x}) = – \sum_{i=1}^{N}(\vec{x}_i \log \hat{\vec{x}}_i + (1 \vec{x}_i) \log (1 \hat{\vec{x}}_i))$$
コスト関数の設計
ここまでの記述は全く何も新しくない。
むしろ特筆すべきなのは、論文でも明記されている通り、「テクニカルに設計されたコスト関数(a technically designed cost function)」(Xu, P., et al. 2014, p108.)である。「背景抽出ネットワーク」の出力は、「背景学習ネットワーク」の入力となる。しかし両者の中継点には、次のような分離機能/関数(separation function)が導入されている。
$$S(\hat{\vec{x}}_i^j, B_i^0) \ (i = 1, 2, …, N)$$
二つの復号化の層を仮定するなら、この分離関数の出力はそれぞれ$$h_{B_1}$$ と $$h_{B_2}$$ となる。また、符号化と再構成の層の出力はそれぞれ $$h’_1$$ と $$\hat{\vec{B}}$$ と表せる。
この特殊なコスト関数を導入するにあたり、Xu, P., et al. (2014)は、「前景」と「背景」の区別を「クリーンなデータ(clean data)」と「ノイズのデータ(noise data)」の区別で展開している。ここからこのモデルはノイズ除去型自己符号化(Denoising Auto-encoder)の発想に近付いていく。つまりこのモデルの学習は、「前景」と「背景」の混成によって成り立つ観測データ点をノイズありの観測データ点として学習していくアルゴリズムと論理的に等価となる。
「第一の自己符号化器は、『クリーンな』背景画像および各ピクセルの背景の変動の許容範囲を学習するノイズ除去型の自己符号化器のように働く。許容度は、最初のDフレームの各々の背景画像を得るために有用となる。L1の最適化を利用することで、フレームをBを適合するだけでは、良好な結果は得られない。抽出された背景画像には前景が含まれている。深層アーキテクチャは、背景のより不変な表現を学習する。これにより、『クリーンな』背景画像をより良く再構成することで、前景を除去することを可能にする。我々のアルゴリズムはよりロバストになり得る。」
Xu, P., Ye, M., Li, X., Liu, Q., Yang, Y., & Ding, J. (2014, November). Dynamic background learning through deep auto-encoder networks. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 107-116). ACM., p110.
「背景抽出ネットワーク」のコスト関数は次のように定義される。
$$\newcommand{\argmax}{\mathop{\rm arg~max}\limits} \newcommand{\argmin}{\mathop{\rm arg~min}\limits} \min_{\theta_E, B^0, \sigma} \it{L}(\vec{x}^j; \theta_E, B^0, \sigma) = \epsilon (\vec{x}^j) + \sum_{i=1}^{N}\mid\frac{\vec{x}_i^j – B^0}{\sigma_i}\mid + \lambda \sum_{i=1}^{N}\mid \sigma_i \mid$$
ここで、 $$j$$ はフレーム番号を表す。$$N$$は次元を表す。$$\lambda$$ は調整可能なハイパーパラメタで、$$0 < \lambda < 1$$ となる。
上記のコスト関数において、$$B^0$$ は、背景画像の特徴表現となるパラメタを表す。$$\sigma$$ は$$B^0$$ の許容値(tolerance value)を表す。背景のピクセルが変われば、この値も変わる。また、$$\theta_E = W_{E_i} \ (i = 1, 2)$$ で、 $$\ b_{E_i} (j = 1, …, 4)$$となる。
上記コスト関数第二項では、大きな分散に対して弾力性を持たせるために、i番目のピクセルでパラメタ$$\sigma_i$$の近似誤差を除算することになる。上記のコスト関数の第三項は正則化の用途で導入されている。
コスト関数の最適化アルゴリズム
「背景抽出ネットワーク」の学習では、$$\theta_E$$、$$B^0$$、そして$$\sigma$$の訓練が同時に実行される。パラメタ $$\theta_E$$ は、「背景抽出ネットワーク」の重み行列とバイアスベクトルを表している。学習率を $$\eta$$ とするなら、その更新処理は次のようになる。
$$\theta_E = \theta_E – \eta \Delta \theta_E$$
ここで、偏微分は次のように定式化される。
$$\Delta \theta_E = \frac{\partial \it{L} (\theta_E, B^0, \sigma)}{\partial \theta_E} = \frac{\partial \epsilon (\vec{x}^j)}{\partial \theta_E} + \frac{\partial \left(\sum_{i=1}^{N}\mid\frac{\vec{x}_i^j – B_i^0}{\sigma_i}\mid\right)}{\partial \theta_E}$$
右辺第二項は微分可能ではないため、Xu, P., et al. (2014)ではそのderivativeを荒く計算するために、ここでは符号関数(sign function)が導入されている。
$$\Delta \theta_E = \frac{\partial \epsilon (\vec{x}^j)}{\partial \theta_E} + \sum_{i=1}^N sign \left(\frac{\vec{x}_i^j – B_i^0}{\sigma_i}\right)\frac{\partial \hat{\vec{x}}_i^j}{\partial \theta_E}$$
$$\theta_E$$ の更新処理を前提とすれば、 $$B^0$$ の最適化問題は次の最小化問題と論理的に等価となる。
$$\sum_{i=1}^N \left(\min_{B_i^0} \sum_{j=1}^D\mid \hat{\vec{x}}_i^j – B_i^0 \mid\right)$$
この最小化問題は、粒度を細かくすれば、次のように再記述できる。
$$\min_{B_i^0} \sum_{j=1}^D\mid \hat{\vec{x}}_i^j – B_i^0 \mid \ (i = 1, 2, …, N)$$
L1正規化により、最適な $$B_i^0$$ は、 $$\{\hat{\vec{x}}_i^1, …, \hat{\vec{x}}_i^D\}$$ の中央値と同値となる。
$$\theta_E$$ と $$B^0$$ が更新された後の$$\sigma_i$$におけるコスト関数は次のように再記述できる。
$$\it{L}(\sigma_i) = \mid \frac{\hat{\vec{x}}_i^j – B_i^0}{\sigma_i}\mid + \lambda \mid \sigma_i \mid$$
この最適化はその対数形式の最小化と等価となる。$$\ln \it{L}(\sigma_i)$$のderivativeが $$0$$ になるべく再度定式化するなら、次のように再記述できる。
$$\frac{\partial \ln \it{L}(\sigma_i)}{\partial \sigma_i} = \frac{2 \lambda \sigma_i}{\lambda \sigma_i + \mid \hat{\vec{x}}_i^j – B_i^0 \mid} – \frac{1}{\sigma_i} = 0$$
最適な $$\sigma_i$$ は次のようになる。
$$\sigma_i^{\ast} = \sqrt{\mid\frac{\hat{\vec{x}}_i^j – B_i^0}{\lambda}\mid}$$
ミニバッチ学習では、D枚のフレームごとにこの最適値を計算し、その加算平均値をそのバッチの最適値とする。
分離関数/機能の定義
以上の最適化処理を前提とすれば、分離機能/関数となる $$S$$ に具体的な定義を与えることが可能になる。
$$B_i^j = S(\hat{\vec{x}}_i^j, B_i^0) =
\begin{cases}
\hat{\vec{x}}_i^j \ (\mid \hat{\vec{x}}_i^j – B_i^0\mid \leq \sigma_i) \\
B_i^0 \ (\mid \hat{\vec{x}}_i^j – B_i^0\mid > \sigma_i)
\end{cases}
$$
「背景学習ネットワーク」の最適化
「背景学習ネットワーク」の最適化は以下のように定式化される。
$$\it{L}(B^J, \theta_L) = – \sum_{i=1}^N (B_i^j \log \hat{B}_i^j + (1 – B_i^j)\log (1 – \hat{B}_i^j))$$
この最適化には勾配降下法が用いられる。
参考文献
- Braham, M., & Van Droogenbroeck, M. (2016). Deep background subtraction with scene-specific convolutional neural networks. In IEEE International Conference on Systems, Signals and Image Processing (IWSSIP), Bratislava 23-25 May 2016 (pp. 1-4). IEEE.
- Xu, P., Ye, M., Li, X., Liu, Q., Yang, Y., & Ding, J. (2014, November). Dynamic background learning through deep auto-encoder networks. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 107-116). ACM.
- Yang, B., & Zou, L. (2015). Robust foreground detection using block-based RPCA. Optik-International Journal for Light and Electron Optics, 126(23), 4586-4590.