1. 序章

このチュートリアルでは、完全接続ニューラルネットワークとも呼ばれる通常のニューラルネットワークと畳み込みニューラルネットワークの大きな違いについて説明します。 この2種類のネットワークを利用して、画像認識、物体検出、建物予測モードなど、さまざまな分野の複雑な問題を解決します。

同じ問題を解決するために両方を使用する場合もありますが、特定の問題を選択することには賛否両論があります。 したがって、アーキテクチャの違いに加えて、それらのアプリケーションの違いについても説明します。

2. ニューラルネットワーク

ニューラルネットワークは、生物学的ニューラルネットワークをシミュレートするために明示的に作成されたアルゴリズムです。 一般的に、アイデアは人間の脳のように機能する人工システムを作成することでした。 ニューラルネットワークは、ネットワークのタイプに応じて相互接続されたニューロンに基づいています。 ニューラルネットワークには多くの種類がありますが、大まかに言えば、次の3つのクラスに分類できます。

それらの主な違いは、それらを構成するニューロンのタイプと、情報がネットワークをどのように流れるかにあります。

3. 通常のニューラルネットワーク

通常または完全に接続されたニューラルネットワーク(FCNN)は、最も古く、最も一般的なタイプのニューラルネットワークです。基本的に、多層パーセプトロン(MLP)と呼ばれる多層ニューラルネットワークの最初の数学モデルは、完全に接続されたニューラルでした。通信網。

このタイプのネットワークを理解するには、そのコンポーネントのいくつかを説明する必要があります。

3.1. 人工ニューロン

人工ニューロンは、すべての神経ネットワークの基盤です。 それらは生物学的ニューロンに触発されたユニットです。 各人工ニューロンは入力を受け取り、単一の出力を生成して、それを他の複数のニューロンに送信します。 入力は通常、外部データのサンプルからの数値ですが、他のニューロンの出力にすることもできます。 ニューラルネットワークの最終出力ニューロンの出力は、予測を定義する値を表します。

ニューロンの出力を取得するには、接続のすべての入力と重みの加重和を計算する必要があります。 その後、合計にバイアスを加え、活性化関数を適用します。 数学的には、加重和を次のように定義します。

(1)  

ここで、は重み、は入力とバイアスです。 その後、活性化関数が加重和に適用されます。これは、ニューロンの最終出力を表します。

3.2. 活性化関数

通常のニューラルネットワークで使用できる活性化関数にはいくつかの種類があります。 たとえば、シグモイド関数を次のように定義します。

(2)  

そして、その定義のために、ほとんどの場合、二項分類の出力ニューロンとして使用します。 隠れ層の場合、通常、次のように定義する双曲線正接関数を選択することをお勧めします。

(3)  

この関数は、シグモイド関数と非常によく似たグラフを持っています。 最も重要な違いは、シグモイドの終域が0から1の間であるのに対し、双曲線正接の終域は-1から1の間であるということです。 この関数からの出力の平均値がゼロに近いため、双曲線正接は経験的に優れた結果を生成します。これにより、データが中央に配置され、次の層でよりアクセスしやすい学習が可能になります。

これらの両方の活性化関数の欠点の1つは、入力値が大きいほど勾配値が小さいことです。これは、これらの点で関数の傾きがゼロに近いことを意味します。 これは勾配消失問題として知られており、入力データを適切な範囲に正規化するか、さまざまな活性化関数を使用することで解決できます。 機械学習で一般的に人気があり、この問題を引き起こさない関数は、正規化線形ユニット(ReLU)として知られています。 この関数を次のように定義します。

(4)  

この関数はで微分可能ではありませんが、その時点での導関数として明示的に0または1を取ります。これは、ドメイン内の他のすべての点での導関数の唯一の値でもあります。

ただし、この関数は、活性化関数の値が常にゼロの場合に発生する「デッドニューロン」の問題を引き起こす可能性があるため、理想的ではありません。 ReLU関数は、負の入力値に対してゼロを返します。これは、バイアスが他の重みに比べて大きな負の値を持っている場合に頻繁に発生します。

