最新AI論文をキャッチアップ

双方向畳み込みプーリング「LiftPool」登場!

双方向畳み込みプーリング「LiftPool」登場!

画像認識

3つの要点
✔️ 双方向プーリング手法"LiftPool"の提案
✔️ 古典的な信号処理理論をもとに、プーリング処理での情報欠落を回避
✔️ 
画像分類・セグメンテーション等の様々なタスクで優れた性能・ロバスト性を発揮

LiftPool: Bidirectional ConvNet Pooling
written by Jiaojiao ZhaoCees G. M. Snoek
(Submitted on 29 Sept 2020 (modified: 24 Feb 2021))
Comments: Accepted to ICLR2021.

Subjects: bidirectional, pooling

code:  

はじめに

CNNにおけるプーリングは、受容野を広げること、入力変動に対するロバスト性を高めるなどのために非常に重要な動作です。しかしながら、既存のプーリングによる特徴量マップのダウンサンプリングは多くの情報を失う処理であり、また、失われた情報を復元することは出来ません。

本記事で紹介する論文では、こうした情報の欠落や一方向性に対処した、双方向プーリング手法であるLiftPoolを提案しています。

LiftPoolは、ダウンプーリング(LiftDownPool)・アッププーリング(LiftUpPool)のどちらも行うことができます。さらに、画像分類やセグメンテーションにて優れた性能を達成し、入力の破損や摂動に対する高いロバスト性をも発揮しました。

手法

LitPoolは、ダウンプーリング(LiftDownPool)・アッププーリング(LiftUpPool)の二つから構成されます。このLiftPoolは、信号処理におけるLifting Schemeから着想を得ており、LiftDownPoolは入力を四つのサブバンド(LL、LH、HL、HH)に分解し、LiftUpPoolはこれらのサブバンドを元に適切なアップサンプリングを行えるように設計されます。

全体のイメージは以下の通りです。

MaxPool→MaxUpPoolを適用した場合は元画像が適切に復元出来ないのに対し、LiftDownPool→LiftUpPoolでは元画像を適切に復元することができる点に注意です。次に、LiftDownPool・LiftUpPoolについてそれぞれ解説します。

LiftDownPool(一次元の場合)

例として、一次元信号について考えます。LiftDownPoolは、与えられた信号$x=[x_1,x_2,x_3,...,x_n], x_n \in R$は、ダウンスケールされた近似信号$s$と差分信号$d$に分解されます。

$s,d=F(x)$

ここで、$F(・)$は三つの関数$f_{split},f_{predict},f_{update}$から構成されています。一次元の場合、LiftDownPoolは以下の図(a)で示されます。

split、predict、updateの詳細は以下の通りです。

・Split

split関数は、$f_{split}: x \mapsto (x^e,x^o)$で表されます。このとき、与えられた信号$x$は、偶数インデックス$x^e=[x_2,x_4,...,x_{2k}]$と奇数インデックス$x^o=[x_1,x_2,...,x_{2k+1}]$の二つの集合に分割されます。 

・Predict

predict関数は、$f_{predict}: (x^e,x^o) \mapsto d$で表されます。このとき予測器$P(・)$は、一方の集合(例えば$x^e$)が与えられたとき、もう一方の集合($x^o$)を予測します。このとき、差分信号$d$は以下のように定義されます。

$d=x^o-P(x^e)$

このとき、$d$は高周波成分にあたります。

・Update

update関数は、$f_{update}: (x^e,d) \mapsto s$で表されます。これは、入力信号$x$からダウンサンプリングされた$x^e$に$U(d)$を加え、平滑化を行うことで近似信号$s$を生成します。

$s=x^e+U(d)$

このとき、$s$は低周波成分にあたります。また、$P(・)$、$U(・)$は以下のように、ReLUと畳み込み演算から設計されます。

$P(·) = Conv(kernel=1,stride=1,groups=C) ◦ ReLU() ◦ Conv(kernel=K,stride=1,groups=C)$

