9つの一般的な畳み込みニューラルネットワークの紹介

9つの一般的な畳み込みニューラルネットワークの紹介

畳み込みの目的は、入力から有用な特徴を抽出することです。画像処理では、さまざまなフィルターを選択できます。各タイプのフィルターは、水平/垂直/対角エッジなどのさまざまな特徴を入力画像から抽出するのに役立ちます。畳み込みニューラル ネットワークでは、トレーニング中に重みが自動的に学習されるフィルターを使用してさまざまな特徴が抽出され、その後、抽出されたすべての特徴が「組み合わせられて」決定が下されます。

目次:

  1. 2D畳み込み
  2. 3D畳み込み
  3. 1×1畳み込み
  4. 空間的に分離可能な畳み込み
  5. 深さ方向分離畳み込み
  6. グループ化ボリューム
  7. 膨張畳み込み
  8. デコンボリューション
  9. 退縮

2D畳み込み

単一チャネル: ディープラーニングでは、畳み込みは基本的に、畳み込み値を取得するために信号を要素ごとに乗算して累積することです。 1 チャネルの画像の場合、次の図は畳み込み演算の形式を示しています。

ここでのフィルターは、要素 [[0, 1, 2], [2, 2, 0], [0, 1, 2]] を持つ 3 x 3 行列です。フィルターは入力データ上をスライドします。各位置で、要素ごとの乗算と加算を行っています。各スライドの位置は数字で終わり、最終的な出力は 3 x 3 のマトリックスになります。

マルチチャンネル: 画像には通常、RGB の 3 つのチャンネルがあるため、マルチチャンネル入力のシナリオでは畳み込みが一般的に使用されます。次の図は、マルチチャネル入力シナリオの操作形式を示しています。

ここで、入力層は 3 つのチャネルを持つ 5 x 5 x 3 マトリックスであり、フィルターは 3 x 3 x 3 マトリックスです。まず、フィルター内の各カーネルが入力層の 3 つのチャネルにそれぞれ適用され、3 つの畳み込みが実行されて、サイズ 3×3 の 3 つのチャネルが生成されます。

次に、これら 3 つのチャネルを (要素ごとに) 合計して、入力層 (5 x 5 x 3 行列) とフィルター (3 x 3 x 3 行列) を畳み込んだ結果である単一のチャネル (3 x 3 x 1) を形成します。

3D畳み込み

前の図では、実際に 3D 畳み込みを実行していることがわかります。しかし、一般的には、ディープラーニングでは依然として 2D 畳み込みと呼ばれています。フィルターの深度は入力レイヤーの深度と同じなので、3D フィルターは 2 次元 (画像の高さと幅) でのみ移動し、結果は単一のチャネルになります。 2D 畳み込みを一般化すると、3D 畳み込みは、フィルターの深さが入力層の深さよりも小さい (つまり、畳み込みカーネルの数が入力層のチャネル数よりも小さい) と定義されるため、3D フィルターは 3 次元 (入力層の長さ、幅、高さ) でスライドする必要があります。フィルター上をスライドする各位置で畳み込み演算が実行され、値が得られます。フィルターが 3D 空間全体をスライドするため、出力構造も 3D になります。 2D 畳み込みと 3D 畳み込みの主な違いは、スライディング フィルターの空間次元です。3D 畳み込みの利点は、3D 空間内のオブジェクト間の関係を記述できることです。 3D 関係は、3D オブジェクトのセグメンテーションや医療画像の再構成などの一部のアプリケーションでは非常に重要です。

1×1畳み込み

1*1 畳み込みでは、特徴マップの各値に数値が掛けられているように見えますが、実際はそれ以上です。まず、活性化層を通過するため、実際には非線形マッピングを実行します。次に、特徴マップのチャネル数を変更することができます。

上の図は、H x W x D の次元の入力レイヤーに対する操作を示しています。サイズが 1 x 1 x D のフィルターを使用した 1 x 1 畳み込みの後、出力チャネルの寸法は H x W x 1 になります。このような 1 x 1 畳み込みを N 回実行し、その結果を組み合わせると、H x W x N 次元の出力レイヤーが得られます。

空間的に分離可能な畳み込み

