畳み込みニューラル ネットワーク (CNN) のネットワーク構造とモデルの原理の概要

概要

この記事では、畳み込み層、プーリング層、その他のネットワーク構造と構築原理、および畳み込みの前提知識のみを紹介します。全結合層の内容、分類モデルと損失関数の構築と最適化は全結合ニューラルネットワークと同様であるため、ここでは説明を省略します。

ニューラルネットワークモデルの構築とアルゴリズムの紹介: https://blog.csdn.net/stephon_100/article/details/125452961

畳み込みニューラル ネットワークは、ディープ フィードフォワード ニューラル ネットワークです。同じ画像を異なるコンボリューション カーネルでコンボリューションすることは、実際にはコンボリューション カーネルで画像をフィルタリングして、異なる特徴を抽出することになります。

したがって、畳み込みニューラル ネットワーク モデルは、分類機能を備えた、自動的に特徴を抽出するモデルでもあります。

畳み込み層の入力ニューロンの数が M、畳み込みサイズが K、ステップ サイズが S、入力の両端に P 個のゼロが埋められると仮定すると、畳み込み層のニューロンの数は (M - K + 2P )/S+1

通常、適切な畳み込みサイズとストライドを選択することで整数にすることができます。

 

メインコンテンツ:

畳み込みニューラル ネットワーク (CNN または ConvNet) は、ローカル接続と重み共有を備えたディープ フィードフォワード ニューラル ネットワークです。

畳み込みニューラル ネットワークは、もともと主に画像情報の処理に使用されていました。完全に接続されたフィードフォワード ネットワークで画像を処理する場合、次の 2 つの問題が発生します。

(1) パラメーターが多すぎます。入力画像サイズが 100 × 100 × 3 (つまり、画像の高さ 100、幅 100、RGB 3 カラー チャネル) の場合、完全に接続されたフィードフォワード ネットワークでは、それぞれの最初の隠れ層 各ニューロンから入力層までは 100 × 100 × 3 = 30 000 の相互に独立した接続があり、各接続は重みパラメーターに対応します。隠れ層のニューロンの数が増加すると、パラメータのスケールも急激に増加します。これにより、ニューラル ネットワーク全体のトレーニング効率が非常に低くなり、過学習が起こりやすくなります。

(2) 局所不変特徴:自然画像内のオブジェクトは局所不変特徴を持ち、スケールのスケーリング、平行移動、回転などの操作はその意味情報に影響を与えません。ただし、完全に接続されたフィードフォワード ネットワークでは、これらの局所的な不変特徴を抽出するのが難しく、パフォーマンスを向上させるには一般にデータの強化が必要です。

全結合層は通常、畳み込みネットワークの最後の層にあります。畳み込みニューラル ネットワークには、ローカル接続、重み共有、プーリングという 3 つの構造特性があります。これらの特性により、畳み込みニューラル ネットワークは、平行移動、スケーリング、回転に対してある程度不変になります。フィードフォワード ニューラル ネットワークと比較して、畳み込みニューラル ネットワークはパラメーターが少なくなります。

補足的な知識を準備する

畳み込みの定義: 畳み込みは、畳み込みとも呼ばれ、分析数学における重要な演算です。信号処理や画像処理では、1次元または2次元の畳み込みがよく使用されます。

1次元の畳み込み:

二次元畳み込み:

畳み込みの定義によれば、上図の計算には畳み込みカーネル フリッピングが必要です。反転とは、2 次元 (上から下、左から右) の相互相関を逆の順序で反転すること、つまり 180 度回転することを指します。反転後、ドット積演算を直接実行できます。つまり、対応する位置が乗算されてから合計されます。図に示すように:

画像処理で一般的に使用される平均フィルター (Mean Filter) は、現在位置のピクセル値をフィルター ウィンドウ内のすべてのピクセルの平均値として設定する 2 次元の畳み込みです。 

視覚的な表示:

画像処理では、特徴抽出の効果的な方法として畳み込みがよく使用されます。画像が畳み込み演算を受けた後に得られる結果は、特徴マップと呼ばれます。図 5.3 は、画像処理で一般的に使用されるいくつかのフィルターと、それらに対応する特徴マップを示しています。図の一番上のフィルタは一般的に使用されるガウス フィルタで、画像の平滑化とノイズ除去に使用でき、中央と一番下のフィルタはエッジ特徴の抽出に使用できます。 

 

したがって、コンボリューション カーネルで画像をコンボリューションすることは、実際にはコンボリューション カーネルで画像をフィルタリングして特定の特徴を抽出することであると結論付けられます。 

( 3 )相互相関

機械学習と画像処理の分野における畳み込みの主な機能は、画像 (または特定の特徴) 上で畳み込みカーネル (つまりフィルター) をスライドさせ、畳み込み演算を通じて新しい特徴セットを取得することです。畳み込みを計算するプロセスでは、畳み込みカーネルを反転する必要があります。特定の実装では、畳み込みは一般に相互相関演算に置き換えられ、不必要な演算やオーバーヘッドが削減されます。

相互相関 (Cross-Correlation) は逆の順序、つまり 180 度回転したものです。2 つのシーケンス間の相関を測定する関数は、通常、スライディング ウィンドウを使用してドット積を計算することによって実装されます。画像と畳み込みカーネルが与えられた場合、それらの相互相関は次のようになります。

式 (5.7) と比較すると、相互相関と畳み込みの違いは、畳み込みカーネルを反転するかどうかだけであることがわかります。したがって、相互相関は非反転畳み込みとも呼ばれます。

 

畳み込みと相互相関の比較 (拡張): 

 畳み込み演算と相互相関演算の関係は次のとおりです。

 