勾配値が計算されるとき、それは再びゼロに等しいので、重みは更新されず、ニューロンがゼロとほとんど異ならないという悪循環を作成します。 この問題は、ReLU関数を次のように定義するリークのある正規化線形ユニット(LReLU)に変更することで解決できます。

(5)  

ここで、は通常小さな定数です。たとえば、。 上記の関数のグラフを以下に示します。

3.3. アプリケーション

完全に接続されたニューラルネットワークを使用できる分野は多岐にわたります。 基本的に、分類と回帰に関連するすべてのものは、少なくとも理論的には、完全に接続されたニューラルネットワークで解決できます。いくつかの具体的なアプリケーションは次のとおりです。

  • 株式市場の予測
  • スパムメッセージの分類
  • 社会動向の予測
  • 天気予報
  • ポルトフォリオ管理
  • 信用格付けの予測
  • 不正検出など

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

畳み込みニューラルネットワーク(CNN)は、少なくとも1つの畳み込み層を持つニューラルネットワークの一種です。たとえば、画像内の隣接するピクセルからローカル情報を取得し、全体を削減するために使用します。パラメータの数に関するモデルの複雑さ。

CNNに典型的な畳み込み層とプーリング層に加えて、このタイプのネットワークには通常、完全に接続された層が含まれます。

4.1. 人工ニューロン

完全に接続された層の人工ニューロンとは異なり、畳み込み層のニューロンは入力全体に接続されておらず、入力データの一部のみに接続されています。これらの入力ニューロンは、入力の小さなセクションの抽象化を提供します入力全体で結合されたときに、特徴マップと呼ばれるデータ。

基本的に、CNNの人工ニューロンは、フィルターと呼ばれる2Dまたは3Dグリッドに配置されます。 通常、各フィルターは入力データからさまざまなタイプの特徴を抽出します。 たとえば、画像から1つのフィルターでエッジ、線、円、またはより複雑な形状を抽出できます。

特徴を抽出するプロセスは畳み込み関数を使用し、そこから畳み込みニューラルネットワークという名前が付けられます。 次の図は、フィルターKを使用して畳み込みを適用するための行列Iを示しています。 これは、フィルターKが行列Iを通過し、要素ごとの乗算が行列Iの対応する要素とフィルターKの間に適用されることを意味します。 次に、この乗算の結果を合計して数値にします。

4.2. 活性化関数

一般に、CNNの活性化関数に大きな違いはありません。

理論的には、FCNNについて説明したすべての関数を使用できますが、実際には、最も一般的な選択はReLUまたは双曲線正接を使用することです。 これは、ReLU関数がネットワークに非線形性を追加し、トレーニングを高速化することでネットワークを改善するためです。 ReLUは「死んだニューロン」などの問題を引き起こす可能性がありますが、LeakyReLUやELUなどのいくつかの変更で解決できます。

4.3. アプリケーション

畳み込みニューラルネットワークにはさまざまな用途がありますが、ほとんどの場合、画像分類やオブジェクト検出など、コンピュータービジョンに関連する問題を解決します。 CNNアプリケーションの主な例は次のとおりです。

  • 顔認識
  • 自動運転車内の物体の検出
  • 医学における画像分析とセグメンテーション
  • レコメンダーエンジン
  • 画像のキャプションなど。

5. 結論

この記事では、畳み込みニューラルネットワークと通常のニューラルネットワークの主な違いについて説明しました。 結論として、主な違いは、CNNが畳み込み演算を使用してデータを処理することです。これには、画像の操作にいくつかの利点があります。このようにして、CNNはネットワーク内のパラメーターの数を減らします。 また、畳み込み層は、入力データのローカル近傍のコンテキストを考慮し、その近傍から特徴を構築します。

たとえば、画像の近くのピクセル、ビデオのフレーム、テキストの単語などです。