分離可能な畳み込みでは、カーネル操作を複数のステップに分割できます。畳み込みは y = conv(x, k) で表されます。ここで、y は出力画像、x は入力画像、k はカーネルです。このステップは非常に簡単です。次に、k は次の式で計算できると仮定します: k = k1.dot(k2)。これにより、分離可能な畳み込みが実現します。これは、k を使用して 2D 畳み込みを実行する代わりに、k1 と k2 を使用して 2 つの 1D 畳み込みを実行することで同じ結果を得ることができるためです。

画像処理でよく使用される Sobel カーネルを例に挙げてみましょう。ベクトル[1,0,-1]と[1,2,1].Tを乗算すると、同じカーネルが得られます。同じ操作を実行するには、9 個ではなく 6 個のパラメータだけが必要です。

深さ方向分離畳み込み

空間的に分離可能な畳み込み (前のセクション) ですが、ディープラーニングでは、深さ方向に分離可能な畳み込みは、チャネルを独立したまま空間畳み込みを実行し、その後に深さ方向の畳み込み演算を実行します。 16 個の入力チャネルと 32 個の出力チャネルを持つ 3x3 畳み込み層があるとします。つまり、16 個のチャネルのそれぞれが 32 個の 3x3 カーネルによって走査され、512 個 (16x32) の特徴マップが生成されます。次に、各入力チャネルからの特徴マップを追加して、大きな特徴マップを合成します。これを 32 回実行できるため、必要な 32 個の出力チャネルが得られます。では、同じ例で深さ方向に分離可能な畳み込みはどのように機能するのでしょうか?それぞれ 3x3 カーネルを持つ 16 個のチャネルを反復処理して、16 個の特徴マップを生成します。ここで、マージを行う前に、それぞれ 32 個の 1x1 畳み込みを含む 16 個の特徴マップをループし、それらを 1 つずつ追加していきます。これにより、上記の 4608 (16x32x3x3) パラメータではなく、656 (16x3x3 + 16x32x1x1) パラメータが生成されます。詳しい説明は下記に記載しております。前のセクションで説明した 2D 畳み込みカーネル 1x1 畳み込み。まず、標準的な 2D 畳み込みについて簡単に説明します。具体的な例を挙げると、入力層のサイズが 7 x 7 x 3 (高さ x 幅 x チャンネル)、フィルターのサイズが 3 x 3 x 3 で、1 つのフィルターによる 2D 畳み込み後の出力層のサイズが 5 x 5 x 1 (チャンネルは 1 つだけ) であるとします。次の図に示すように:

一般的に、2 つのニューラル ネットワーク レイヤーの間には複数のフィルターが適用されます。フィルターの数が 128 であると仮定します。128 の 2D 畳み込みにより、5 x 5 x 1 の出力マップが 128 個生成されます。これらのマップは、5 x 5 x 128 のサイズの単一のレイヤーに積み重ねられます。高さや幅などの空間次元は縮小し、奥行きは拡大します。次の図に示すように:

次に、深さ方向に分離可能な畳み込みを使用して同じ変換を実現する方法を見てみましょう。まず、入力層に深さ方向の畳み込みを適用します。 2D 畳み込みでは、サイズが 3 x 3 x 3 の単一のフィルターを使用する代わりに、3 つの畳み込みカーネル (各フィルターのサイズは 3 x 3 x 1) を使用します。各畳み込みカーネルは、入力層の 1 つのチャネルのみを畳み込みます。このような畳み込みにより、毎回 5 x 5 x 1 サイズのマッピングが生成されます。これらのマッピングは積み重ねられて 5 x 5 x 3 サイズの画像が作成され、最終的に 5 x 5 x 3 サイズの出力画像が得られます。こうすることで、画像の深さは元の画像と同じままになります。

