CVPR'21 | Involution:畳み込みと自己注意を超えた新しいニューラルネットワークオペレーター

 

この記事は、CVPR 2021が受け取った記事Involution:Inverting the Inherence of Convolution for Visual Recognitionの解釈であり、ネットワーク構造設計(CNNおよびTransformer)に関する理解の一部も共有しています。

この作業は主に私とSENetの作者である胡傑によって行われ、HKUST @陈启峰と張通先生の2人の講師に感謝します。

 

画像

 

0 概要

 

簡単に言えば、私たちの貢献ポイントは次のとおりです。

(1)新しいニューラルネットワーク演算子(演算子または操作)が提案されますinvolution。これは、convolution軽量でself-attention簡潔な形式より軽量で効率的です。さまざまなビジョンタスクのモデルで使用して、精度と効率を実現できます。二重プロモーション。

(2)involution構造設計により、古典的な畳み込み演算と最近人気のある自己注意演算を統一された視点から理解することができます。

 

1動機づけと畳み込みの反対称的性質 

 

コンテンツのこの部分は、主に元のセクション2、セクション3からのものです。

通常の畳み込みのカーネルには、空間にとらわれないチャネル固有の2つの基本的な特性があります。逆に、インボリューションにはチャネルにとらわれない空間固有の特性があります。

 

 

畳み込み

 

畳み込みカーネルのサイズが書き込まれます。ここで、は出力チャネルと入力チャネルの数ですが、カーネルサイズです。通常は書き込まれません。つまり、同じカーネルが各ピクセル、つまり空間不変性、および各チャネルで共有されます。対応するカーネルを排他的に持っていますこれはチャネル特異性と呼ばれます。畳み込みの演算は次のように表すことができます。

 

 

その中には、入力テンソル、出力テンソル、および畳み込みカーネルがあります。

 

畳み込みの2つの主要な特性を別々に見てみましょう

  • 空間不変性

一方では、空間不変性の利点は次のとおりです。1。パラメータの共有、そうでない場合はパラメータの量が急激に増加します。2。並進などの縮退は、空間内の同様のパターンに対する同様の応答として理解することもできます。明らかに、抽出された特徴は比較的単一であり、畳み込みカーネルのパラメーターは入力に応じて柔軟に調整することはできません。

一方、畳み込み演算のパラメータ量と計算量には1つの項目があるため、チャネル数は数百または数千にもなることが多く、パラメータ量と計算量のスケールを制限するために、多くの場合、小さいです。私たちはVGGNetのカーネルのサイズを使用することに慣れています。これは、一度に遠距離恋愛をキャプチャする畳み込み操作の機能を制限し、複数のサイズのカーネルをスタックすることに依存する必要があります。これは直接使用ほど良くありません。受容野をある程度モデル化するには、より大きな畳み込みカーネルがより効果的です。

  • チャネルの特異性

低ランク近似に関するいくつかの以前の研究では、畳み込みカーネルはチャネル次元に冗長性があるため、表現能力に大きな影響を与えることなく、チャネル次元の畳み込みカーネルのサイズを小さくすることができます。直感的には、各出力チャネルに対応する畳み込みカーネルをサイズの行列に舗装します。そうすれば、行列のランクは超えません。つまり、ほぼ線形に関連するカーネルが多数あります。

 

対合

 

上記の分析に基づいて、畳み込みとは逆の設計特性を持つ、つまりチャネル次元でカーネルを共有し、空間次元でより柔軟なモデリングを行うために空間固有のカーネルを使用する退縮を提案しました。インボリューションカーネルのサイズはです。ここで、はすべてのチャネルがカーネルを共有することを意味します。退縮の操作は次のように表されます。

 

 

その中には、インボリューションカーネルがあります。

インボリューションでは、畳み込みのような学習可能なパラメーターとして固定重み行列を使用する代わりに、入力特徴マップに基づいて対応するインボリューションカーネルを生成し、カーネルサイズと入力特徴サイズを空間次元で自動的に整列できるようにすることを検討します。

それ以外の場合、たとえば、ImageNetの入力トレーニングウェイトとして固定サイズの画像を使用すると、入力画像のサイズが大きいダウンストリームタスク(検出、セグメンテーションなど)に転送できません。インボリューションカーネルによって生成される一般的な形式は次のとおりです。

 

 

その中には、座標近傍のインデックスセットがあるため、フィーチャマップに含まれる特定のパッチを表します。

上記のカーネル生成機能については、さまざまな設計手法が考えられますので、ぜひ検討してみてください。シンプルで効果的な設計コンセプトから始めて、実験を行うためにSEnetと同様のボトルネック構造を提供します。この単一の点セットを取得します。つまり、座標がの特徴マップ上の単一のピクセルを取得し、インボリューションによって生成されます。カーネルインスタンス化

 

 

ここで、およびは線形変換行列、はチャネル削減率、は中央のBNおよびReLUです。

さまざまなカーネル生成関数を設計すると、さまざまな退縮のインスタンス化が発生する可能性があることに注意してください

