2020-12-09ディープラーニングコンボリューションカーネル/フィルター、フィーチャーマップ(フィーチャーマップ)、コンボリューションレイヤー

概念学習:コンボリューションカーネル/フィルター、機能マップ(機能マップ)、コンボリューションレイヤー

基本的な調査として、電子版を確認することをお勧めします。

[アメリカ] Michael Nielsen、Xiaohu Zhu / Freeman Zhang翻訳:「ニューラルネットワークとディープラーニング」(ニューラルネットワークとディープラーニング)

この本は、ニューラルネットワークの基本原理をより明確に説明しています。

 

人々は機能マップを機能マップに変換し、チャネルをチャネルに変換します。2つが同じことを話している場合もありますが、入力と出力が強調されている場合はチャネルと呼ばれ、画像がニューラルネットワークによって処理された後に検出されるフィーチャはフィーチャマップと呼ばれます。以下の説明では、大きな区別はしませんが、前のレイヤーで出力されたフィーチャーマップが次のレイヤーで入力されたチャンネルであることを理解できます。

 

(1)コンボリューションカーネル/フィルター

畳み込みカーネルはフィルターとも呼ばれます。

各コンボリューションカーネルには、長さ、幅、深さの3つの次元があります。

コンボリューションカーネルの長さと幅は手動で指定します。長さXの幅は、コンボリューションカーネルのサイズとも呼ばれます。一般的に使用されるサイズは、3X3、5X5などです。

畳み込みカーネルを指定するときは、その長さと幅を指定するだけで済みます。これは、通常、畳み込みカーネルの深さ(チャネル数としても理解できます)と現在の画像の深さ(RGBなどのフェザーマップの数)が原因です。 3つのチャネルは、3つの機能マップと同じです。

畳み込みプロセス中、入力レイヤーにあるチャネルの数(入力フィーチャマップの数)、およびフィルターにあるチャネルの数(畳み込みカーネルの深さ)。ただし、フィルターの数は任意であり、フィルターの数によって決まります。畳み込み後の出力チャネルの数(つまり、出力フィーチャマップの数)。

多くの一般的に使用されるアーキテクチャでは、コンピューティングに使用されるネットワークがますます深くなるにつれて、使用されるフィルターの数が増加します(たとえば、2番目は64、3番目は128など)。 。

 

(2)機能マップ

入力レイヤー:入力レイヤーでは、グレースケールイメージの場合、フィーチャマップは1つ(1つのチャネル)のみです。カラーイメージの場合、通常、3つのフィーチャーマップ(赤、緑、青)があります。

その他のレイヤー:レイヤー間にはいくつかのコンボリューションカーネル(カーネル)(フィルターとも呼ばれます)があります。前のレイヤーのフィーチャマップ(チャネル)が各コンボリューションカーネルとコンボリューションされて、次のレイヤーが生成されます。の機能マップ; N個の畳み込みカーネルがあり、下位層はN個のフェザーマップ(つまり、N個の出力チャネル)を生成します。

 

(3)畳み込み層

多くの畳み込みアーキテクチャは、チャネルRGB入力画像を一連の内部フィルタにマッピングする外部畳み込みユニットから始まります。ディープラーニングフレームワークでは、このコードは次のようになります。

 

out_1 = Conv2d(input = image、filter = 32、kernel_size =(3,3)、strides =(1,1))

relu_out = relu(out_1)

pool_out = MaxPool(relu_out、kernel_size =(2,2)、strides = 2)

 

入力画像の場合、ここでは32個のフィルターが使用され、それぞれのサイズは3X3、ステップサイズは1です。

次の図を使用して、上記のコードスニペットのすべての操作を示すことができます。

 

上の図では、32個のフィルター(つまり、Filter-1、Filter-2 ...)のそれぞれに、実際には3つの2次元カーネル(Wt-R、Wt-G、およびWT-B、つまり、深さは3)です。これらの2次元カーネルはそれぞれ、入力画像に赤(R)、緑(G)、および青(B)のチャネルとして保存されます。

順方向伝搬中に、入力画像のR、G、およびBピクセル値にWt-R、Wt-G、およびWt-Bカーネルが乗算され、断続的なアクティベーションマップが生成されます(図には示されていません) )。次に、3つのコアの出力が加算されて、各フィルターのアクティベーションマップ(アクティベーション)が生成されます(合計32)。

その後、これらの各アクティベーションマップは、ReLu関数によって支配され、最終的に最大プーリングレイヤーまで実行される必要があります(最大プーリングレイヤーを使用しないものもあります)。後者は、主に出力アクティベーションマップの次元数を減らす役割を果たします(これは、削減として理解できます)。長さX幅のサイズは小さく、ここで使用されるステップサイズは2)であることに注意してください。最終的に、取得するのは32個のアクティベーションマップのセットであり、その寸法は入力画像の半分です(つまり、取得される32個のフィーチャマップ、各フィーチャマップのサイズは入力画像の半分にすぎません)。

畳み込み層からの出力は、後続の畳み込み層の入力としてよく使用されます。したがって、2番目の畳み込み単位が次の場合:

 

conv_out_2 = Conv2d(input = relu_out、filters = 64)

 

このコンボリューションユニットには64個のフィルターがあり、各フィルターは32個の一意のカーネルのセットを使用します(各カーネルは前のコンボリューションレイヤーによって出力されたフィーチャーマップのチャネルに対応し、32個のフィーチャーマップには32個のカーネルが必要です) 、つまり:深さは32)です。

単純なパラメーターを使用したConv2d()畳み込み関数の計算プロセスは、以下を参照できます。

https://blog.csdn.net/weixin_41943311/article/details/94570067

 

(4)バッチ正規化

正規化はデータの標準化(正規化、正規化)であり、バッチはバッチとして理解でき、バッチの標準化になります。

おすすめ

転載: blog.csdn.net/qingfengxd1/article/details/110928299
おすすめ