基本的なCNNアーキテクチャ:畳み込みニューラルネットワークの5層の説明
公開: 2020-12-07目次
序章
IT業界の過去数年間、ディープラーニングと呼ばれる特定のスキルセットに対する大きな需要がありました。 ディープラーニングは、人間の脳またはニューラルネットワークの機能に触発されたアルゴリズムで構成される機械学習のサブセットです。
これらの構造はニューラルネットワークと呼ばれます。 それはコンピュータに自然に人間に来ることをするように教えます。 ディープラーニングには、人工ニューラルネットワーク(ANN)、オートエンコーダー、リカレントニューラルネットワーク(RNN)、強化学習など、いくつかのタイプのモデルがあります。 しかし、コンピュータビジョンと画像分析の分野で多大な貢献をした特定のモデルが1つあります。それは、畳み込みニューラルネットワーク(CNN)またはConvNetsです。
CNNは、画像から特定の特徴を認識して分類できるディープニューラルネットワークのクラスであり、視覚画像の分析に広く使用されています。 それらのアプリケーションは、画像およびビデオ認識、画像分類、医療画像分析、コンピュータービジョン、自然言語処理にまで及びます。
CNNの「畳み込み」という用語は、畳み込みの数学関数を意味します。これは、2つの関数を乗算して、一方の関数の形状がもう一方の関数によってどのように変更されるかを表す3番目の関数を生成する特殊な種類の線形演算です。 簡単に言うと、行列として表すことができる2つの画像を乗算して、画像から特徴を抽出するために使用される出力を生成します。
世界のトップ大学(修士、大学院大学院プログラム、ML&AIの高度な証明書プログラム)からオンラインで機械学習を学び、キャリアを早急に進めましょう。
学ぶ:ディープラーニングとニューラルネットワークの概要

基本的なアーキテクチャ
CNNアーキテクチャには2つの主要な部分があります
- 特徴抽出と呼ばれるプロセスで分析するために画像のさまざまな特徴を分離および識別する畳み込みツール
- 畳み込みプロセスからの出力を利用し、前の段階で抽出された特徴に基づいて画像のクラスを予測する、完全に接続されたレイヤー。
ソース
畳み込みレイヤー
CNNを構成するレイヤーには、畳み込みレイヤー、プーリングレイヤー、完全接続(FC)レイヤーの3種類があります。 これらのレイヤーがスタックされると、CNNアーキテクチャが形成されます。 これらの3つのレイヤーに加えて、ドロップアウトレイヤーとアクティブ化関数という2つの重要なパラメーターがあり、これらは以下で定義されています。
1.畳み込み層
このレイヤーは、入力画像からさまざまな特徴を抽出するために使用される最初のレイヤーです。 この層では、入力画像と特定のサイズMxMのフィルターの間で畳み込みの数学演算が実行されます。 フィルターを入力画像上でスライドさせることにより、フィルターのサイズ(MxM)に関して、フィルターと入力画像の部分の間に内積が取得されます。
出力は、角やエッジなどの画像に関する情報を提供する特徴マップと呼ばれます。 後で、この特徴マップは他のレイヤーに送られ、入力画像の他のいくつかの特徴を学習します。
2.プーリングレイヤー
ほとんどの場合、畳み込み層の後にプーリング層が続きます。 このレイヤーの主な目的は、畳み込み特徴マップのサイズを小さくして、計算コストを削減することです。 これは、レイヤー間の接続を減らすことによって実行され、各特徴マップで独立して動作します。 使用する方法に応じて、いくつかのタイプのプーリング操作があります。
最大プーリングでは、最大の要素は特徴マップから取得されます。 平均プーリングは、事前定義されたサイズの画像セクションの要素の平均を計算します。 事前定義されたセクションの要素の合計は、合計プーリングで計算されます。 プーリング層は通常、畳み込み層とFC層の間のブリッジとして機能します
必読:ニューラルネットワークプロジェクトのアイデア
3.完全に接続されたレイヤー
Fully Connected(FC)層は、ニューロンとともに重みとバイアスで構成され、2つの異なる層の間でニューロンを接続するために使用されます。 これらのレイヤーは通常、出力レイヤーの前に配置され、CNNアーキテクチャの最後の数レイヤーを形成します。
この場合、前のレイヤーからの入力画像がフラット化され、FCレイヤーに送られます。 平坦化されたベクトルは、数学関数の演算が通常行われるFCレイヤーをさらにいくつか通過します。 この段階で、分類プロセスが開始されます。
4.ドロップアウト
通常、すべての機能がFCレイヤーに接続されている場合、トレーニングデータセットに過剰適合が発生する可能性があります。 過剰適合は、特定のモデルがトレーニングデータで非常にうまく機能し、新しいデータで使用されたときにモデルのパフォーマンスに悪影響を与える場合に発生します。
この問題を克服するために、ドロップアウト層が利用され、トレーニングプロセス中にいくつかのニューロンがニューラルネットワークからドロップされ、モデルのサイズが小さくなります。 0.3のドロップアウトを通過すると、ノードの30%がニューラルネットワークからランダムにドロップアウトされます。
5.活性化関数
最後に、CNNモデルの最も重要なパラメーターの1つは、活性化関数です。 これらは、ネットワークの変数間のあらゆる種類の連続的で複雑な関係を学習して近似するために使用されます。 簡単に言うと、モデルのどの情報が順方向に発火し、どの情報がネットワークの最後に発火しないかを決定します。
ネットワークに非線形性を追加します。 ReLU、Softmax、tanH、Sigmoid関数など、一般的に使用されるいくつかの活性化関数があります。 これらの各関数には特定の使用法があります。 二項分類CNNモデルの場合、シグモイド関数とソフトマックス関数がマルチクラス分類に適しています。通常、ソフトマックスが使用されます。