たとえば、より洗練されたデザインを探索して、退縮の可能性を探索し続けることができます。また、特定のインスタンス化方法を使用して、それを自己注意の形式に特化することもできます(次のセクションを参照)。

上記の単純な退縮カーネルのインスタンス化の下で、完全な退縮の概略図を取得します。

 

画像

 

入力特徴マップの座標点にある特徴ベクトルの場合、最初に(FC-BN-ReLU-FC)変換を介してカーネルの形状に展開し、(チャネルから空間への)変換を行って、対応するものを取得します。この座標点でのインボリューションカーネル、次に、入力特徴マップ上でこの座標点近傍の特徴ベクトルを使用して乗算-加算を実行し、最終的な出力特徴マップを取得します。具体的な操作プロセスとテンソル形状の変更は次のとおりです。

 

 

それらの中には、座標の近くの近隣があります。PyTorchAPIのみに基づく単純な擬似コードの実装は次のとおりです。

 

画像

 

退縮演算のパラメータ量である計算量は、カーネル生成と通常の畳み込みのパラメータ量と計算量よりも大幅に少ない乗算加算(MAdd)の2つの部分に分けられます。

逆に、畳み込みの既存の利点との比較を検討してください。

  1. チャネル上でカーネルを共有すると(Gカーネルのみ)、大きな空間スパン(増加)を使用できるため、空間次元の設計を通じてパフォーマンスが向上し、チャネル次元を通じて設計の効率が確保されます(表6aのアブレーション)。 、6b)重みが異なる空間位置で共有されていない場合でも、パラメーターと計算の量が大幅に増加することはありません。

  2. 空間内の各ピクセルのカーネルパラメーターを直接共有することはありませんが、メタパラメーター(カーネル生成関数のパラメーターを参照するメタウェイト)をより高いレベルで共有するため、異なる空間にいることができます。ポジション知識を共有し、移行します。比較のために、パラメータ数の大幅な増加の問題は別として、カーネルの空間共有に対する畳み込みの制限が完全に緩和され、各ピクセルが対応するカーネルパラメータを自由に学習できる場合、この効果はできません。達成しました。

要約すると、畳み込みからインボリューションへのこの設計は、実際にはマイクロレベル(操作レベル)での計算能力の再割り当てであり、ネットワーク設計の本質は計算能力の割り当てであり、目的は制限されたものを調整することです計算能力。パフォーマンスを最も発揮できる位置まで。たとえば、NASはネットワークレベルでの自動検索を通じて計算能力を最適化します。

 

2ディスカッションと自己注意の相関関係 

 

コンテンツのこの部分は、主に元のセクション4.2からのものです

自己注意

自己注意は次のように表現できることがわかっています(簡単にするために、位置エンコード部分は省略されています)

 

 

その中には、入力線形変換後に取得されたクエリ、キー、および値がそれぞれあり、マルチヘッド自己注意のヘッド数です。下付き文字は、対応するピクセルとのクエリキーの一致を示し、クエリに対応するキーの範囲を示します。これは、ローカルパッチ(ローカル自己注意)またはフルイメージ(グローバル自己注意)の場合があります。

私たちはさらに自己注意を拡大し、それを次のように書きます

 

 

退縮の表現を比較すると、類似点を見つけることは難しくありません。

  • 自己注意の異なる頭は、退縮の異なるグループに対応します(チャネル次元で分割)

  • 自己注意の各ピクセルの注意マップは、対合の各ピクセルのカーネルに対応します

退縮のカーネル生成関数が次のようにインスタンス化されることを選択した場合

 

 

そして、自己注意も一種の退縮の具体化であるため、退縮はより一般的な表現形式であることがわかります。

また、注意行列乗算前の線形変換に対応します。自己注意演算後は、通常、別の線形変換と残差接続が接続されます。この構造は、インボリューションを使用して置き換えるresnetボトルネック構造の畳み込みに対応します。前後もあります。2つの畳み込みが線形変換を行います。

位置エンコーディングについて話しましょう:

自己注意は順列不変であるため、位置情報を区別するために位置エンコーディングが必要です。この記事でインスタンス化されたインボリューションユニットでは、生成されたインボリューションカーネルの各要素は位置自体によってソートされるため、追加の位置情報はありません。

バックボーンを構築するための純粋な自己注意に基づく他の作業(スタンドアロンの自己注意、ラムダネットワークなど)は、クエリとキーの関係の代わりに位置エンコーディングを使用するだけでかなりのパフォーマンスを達成できることに気づきました。つまり、注意マップの使用です。 (位置エンコーディング行列)の代わりに。退縮の観点からは、これは退縮をインスタンス化するためのカーネル生成の単なる別の形式です。

したがって、バックボーンネットワーク構造における自己注意の効果的な性質は、長距離で自己適応的な相互作用をキャプチャすることである可能性があることを再考します。素人の用語では、大規模で動的なカーネルが使用され、このカーネルはクエリキーで構築されます関係。必要ありません。