深さ方向に分離可能な畳み込み — 最初のステップ: サイズが 3 x 3 x 3 の単一のフィルターを使用する代わりに、2D 畳み込みで 3 つの個別の畳み込みカーネル (各フィルターのサイズは 3 x 3 x 1) を使用します。各畳み込みカーネルは、入力層の 1 つのチャネルのみを畳み込みます。このような畳み込みにより、毎回 5 x 5 x 1 サイズのマッピングが生成されます。これらのマッピングは積み重ねられて 5 x 5 x 3 サイズの画像が作成され、最終的に 5 x 5 x 3 サイズの出力画像が得られます。深さ方向に分離可能な畳み込みの 2 番目のステップは、深さを拡張することです。サイズが 1x1x3 のカーネルを使用して 1x1 畳み込みを実行します。各 1x1x3 畳み込みカーネルは 5 x 5 x 3 の入力画像を畳み込み、サイズ 5 x 5 x1 のマッピングを生成します。

この場合、128 個の 1x1 畳み込みを実行すると、サイズが 5 x 5 x 128 のレイヤーを取得できます。

グループ畳み込み

グループ畳み込みは、AlexNet で初めて登場しました。当時のハードウェア リソースが限られていたため、AlexNet のトレーニング時に畳み込み演算をすべて同じ GPU で処理することはできませんでした。そのため、著者は特徴マップを複数の GPU に分割して個別に処理し、最終的に複数の GPU の結果を融合しました。

以下では、グループ化畳み込みがどのように実装されるかについて説明します。まず、従来の 2D 畳み込み手順を下の図に示します。この場合、サイズ 7 x 7 x 3 の入力レイヤーは、128 個のフィルター (各フィルターのサイズは 3 x 3 x 3) を適用して、サイズ 5 x 5 x 128 の出力レイヤーに変換されます。一般的なケースでは、次のように要約できます。サイズ Hin x Win x Din の入力層は、サイズが hxwx Din の Dout 畳み込みカーネルを適用することで、サイズが Hout x Wout x Dout の出力層に変換できます。グループ畳み込みでは、フィルターは異なるグループに分割され、各グループが特定の深さの従来の 2D 畳み込みの処理を担当します。以下の例でより明確になります。

膨張畳み込み

膨張畳み込みが別の畳み込み層に導入するパラメータは膨張率と呼ばれます。これはカーネル内の値間の間隔を定義します。拡張率が 2 の 3x3 カーネルは、9 つ​​のパラメータのみを使用して、5x5 カーネルと同じ視野を持ちます。 5x5 カーネルを取得し、行と列を交互に削除することを想像してください。 (下図に示すように) システムは、同じ計算コストでより大きな受容野を提供できます。拡張畳み込みは、リアルタイムセグメンテーションの分野で特に人気があります。 より広い観測範囲が必要であり、複数の畳み込みやより大きなカーネルを使用できない場合に使用できます。

直感的に言えば、拡張畳み込みはカーネル部分の間にスペースを挿入することによってカーネルを「拡張」します。この追加されたパラメータ l (拡張率) は、畳み込みカーネルをどれだけ広げたいかを示します。下の図は、l=1,2,4 の場合の畳み込みカーネルのサイズを示しています。 (l=1 の場合、拡張畳み込みは標準畳み込みになります)。

デコンボリューション

ここで言及されているデコンボリューションは、1D信号処理のデコンボリューション計算とは大きく異なります。FCNの作者はこれを逆畳み込みと呼んでいますが、デコンボリューション層は非常に不運な名前であり、むしろ転置畳み込み層と呼ぶべきだと言う人もいます。CNNにはコン層とプール層があることがわかります。コン層は画像に畳み込みを実行して特徴を抽出し、プール層は画像を半分に縮小して重要な特徴を選別します。IMAGENETなどの古典的な画像認識CNNネットワークの場合、最終出力結果は1X1X1000で、1000はカテゴリタイプで、1x1が得られます。 FCN の作者、またはその後エンドツーエンドの研究を行った研究者は、最終的な 1x1 結果にデコンボリューションを使用しました (実際、FCN の作者の最終出力は 1X1 ではなく、画像サイズの 32 分の 1 ですが、これはデコンボリューションの使用には影響しません)。ここでの画像の逆畳み込みは、図 6 の完全な畳み込みの原理と同じです。この逆畳み込み方法は、画像を大きくするために使用されます。FCN の著者が使用した方法は、ここで説明した逆畳み込みの変形であり、対応するピクセル値を取得して、画像をエンドツーエンドで実現できます。