LeNet-5CNNアーキテクチャ
1998年、LeNet-5アーキテクチャは、Yann LeCun、Leon Bottou、Yoshua Bengio、およびPatrickHaffnerによる「ドキュメント認識に適用される勾配ベースの学習」というタイトルの研究論文で紹介されました。 これは、最も初期の最も基本的なCNNアーキテクチャの1つです。
7層で構成されています。 最初のレイヤーは、32×32のサイズの入力画像で構成されます。 サイズ5x5の6つのフィルターで畳み込まれ、28x28x6の寸法になります。 2番目のレイヤーは、サイズが2×2でストライドが2のプーリング操作です。したがって、結果の画像のサイズは14x14x6になります。
同様に、第3層も、サイズ5×5の16個のフィルターを使用した畳み込み演算に続き、同様のフィルターサイズが2×2でストライドが2の第4のプーリング層が続きます。したがって、結果の画像サイズは5x5x16に縮小されます。
画像の次元が縮小されると、5番目の層は完全に接続された畳み込み層になり、それぞれサイズが5×5の120個のフィルターが使用されます。 このレイヤーでは、このレイヤーの120ユニットのそれぞれが、前のレイヤーの400(5x5x16)ユニットに接続されます。 6番目のレイヤーも84ユニットの完全に接続されたレイヤーです。
最後の7番目のレイヤーは、データセット内のクラスの数に応じて「n」個の可能なクラスを持つsoftmax出力レイヤーになります。
ソース
上の図は、LeNet-5CNNアーキテクチャの7つのレイヤーを表したものです。
以下は、TensorFlowフレームワークでkerasライブラリを使用してLeNet-5CNNアーキテクチャを構築するためのPythonコードのスナップショットです。

Pythonプログラミングでは、最も一般的に使用されるモデルタイプはシーケンシャルタイプです。 これは、kerasでCNNモデルを構築する最も簡単な方法です。 これにより、モデルをレイヤーごとに構築できます。 'add()'関数は、モデルにレイヤーを追加するために使用されます。 上で説明したように、LeNet-5アーキテクチャーの場合、2つの畳み込みとプーリングのペアがあり、その後に畳み込みレイヤーと高密度レイヤーの間の接続として通常使用されるフラット化レイヤーが続きます。
高密度レイヤーは、主に出力レイヤーに使用されるレイヤーです。 使用されるアクティベーションは、各クラスの確率を与える「Softmax」であり、合計すると1になります。モデルは、最も高い確率のクラスに基づいて予測を行います。
モデルの概要は以下のように表示されます。
結論
したがって、この記事では、基本的なCNN構造、アーキテクチャ、およびCNNモデルを構成するさまざまなレイヤーについて理解しました。 また、Pythonプログラムを使用した非常に有名で伝統的なLeNet-5モデルのアーキテクチャの例を見てきました。
機械学習コースの詳細に興味がある場合は、機械学習とAIのIIIT-BとupGradのエグゼクティブPGプログラムをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題を提供します。 IIIT-B卒業生のステータス、5つ以上の実践的な実践的なキャップストーンプロジェクト、トップ企業との雇用支援。
CNNの活性化関数とは何ですか?
活性化関数は、CNNモデルで最も重要なコンポーネントの1つです。 これらは、連続的で複雑なネットワーク変数間の関連付けの形式を学習して概算するために使用されます。 簡単に言うと、どのモデル情報が順方向に流れる必要があり、どのモデル情報がネットワークの端に流れないかを決定します。 それはネットワークに非線形性を与えます。 ReLU、Softmax、tanH、およびSigmoid関数は、最も頻繁に使用される活性化関数の一部です。 これらの関数はすべて、異なる用途があります。 2クラスCNNモデルの場合、シグモイド関数とソフトマックス関数が優先されますが、ソフトマックスは通常、マルチクラス分類に使用されます。
畳み込みニューラルネットワークアーキテクチャの基本的なコンポーネントは何ですか?
入力層、出力層、および複数の隠れ層が畳み込みネットワークを構成します。 畳み込みネットワークの層のニューロンは、標準のニューラルネットワークのニューロン(幅、高さ、深さの次元)とは異なり、3次元に配置されます。 これにより、CNNは3次元の入力ボリュームを出力ボリュームに変換できます。 畳み込み、プーリング、正規化、および完全に接続されたレイヤーが非表示レイヤーを構成します。 CNNでは複数のconvレイヤーを使用して、入力ボリュームをより高いレベルの抽象化にフィルター処理します。
標準のCNNアーキテクチャの利点は何ですか?
従来のネットワークアーキテクチャは、積み重ねられた畳み込み層のみで構成されていましたが、新しいアーキテクチャでは、学習効率を向上させるために、畳み込み層を構築する新しい新しい方法を検討しています。 これらのアーキテクチャは、さまざまなコンピュータビジョンの問題を処理するために、機械学習の実践者が適応するための一般的なアーキテクチャの推奨事項を提供します。 これらのアーキテクチャは、画像分類、オブジェクト識別、画像セグメンテーション、およびその他のさまざまな高度なタスクのための豊富な特徴抽出器として利用できます。