画像 と畳み込みカーネルが与えられた場合、それらの相互相関は次のようになります。

 

式 (5.7) と比較すると、相互相関と畳み込みの違いは、畳み込みカーネルを反転するかどうかだけであることがわかります。したがって、相互相関は非反転畳み込みとも呼ばれます。

したがって、相互相関は通常、スライディング ウィンドウを反転してドット積を計算する厳密な数学的畳み込みではなく、スライディング ウィンドウのドット積を計算することによって直接実装されます。

ニューラル ネットワークでの畳み込みは特徴抽出のために使用され、畳み込みカーネルが反転されるかどうかはその特徴抽出機能とは関係ありません。特に畳み込みカーネルが学習可能なパラメータである場合、畳み込みと相互相関の検出力は同等です。したがって、実装 (または説明) の便宜上、畳み込みの代わりに相互相関を使用します。実際、多くの深層学習ツールの畳み込み演算は実際には相互相関演算です。

以下の説明では、特に明記しない限り、畳み込みは一般に「相互相関」を指します。畳み込み記号は ⊗ で表されます。つまり、畳み込みは反転されません。実際の畳み込みは * で示されます。

畳み込みの標準定義に基づいて、畳み込みカーネルのスライディング ステップ サイズとゼロ パディングを導入して、畳み込みの多様性を高め、特徴抽出をより柔軟に実行することもできます。

ストライドとは、スライド時にコンボリューション カーネルがスライドするたびに何ピクセルになるかを指します。

ゼロ パディングは、入力ベクトルの両端のゼロ パディングです。

畳み込み層の入力ニューロンの数が M、畳み込みサイズが K、ステップ サイズが S、入力の両端に P 個のゼロが埋められると仮定すると、畳み込み層のニューロンの数は ( M-K+2P)/S+1

通常、適切な畳み込みサイズとストライドを選択することで整数にすることができます。

 

畳み込みニューラル ネットワーク

畳み込みの定義によれば、畳み込み層にはローカル接続と重み共有という 2 つの非常に重要な特性があります。

 

 

上の写真を例に挙げます。

全結合演算の場合、各ニューロンは前の 25 個の入力ピクセル x をすべて接続する必要があるため、25 個の重み w と 1 個のバイアス b があります。

ただし、コンボリューション操作の場合、5x5 画像全体はこのコンボリューション カーネル ウィンドウのみを使用してスライドするため、重みパラメータには 3x3=9 パラメータのコンボリューション ウィンドウ サイズとバイアス パラメータ b のみが必要です。上の図はステップに基づいています。 size 画像の両端に0を加えずにウィンドウをスライドさせて得た1と畳み込み結果です

通常、コンボリューション カーネルのサイズは、コンボリューションされる入力画像のサイズよりもはるかに小さいため、コンボリューション操作でトレーニングする必要があるパラメーターは、完全な接続よりもはるかに少なくなります。

(1) 畳み込み層

畳み込み層の機能は、入力画像のフィルター処理された画像、つまり入力画像の特徴を抽出することであり、異なる畳み込みカーネルは異なる特徴抽出器に相当します。上記の内容は 2 次元画像の畳み込みです。しかし、通常、カラー画像は複数のカラー チャネルで構成されているため、一般に 3 次元情報として表現されます。次に、コンボリューション カーネルのニューロンも 3 次元でコンボリューションされます。

三次元構造は通常、高さ×幅×奥行き、すなわちM×N×Dで表されます。

入力層では、特徴マップは画像そのものです。グレースケール画像の場合、特徴マップがあり、入力層の深さは D=1 です。カラー画像の場合、RGB 3 つのカラー チャネルの特徴マップがあり、入力層の深さはD=3。

特徴マップは、畳み込み後の画像 (または他の特徴マップ) によって抽出された特徴であり、各特徴マップは、抽出された画像特徴のクラスとして使用できます。畳み込みネットワークの表現能力を向上させるために、複数の異なる畳み込みカーネルを各畳み込み層にスタックして、画像の複数の異なる特徴マップを取得して、画像の特徴をより適切に表現できます。

 説明:各畳み込み層には P 個のニューロン、つまり畳み込みカーネルが含まれているため、この層の畳み込みによって P 個の特徴マップが生成されます。入力画像のサイズはMxN、深度はDです。カラー画像の場合はRGBが3チャンネルあるため、d=3となります。コンボリューションカーネルのサイズはUxVのサイズで、深さはDです。

 (2) プーリング層(プーリング層)

プーリング層 (Pooling Layer) はサブサンプリング層 (Subsampling Layer) とも呼ばれ、プーリング層の機能は、特徴選択を実行して特徴の数を削減することで、パラメーターの数を減らし、過学習を回避することです。

(1) 最大プーリング (最大プーリングまたは最大プーリング): 領域について、この領域のすべてのニューロンの最大活動値をこの領域の表現として選択します。

(2) Mean Pooling: 一般に、領域内のすべてのニューロンの活動値の平均値が取られます。

プーリング層はニューロンの数を効果的に減らすだけでなく、ネットワークを局所的な小さな形状変化に対して不変にし、より大きな受容野を持たせることもできます。

一般的なプーリング層は、各特徴マップを 2 × 2 の重複しない領域に分割し、ダウンサンプリングに最大プーリング方法を使用します。プーリング層は特別な畳み込み層とみなすこともでき、畳み込みカーネル サイズは KxK、ステップ サイズは SxS、畳み込みカーネルは最大関数または平均関数です。サンプリング領域が大きすぎると、ニューロンの数が大幅に減少し、過度の情報損失が発生します。

 

おすすめ

転載: blog.csdn.net/stephon_100/article/details/125453364