最も一般的に使用されるデコンボリューションの種類は 2 つあります。

方法1:完全畳み込み、完全畳み込みは元の領域を大きくすることができる

方法 2: プーリング インデックスを記録し、スペースを拡張してから、畳み込みで埋めます。画像のデコンボリューション処理は次のとおりです。

入力: 2x2、畳み込みカーネル: 4x4、スライディングステップ: 3、出力: 7x7

つまり、入力画像は 2x2 であり、ステップ サイズが 3 の 4x4 畳み込みカーネルで逆畳み込みされます。

1. 入力画像の各ピクセルに対して完全な畳み込みを実行します。完全な畳み込みのサイズ計算によると、畳み込み後の各ピクセルのサイズは 1+4-1=4、つまり 4x4 の特徴マップであることがわかります。入力には 4 つのピクセルがあるため、4x4 の特徴マップが 4 つあります。

2. 4 つの特徴マップをステップ サイズ 3 で融合 (追加) します。たとえば、赤の特徴マップは元の入力位置 (左上隅) に残り、緑は元の位置 (右上隅) に残ります。ステップ サイズ 3 は、3 ピクセルごとに融合が実行され、重複部分が追加されることを意味します。つまり、出力の最初の行と 4 列目は、赤の特徴マップの最初の行と 4 列目と緑の特徴マップの最初の行と 1 列目を加算することによって得られます。

逆畳み込みのサイズは畳み込みカーネルのサイズとスライディングステップのサイズによって決まり、inは入力サイズ、kは畳み込みカーネルのサイズ、sはスライディングステップのサイズ、outは出力サイズであることがわかります。

結果は、out = (in - 1) * s + k となります。

上図のプロセスは、(2 - 1)* 3 + 4 = 7です。

退縮