$U(·) = Conv(kernel=1,stride=1,groups=C) ◦ ReLU() ◦ Conv(kernel=K,stride=1,groups=C)$

$K$はカーネルサイズを、$C$は入力チャンネル数を示します。LiftPoolではこれらの関数は、ディープニューラルネットワークによりエンドツーエンドで学習されます。

このとき、最終的な損失関数に二つの制約項$c_u,c_p$が加えられ、損失は以下の式で表されます。

$L=L_{task}+\lambda_uc_u+\lambda_pc_p$

$L_task$は分類タスクやセグメンテーションタスクなど、特定のタスクの損失を表します。

$c_u$は、$s$と$x^o$間のL2ノルムを最小化するため、以下の式で定義されています。

$c_u=||s-x^o||_2=||U(d)+x^e-x^o||_2$

$c_p$は、$d$を最小化するため、以下の式で定義されています。

$c_p=||x^o-P(x^e)||_2$

LiftDownPool(二次元)

二次元におけるLiftDownPoolでは、はじめに水平方向にLiftDownPool-1Dを実行し、水平方向の低周波近似$s$、水平方向の高周波差分$d$を求めます。

次に、これら二つそれぞれについて、垂直方向にLiftDownPool-1Dを実行します。

このとき、$s$はLL(垂直・水平方向の低周波成分)、LH(垂直方向の低周波・水平方向の高周波成分)に、$d$はHL(垂直方向の高周波・水平方向の低周波成分)、HH(垂直・水平方向の高周波成分)に分解され、四つのサブバンドが取得されます。実際に取得された特徴マップの例は以下の通りです。

このとき、LLは詳細度の低い平滑化された特徴マップを、LH・HL・HHはそれぞれ水平・垂直・対角方向に沿った詳細度の高い特徴マップを示します。

LiftDownPoolは、任意の$n$次元信号へと一般化することができます。

LiftUpPool

再び例として、一次元信号について考えます。このときLiftUpPoolは、$s,d$からアップサンプリングされた信号$x$を生成します。

$x=G(s,d)$

ここで、Gは三つの関数$f_{update,f_{predict},f_{merge}}$から構成されています。これらの処理は、$s,d \mapsto x^e,d \mapsto x^e,x^o \mapsto x$と表すことができ、より具体的には以下のようになります(全体のイメージは前述した図(b)で示されています)。

$x^e=s-U(d) (update)$

$x^o=d+P(x^e) (predict)$

$x=f_{merge}(x^e,x^o) (merge)$

アッププーリングはセグメンテーション、超解像、画像のカラー化などのタスクで利用されてきました。しかし、既存のプーリング関数のほとんどは反転可能(invertible)ではなく、高解像度の出力を生成する際に情報の損失が生じます。

一方LiftUpPoolでは、LiftDownPoolにより生成された複数のサブバンドを利用することで、より詳細な出力を生成することが出来ます。

実験

実験では、画像分類タスクにてLiftDownPoolを、セマンティックセグメンテーションタスクでLiftDownPool・LiftUpPoolを適用して検証を行います。

画像分類タスクにおけるLiftPool

・サブバンド選択の柔軟性

二次元画像におけるLiftDownPoolは4つのサブバンドを生成でき、それぞれが異なるタイプの情報を含んでいるため、プーリングの結果どのサブバンドを残すかを柔軟に選択することができます。

はじめに、CIFAR-100上でVGG13を用いた場合のTop-1エラーは以下の通りです。

画像分類の場合、HL(垂直方向)サブバンドが良い性能を発揮しています。

また、全てのサブバンドを合計して結合することで、追加の計算コストをほとんどかけずに性能を向上させられることがわかりました。さらに、$c_u$と$c_p$の制約により、誤差を低減することができることがわかりました。

・LiftDownPoolのカーネルサイズと効果