一方、私たちのインボリューションカーネルは単一のピクセルによって生成されるため、このカーネルは適用のために画像全体に拡張するのには適していませんが、比較的大きな近隣(たとえば)に適用することは可能です。グローバルな自己注意を使用しても、ネットワークの浅い層が複雑なグローバル情報を実際に使用することは困難であるため、CNN設計の局所性は依然として宝物です。

したがって、使用したインボリューションは、自己注意の多くの複雑なものを削除します。たとえば、インボリューションカーネルを生成するために(アテンションマップを生成するためにピクセル間の対応に依存するのではなく)単一ピクセルの特徴ベクトルのみを使用します。これはカーネルを生成するときに暗黙的に行われます。ピクセルの位置情報はグラウンドでエンコードされ(明示的な位置エンコードは破棄されます)、それによって非常にクリーンで効率的な操作が構築されます。

 

ビジョントランスフォーマー

 

自己注意について説明したので、最近のViTの作業について言及する必要があります。バックボーン構造については、純粋な自己注意またはインボリューションモデルがCNNよりも優れており、ViTよりも優れていると考えています(トランスフォーマーにはデコーダーとして他の利点がある場合があります。たとえば、DETRでは、当面はここをクリックしてください)

ViTの多くの人々は、下部の線形射影は実際には畳み込みに似ており、高レベルではグローバルな自己注意を使用して関係を抽出します。これは、畳み込みと自己注意のハイブリッドモデルとして抽象化できます。このハイブリッド構造の提案はそれ自体が合理的です。畳み込みは低レベルの情報を低レベルで抽出するために使用され、自己注意は高レベルの意味関係を高レベルでモデル化するために使用されます。

ただし、ViTの最下層のconv部分は不十分です。自己注意爆発計算の量に応じて、画像は入力端で16x16パッチに直接分割されます。入力フィーチャサイズは、基本的に、 2つの段階の特徴サイズ、ネットワークの最下層は、より詳細な画像情報には非常に不十分であり、中間処理段階で特徴サイズを減少させる変換はありません。

したがって、ICLR'21で提案されたViT構造設計は本質的に非科学的です。ViTを改善するための最近のいくつかの作業は、基本的に、空間次元の改良の自己注意操作を追加することとして要約できます(パッチローカルある意味で、ViTは純粋な自己のようになりつつあります-注意/インボリューションベースのモデル。

一般的に、畳み込み、自己注意、新しい対合のいずれであっても、メッセージパッシングと機能集約の組み合わせです。外観は異なりますが、本質的に分離する必要はありません

 

3実験結果 

 

全体:

1)パラメータの量と計算の量は減少しますが、パフォーマンスは向上します

2)さまざまなモデルのさまざまな位置に追加して、バックボーン、ネック、ヘッドなどの畳み込みを置き換えることができます。一般的に、交換する部品が多いほど、モデルの費用効果が高くなります。

 

ImageNet画像分類

 

画像

 

私たちは、バックボーンネットワークの新しい家族、得ることがResNetボトルネックブロックに畳み込みを置き換えるために退縮を使用RedNetそのパフォーマンスと効率ResNetよりも優れていると他の自己注意SOTAモデル。

 

COCOターゲットの検出とインスタンスのセグメンテーション

 

画像

 

その中で、完全な退縮ベースの検出器(退縮はバックボーン、ネック、およびヘッドで使用されます)は、パフォーマンスがわずかに改善または変更されないという前提の下で、計算の複雑さを40%に減らすことができます。

 

都市景観のセマンティックセグメンテーション

 

画像

 

COCO検出タスクでは、大きなオブジェクトのインデックスが最も向上し(3%〜4%)、大きなオブジェクト(壁、トラック、バスなど)の単一カテゴリのIoUが向上したことは言及する価値があります。 Cityscapesセグメンテーションタスクの最も重要な改善(最大10%または20%以上)。これは、前の分析で述べたインボリューションが、空間でのコンボリューションと比較して、遠距離恋愛の動的モデリングに大きな利点があることも確認します。 。

最後に、この作業はまた、誰もがさらに探求するためのいくつかの穴を残しました:

  1. 一般化された対合におけるカーネル生成関数空間のさらなる調査。

  2. オフ生成関数を追加する変形可能な畳み込みと同様に、このop空間モデリング機能の柔軟性はさらに向上します。

  3. NASテクノロジーを組み合わせて、畳み込みと対合のハイブリッド構造を検索します(元のセクション4.3)。

  4. 自己注意は表現の一形態に過ぎないと前述しましたが、(自己)注意メカニズムがより良い視覚モデルを設計するためのインスピレーションを与えてくれることを願っています。検出分野での最近の優れた研究と同様に、それもDETRのアーキテクチャ。多くのメリットがあります。

論文へのリンク: https //arxiv.org/abs/2103.06255

コードとモデルのリンク: https //github.com/d-li14/involution

2021年には、バックボーンネットワーク構造の設計がより本質的で多様な開発になることを願っています。

おすすめ

転載: blog.csdn.net/jacke121/article/details/115264019
おすすめ