論文: 畳み込み: 視覚認識のための畳み込みの本質の反転 (CVPR'21)

オープンソースコードアドレス: https://github.com/d-li14/involution

ニューラル ネットワーク アーキテクチャの急速な発展にもかかわらず、畳み込みは依然としてディープ ニューラル ネットワーク アーキテクチャを構築するための主要なコンポーネントです。古典的な画像フィルタリング手法にヒントを得た畳み込みカーネルには、空間に依存しない、チャネル固有の 2 つの重要な特性があります。 Spatial では、前者のプロパティにより、異なる位置間での畳み込みカーネルの共有が保証され、変換不変性が実現されます。チャネル領域では、畳み込みカーネルのスペクトルは、異なるチャネルでエンコードされたさまざまな情報を収集する役割を担い、後者の特性を満たします。さらに、VGGNet の登場以来、現代のニューラル ネットワークは、畳み込みカーネルの空間スパンを 3*3 以下に制限することで、畳み込みカーネルのコンパクトさを満たしています。

一方では、Spatial-Agnostic と Spatial-Compact の特性は、効率性の向上と変換不変性の同等性の説明という点では意味をなしますが、畳み込みカーネルから異なる空間位置での異なる視覚パターンに適応する能力を奪います。さらに、局所性により畳み込みの受容野が制限されるため、小さな物体やぼやけた画像では問題が生じます。一方、多くの従来のディープ ニューラル ネットワークでは、畳み込みカーネル内のチャネル間冗長性が顕著であり、異なるチャネルに対する畳み込みカーネルの柔軟性が制限されることはよく知られています。

上記の制限を克服するために、本論文の著者らは、標準的な畳み込みと比較して対称的な逆特性、すなわち空間固有かつチャネル非依存の特性を持つ、畳み込みと呼ばれる操作を提案しました。具体的には、反転カーネルは空間範囲が異なりますが、チャネルでは共有されます。畳み込みカーネルの空間特性により、畳み込みカーネルのように固定サイズの行列としてパラメータ化され、バックプロパゲーションアルゴリズムを使用して更新されると、学習した畳み込みカーネルを異なる解像度の入力画像間で転送することが妨げられます。可変特徴解像度の処理の最後に、特定の空間位置に属する反転カーネルが、対応する位置自体の入力特徴ベクトルにのみ条件付きでインスタンスとして生成される場合があります。さらに、著者らは、チャネル次元全体で反転カーネルを共有することにより、反転カーネルの冗長性を削減します。

上記の 2 つの要素を組み合わせると、畳み込み操作の計算の複雑さは特徴チャネルの数に比例して増加し、動的にパラメータ化された畳み込みカーネルは空間次元で広い範囲をカバーします。この論文で提案されている畳み込みは、逆の設計スキームを通じて、畳み込みの二重の利点を持っています。

1: 反転により、より広い空間でコンテキストを集約できるため、長距離相互作用をモデル化する難しさが克服される

2: Involution は、さまざまな場所に適応的に重みを割り当てて、空間領域内で最も情報量の多い視覚要素を優先することができます。

ご存知のとおり、Self-Attention に基づく最近の研究では、多くのタスクで、機能の長期的な依存関係を捉えるために、モデリングに Transformer を使用することを提案していることが示されています。これらの研究では、純粋な Self-Attention を使用して、優れたパフォーマンスを持つ独立したモデルを構築できます。この記事では、Self-Attention がカーネル構造に関する複雑な式を通じて隣接するピクセル間の関係をモデル化することを明らかにし、これは実際には反転の特殊なケースです。対照的に、この論文で採用されているカーネルは、隣接するピクセルとの関係ではなく、単一のピクセルに基づいて生成されます。さらに、著者らは、単純なバージョンでも Self-Attention の精度を達成できることを実験的に実証しています。

反転の計算プロセスを次の図に示します。

入力特徴マップの座標点における特徴ベクトルに対して、まず∅(FC-BN-ReLU-FC)および再形成(チャネルから空間への)変換によりカーネルの形状に拡張し、この座標点に対応する反転カーネルを取得し、次に入力特徴マップ上のこの座標点の近傍の特徴ベクトルと乗算加算して、最終的な出力特徴マップを取得します。具体的な操作プロセスとテンソルの形状の変更は次のとおりです。

さらに、著者は MM シリーズ コードに基づいて、mmclassification、mmsegmentation、mmdetection のいくつかのモデルを実装しました。

<<:  自動運転:「乗っ取り」という言葉を恐れるのをやめよう

>>:  追加データなしで、ImageNetで初めて87.1%の精度を達成した。Yan ShuichengのチームはVOLOをオープンソース化した。

ブログ    
ブログ    
ブログ    

推薦する

生体認証技術丨「ブラックテクノロジー」で体のパスワードを解読

生体認証技術は、身体本来の生理学的特性や行動特性を利用して、コンピューターで個人を識別します。生理学...

...

実用的なヒント | 人工知能に変身するために習得すべき 8 つのニューラル ネットワーク

なぜ機械学習が必要なのでしょうか?機械学習は、人間が直接プログラムできない複雑な問題を解決できるため...

5つの新たなAI IoTアプリケーション

人工知能とモノのインターネットを組み合わせたこの新しい技術の波は、新たな機会をもたらし、業界全体の運...

2027年までに、世界のAI医療画像ソリューション市場は47億2,060万米ドルに達すると予測されています。

3月26日、エマージング・リサーチが発表した最新レポートによると、世界の人工知能医療画像ソリューシ...

人工知能とインテリジェント人工知能、AIの開発はデータサポートから切り離せない

AIは半世紀以上もの間、低調でしたが、囲碁の人工知能プログラム、AI茶室、AI+医療、AI+交通など...

Amazon Pollyについて

Amazon Polly は、テキストをリアルな音声に変換するサービスです。これにより、音声を発する...

...

...

顔認識と指紋認識のどちらがより定量化しやすいでしょうか?

顔認証と指紋認証は、携帯電話のロックを解除する主な 2 つの方法です。私たちは、日常の仕事でも公共の...

人工知能が遠隔患者ケアに革命を起こす

パンデミックにより、遠隔患者ケアのための人工知能(AI)の進歩が加速した。医師は、デジタル患者モニタ...

法律分野で初の「1対多」の人間と機械の競争が始まり、AI弁護士が契約書審査で人間を上回る

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

生成型人工知能とは何かについて話しましょう

ジェネレーティブ AI は、これまでビジネス パーソンに依存していたモデルをアルゴリズム担当者が生成...

...