次の表では、$P(・),U(・)$のカーネルサイズに対する性能を示しています。

カーネルサイズが大きいほど少しずつ性能は向上する傾向がありますが、7になると性能は向上しません。この結果に基づき、以降の実験ではカーネルサイズは5に設定し、全てのサブバンドを合計して利用します。次に、LiftDownPoolとその他のプーリング(MaxPool、AveragePool、Skipなど)を比較した場合は以下の通りです。

この通り、LiftDownPoolは他のプーリング手法より優れた性能を示しました。

・一般化可能性(Generalizability)

ImageNetデータセット上で、ResNet18/50およびMobileNet-V2などのバックボーンにLiftDownPool(と様々なプーリング手法)を適用した場合の比較結果は以下の通りです。

どのバックボーンアーキテクチャを用いた場合でも、LiftDownPoolがその他の手法を凌駕することが示されました。

・パラメータ効率について

LiftPoolでは、$P,U$が一次元畳み込み処理を持っているため、いくらか訓練可能パラメータが追加されています。これらのパラメータ効率を調査するため、ImageNet上のResNet50を用いて、他のパラメータ化されたプーリング手法(GFGPGaussPool)と比較した場合の結果は以下の通りです。

MaxPoolと比べてパラメータ数の増大は3K程度に抑えつつ、エラー率は1.9%削減されており、LiftPoolスキームの有効性が示されたといえます。

ロバスト性分析

・分布外ロバスト性

良好なダウンプーリング法は、摂動やノイズに対してロバストであることが期待されます。ここで、ResNet50を用いて、ImageNet-C上の破損(corruptions)またはImageNet-P上の摂動(perturbations)に対するLiftDownPoolのロバスト性を調査します。この時の結果は以下の通りです。

LiftDownPoolは、mCE(mean Corruption Error)並びにmFR(mean Flip Rate)を効果的に低減しており、ノイズやぼかしなどの破損や摂動に対する高いロバスト性を示しました。

・分布シフトロバスト性

先行研究に従い、二つの異なる分布を持つ同じ画像に対し、ネットワークがどれだけの頻度で同じ分類を出力するかを評価します。このとき、ImageNet上で訓練された様々なバックボーンを用いた場合の結果は以下の通りです。

他のプーリング手法と比較し、LiftDownPool(五角形で表記)は精度・一貫性どちらも向上させることがわかりました。

セマンティックセグメンテーションタスクにおけるLiftPool

PASCAL-VOC12上でのセマンティックセグメンテーションのため、SegNet内のプーリング層をLiftDown/UpPoolで置き換えます。このとき、LiftDownPoolではLLサブバンドのみを保持し、LH/HL/HHサブバンドはアップサンプリングされた特徴マップ生成のために利用されます。比較のためにMaxUpPoolとBlurPoolについても同様に実験を行った場合の結果は以下の通りです。

パラメータ数の増加は僅かながら、ベースラインから大きく性能が改善されていることが分かりました。実際の生成例は以下のようになります。

また、DeepLabV3Plus-ResNet50にLiftDownPoolを適用してセマンティックセグメンテーションタスクを実行した場合の結果は以下のようになります。

この場合でも、全てのベースラインを有意に上回ることが示され、どの実験でもLiftPoolの有効性が示されたといえます。

まとめ

本記事で紹介したLiftPoolは、ダウンプーリング・アッププーリングの両方を行うことができる双方向プーリングです。提案されたLiftPoolのうち、ダウンプーリングであるLiftDownPoolは、画像分類性能とロバスト性を向上させることが示されました。

また、アッププーリングであるLiftUpPoolは、セグメンテーションにおいて、MaxUpPoolを大幅に上回ることが示されました。プーリング処理がCNNにおいて非常に広範に用いられている事を鑑みると、プーリング処理の変更のみで大幅に性能を向上させ得るLiftPoolの重要性は、非常に高いと言えるでしょう。

 

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする