基本的な CNN アーキテクチャ: 畳み込みニューラル ネットワークの 5 層の説明 [米国]

公開: 2023-04-16

CNN (畳み込みニューラル ネットワーク) は、畳み込み層とサブサンプリング層の組み合わせを使用して大規模なデータ セットから特徴を学習する、ディープ ラーニング ニューラル ネットワークの一種です。 これは、画像認識および分類タスクに一般的に使用されます。 畳み込み層は入力データにフィルターを適用し、サブサンプリング層は入力データのサイズを縮小します。 畳み込みニューラル ネットワーク アーキテクチャは、入力内のオブジェクトを分類または検出するために使用できるデータから特徴を学習することを目的としています。 以下は、5 つのCNN レイヤーの説明です

世界のトップ大学の機械学習コースに登録してくださいマスター、エグゼクティブ PGP、または上級認定プログラムを取得して、キャリアを加速させましょう。

目次

畳み込みニューラル ネットワークの 5 つの層

1. 畳み込み層:

この層は、入力データに対して畳み込み演算を実行し、データからさまざまな特徴を抽出します。

CNN モデル アーキテクチャの畳み込み層は、 CNN 層の最も重要なコンポーネントの 1 つです これらの層は、入力データから特徴を抽出し、さらなる処理と学習の基礎を形成する役割を果たします。

畳み込み層は、スライディング ウィンドウ方式で入力データに適用される一連のフィルター (カーネルとも呼ばれます) で構成されます。 各フィルターは、関連付けられた重みに基づいて、入力データから特定の特徴セットを抽出します。

畳み込み層で使用されるフィルターの数は、アーキテクチャの重要なハイパーパラメーターの 1 つです。 これは、処理されるデータのタイプと、モデルに必要な精度に基づいて決定されます。 一般に、フィルターが多いほど、入力データから抽出される特徴が多くなり、より複雑なネットワーク アーキテクチャがデータをよりよく理解できるようになります。

畳み込み演算は、各フィルターにスライディング ウィンドウ内のデータを乗算し、結果を合計することで構成されます。 この操作はすべてのフィルターに対して繰り返され、単一の畳み込み層に対して複数の特徴マップが生成されます。 これらの特徴マップは、次のレイヤーの入力として使用され、ネットワークがデータからより複雑な特徴を学習できるようにします。

畳み込み層はディープ ラーニング アーキテクチャの基盤であり、画像認識、自然言語処理、音声認識などのさまざまなアプリケーションで使用されます。 畳み込み層は、入力データから最も重要な特徴を抽出することで、ネットワークがより複雑なパターンを学習し、より適切な予測を行えるようにします。

2. プーリング層:

このレイヤーは、特徴マップに対してダウンサンプリング操作を実行します。これにより、必要な計算量が削減され、オーバーフィッティングの削減にも役立ちます。

プーリング層は、 CNN のアーキテクチャの重要なコンポーネントです これは通常、データから意味のある情報を抽出しながら、入力ボリュームのサイズを縮小するために使用されます。 プーリング層は通常、CNN の後半の段階で使用され、ネットワークが画像やその他の種類の入力のより抽象的な特徴に集中できるようにします。 プーリング層は、入力ボリューム上でウィンドウをスライドさせ、ウィンドウ内の値の要約統計を計算することによって機能します。

一般的な統計には、ウィンドウ内の値の最大値、平均値、または合計が含まれます。 これにより、データに関する重要な情報を保持しながら、入力ボリュームのサイズが縮小されます。

プーリング層は通常、空間的不変性を導入するためにも使用されます。つまり、画像内の入力の位置に関係なく、ネットワークは同じ出力を生成します。 これにより、ネットワークは画像の正確な位置を単に記憶するのではなく、画像に関するより一般的な機能を継承できます。

3.アクティベーションレイヤー:

この層は、ReLU や tanh などの非線形活性化関数を適用することにより、モデルに非線形性を追加します。

CNN の活性化層は、畳み込み層の出力に対する非線形変換として機能する層です。 これはネットワークの主要コンポーネントであり、入力データと出力データの間の複雑な関係を学習できます。

活性化層は、畳み込み層の出力を受け取り、それを別の値のセットにマッピングする関数と考えることができます。 これにより、ネットワークはデータ内のより複雑なパターンを学習し、より適切に一般化できます。

CNN で使用される一般的なアクティベーション関数には、ReLu (Rectified Linear Unit)、シグモイド、および tanh が含まれます。 各アクティベーション関数は異なる目的を果たし、さまざまなシナリオで使用できます。

ReLu は、ほとんどの畳み込みネットワークで最も一般的に使用される活性化関数です。 これは、すべての負の値に対して 0 を出力し、すべての正の値に対して入力と同じ値を出力する非線形変換です。 これにより、ネットワークはより複雑なパターンをデータに取り込むことができます。

シグモイドは、任意の入力に対して 0 と 1 の間の値を出力する、もう 1 つの一般的に使用される活性化関数です。 これは、ネットワークが入力データと出力データの間の複雑な関係を理解するのに役立ちますが、ReLu よりも計算コストが高くなります。

