1x1 畳み込み: インタプリタ

1. 説明

        このブログでは、Lin et al. (2013) の論文「Networks in Networks」と、GoogLeNet アーキテクチャを提案している論文「Go Deep with Convolutions」に登場する 1x1 畳み込み演算の概念を掘り下げていきます。 。

出典:リンク

        深い畳み込みネットワーク (VGG、AlexNet など) の欠点の 1 つは、通常、ネットワークの深さに応じて特徴マップの数が増加することです。この問題は、5x5 や 7x7 などのより大きなフィルター サイズを使用する場合、パラメーターの数と計算の複雑さの大幅な増加につながる可能性があります。この問題を解決するには、1x1 畳み込み層を使用してチャネル レベルのプーリング (特徴プーリング層または投影層と呼ばれることが多い) を提供できます。この単純な手法は、非線形性を導入しながらチャネル数を減らすことによる「次元削減」に使用できます。

2. 用途 1: 次元削減 

        名前が示すように、1x1 コンボリューションは、入力画像をサイズ 1x1 のフィルターでコンボリューションする単純な操作です。ここで、例を使ってこれを理解してみましょう。畳み込み層の出力形状が - N、F、H、W であるとします。ここで、N はバッチ サイズ、F は #convolution 層、H、W は出力次元です。これを G フィルターを使用して 1x1 conv レイヤーへの入力として畳み込むと、出力の形状は N、G、H、W になります。数値例を挙げると、サイズ 64x64x3 の入力が単一の 1x1x3 フィルターを通過すると、出力の高さと幅は入力と同じになりますが、チャネルは 64x64x1 1 つだけです。ここで、多数のチャンネル (たとえば 192) を持つ入力 (HxWx192) を考えてみましょう。次元削減の場合、1 つのフィルターを使用した 1x32 畳み込みを適用できます。結果として得られる出力フィーチャ マップは、同じ空間次元 (HxW) を持ちますが、チャネル数 (32) が減ります。各空間位置で、1x1 コンボリューションにより 32 のフィルター セットが入力チャンネルに個別に適用されます。各フィルターは 192 の入力チャンネルの線形結合を実行し、単一の出力値を生成します。

例: #channels を減らす

3. 使い方2:計算効率化

        次に、次元削減がどのように計算負荷の削減につながるかを示す例を見てみましょう。28x28x128 の入力特徴マップを 32 個の 7x7 フィルターで畳み込む必要があるとします。これにより、約 236 億 1,000 万回の操作が行われることになります。ここで、1x7 層の前に 7x21 畳み込み層を追加して同じことを行うと、演算数 (約 110K 演算) が ~<> 倍削減されます。この効率は、ディープ ニューラル ネットワークの計算コストを削減し、より高速なトレーニングと推論を可能にするのに特に有益です。

4. ネットワーク設計

        1x1 畳み込みは、チャネル数を制御し、モデルの複雑さを調整するためにネットワーク アーキテクチャでよく使用されます。これらは、多くの場合、より大規模な畳み込みとともに使用され、さまざまなレイヤーでさまざまな数のチャネルを持つネットワークを作成し、モデルがさまざまなスケールで特徴をキャプチャできるようにします。

V. 結論

        全体として、1x1 畳み込みは、深層学習モデルのチャネルレベルの特徴変換と次元削減のための強力なツールを提供します。これらにより、機能マップ内のチャネル間の基本的な関係を把握しながら、効率的かつ柔軟なネットワーク設計が可能になります。

引用:

  1. https://hanlab.mit.edu/files/course/slides/MIT-TinyML-Lec07-NAS-I.pdf
  2. https://medium.com/analytics-vidhya/talented-mr-1x1-comprehensive-look-at-1x1-convolution-in-deep-learning-f6b355825578
  3. #016 ネットワーク内の CNN ネットワーク - 1x1 畳み込み - マスター データ サイエンス

タウセフ・アーメド

·

おすすめ

転載: blog.csdn.net/gongdiwudu/article/details/132343679