Tanh は最も一般的に使用されていない活性化関数で、任意の入力に対して -1 から 1 の間の値を出力します。

アクティベーション層は、出力の線形性を妨げ、非線形性を高めるため、CNN の重要なコンポーネントです。 各アクティベーション関数は異なる目的を果たし、さまざまなシナリオで使用できるため、ネットワークに適したアクティベーション関数を選択することが不可欠です。 適切なアクティベーション関数を選択すると、 CNN 構造のパフォーマンスが向上します

4. 完全に接続されたレイヤー:

この層は、ある層の各ニューロンを次の層のすべてのニューロンに接続し、完全に接続されたネットワークを実現します。

CNN の全結合層は、ネットワーク内の前の層のすべてのニューロンに接続されたニューロンの層です。 これは、ニューロンが特定のパターンに基づいて前の層のニューロンのサブセットにのみ接続される畳み込み層とは対照的です。

ある層のすべてのニューロンを次の層のすべてのニューロンに接続することにより、完全に接続された層により、前の層からの情報をネットワーク全体で共有できるようになり、データをより包括的に理解する機会が提供されます。

CNN の全結合層は通常、畳み込み層とプーリング層の後で、 CNN モデル アーキテクチャの終わりに向かって使用されます。これは、畳み込み層が認識できなかった可能性のあるパターンと相関関係を識別するのに役立つためです。

さらに、全結合層を使用して、分類に使用できる非線形決定境界を生成します。 結論として、全結合レイヤーは CNN の不可欠な部分であり、データ内のパターンと相関関係を識別するための強力なツールを提供します。

5. 出力層:

これはネットワークの最終層で、出力ラベルまたは値を生成します。

CNN の出力層は、ネットワークの最終層であり、出力の生成を担当します。 これは、前のレイヤーから抽出された機能を取得し、目的の出力を生成できるようにそれらを結合するレイヤーです。

全結合層は通常、分類や回帰の問題など、出力が単一の値である場合に使用されます。 結果が確率分布などのベクトルである場合は、通常、単一のニューロン層が使用されます。

ソフトマックス活性化関数は、クラスの確率分布など、出力が確率分布である場合に使用されます。 CNN の出力層は、目的の出力を得るために必要な計算を実行する役割も果たします。 これには、必要な出力を受け取るために必要な入力の線形または非線形変換の完了が含まれます。

最後に、CNN の出力層を使用して、ドロップアウトやバッチ正規化などの正則化手法を実行し、ネットワークのパフォーマンスを向上させることもできます。

結論

CNNアーキテクチャは、画像およびビデオ処理タスクの強力なツールです。 これは、畳み込み層、プーリング層、および全結合層の組み合わせです。 画像、ビデオ、およびその他のデータ ソースから特徴を抽出でき、オブジェクト認識、画像分類、顔認識などのさまざまなタスクに使用できます。 全体として、このタイプのアーキテクチャは、適切な関数とデータセットに適用すると非常に効果的です。

upGrad で ML と DL の熟練したスキル セットを取得する

IIIT-B が提供するupGrad の機械学習と深層学習の高度な認定プログラムを使用すると、機械学習と深層学習の習熟度を高めることができます。 このプログラムは、教師あり学習と教師なし学習、線形回帰とロジスティック回帰、畳み込みニューラル ネットワーク、強化学習、自然言語処理などのトピックを含む、ML と DL の基礎をカバーしています。 また、Python と TensorFlow で ML および DL モデルを構築してデプロイする方法を学び、実際のプロジェクトに取り組むことで実践的な経験を積むことができます。

このコースには、次のような特典も含まれています。

  • 業界の専門家によるメンターシップとガイダンス
  • 適切な仕事を見つけるのに役立つ就職支援
  • IIITバンガロールからの高度な証明書

upGrad が提供する管理、データ サイエンス、機械学習、デジタル マーケティング、テクノロジーの無料コースもご覧ください これらのコースにはすべて、一流の学習リソース、毎週のライブ講義、業界の課題、コース修了証明書があり、すべて無料です。

CNN に使用できる Python のライブラリは何ですか?

CNN に使用できる Python のライブラリには、TensorFlow、Keras、PyTorch、Caffe、Theano、Scikit-learn、MxNet、CNTK、OpenCV、および SciPy が含まれます。 これらのライブラリを使用して、アプリケーションを作成し、CNN アルゴリズムを簡単に実装するためのビルド済みモジュールを取得できます。

CNN 層にはいくつの次元がありますか?

畳み込みニューラル ネットワークには、幅、高さ、深さの 3 次元に配置されたニューロンが含まれています。 このニューロンの 3 次元構造は畳み込み層内に存在し、与えられた入力を使用して計算プロセスを実行し、結果の出力を提供します。

R で CNN を開発できますか?

はい、CNN は Python と R の両方を使用して開発できます。R は非常に詳細なライブラリを提供するため、R を使用した畳み込みニューラル ネットワークの作成は非常に簡単です。