Artificial-neural-network-building-blocks

提供:Dev Guides
移動先:案内検索

人工ニューラルネットワーク-ビルディングブロック

ANNの処理は、次の3つのビルディングブロックに依存します-

  • ネットワークトポロジー
  • 重みまたは学習の調整
  • アクティベーション関数

この章では、ANNのこれら3つのビルディングブロックについて詳しく説明します。

ネットワークトポロジー

ネットワークトポロジは、ネットワークとそのノードおよび接続線の配置です。 トポロジによれば、ANNは次の種類に分類できます-

フィードフォワードネットワーク

これは、レイヤー内に処理ユニット/ノードを持つ非リカレントネットワークであり、レイヤー内のすべてのノードは前のレイヤーのノードに接続されます。 接続には異なる重みがあります。 フィードバックループがないため、信号は入力から出力まで一方向にしか流れません。 それは次の2つのタイプに分けることができます-

  • 単層フィードフォワードネットワーク-コンセプトは、1つの重み付きレイヤーのみを持つフィードフォワードANNです。 つまり、入力層は出力層に完全に接続されていると言えます。

単層フィードフォワードネットワーク

  • マルチレイヤーフィードフォワードネットワーク-コンセプトは、複数の重み付きレイヤーを持つフィードフォワードANNです。 このネットワークには、入力層と出力層の間に1つ以上の層があるため、隠れ層と呼ばれます。

多層フィードフォワードネットワーク

フィードバックネットワーク

名前が示すように、フィードバックネットワークにはフィードバックパスがあります。つまり、信号はループを使用して両方向に流れることができます。 これにより、それは非線形動的システムとなり、平衡状態に達するまで連続的に変化します。 それは次のタイプに分けることができます-

  • リカレントネットワーク-閉ループのフィードバックネットワークです。 以下は、2種類のリカレントネットワークです。
  • 完全リカレントネットワーク-すべてのノードが他のすべてのノードに接続され、各ノードが入力と出力の両方として機能するため、これは最も単純なニューラルネットワークアーキテクチャです。

完全にリカレントネットワーク

  • * Jordanネットワーク*-これは、次の図に示すように、出力がフィードバックとして再び入力に送られる閉ループネットワークです。

ヨルダンネットワーク

重みまたは学習の調整

学習は、人工ニューラルネットワークで、指定されたネットワークのニューロン間の接続の重みを変更する方法です。 ANNでの学習は、教師あり学習、教師なし学習、強化学習の3つのカテゴリに分類できます。

教師あり学習

名前が示すように、このタイプの学習は教師の監督の下で行われます。 この学習プロセスは依存しています。

教師あり学習の下でのANNのトレーニング中に、入力ベクトルがネットワークに提示され、出力ベクトルが得られます。 この出力ベクトルは、目的の出力ベクトルと比較されます。 実際の出力と目的の出力ベクトルに差がある場合、エラー信号が生成されます。 このエラー信号に基づいて、実際の出力が目的の出力と一致するまで重みが調整されます。

モデル

教師なし学習

名前が示すように、このタイプの学習は教師の監督なしで行われます。 この学習プロセスは独立しています。

教師なし学習下でのANNのトレーニング中に、同様のタイプの入力ベクトルが組み合わされてクラスターが形成されます。 新しい入力パターンが適用されると、ニューラルネットワークは、入力パターンが属するクラスを示す出力応答を提供します。

必要な出力と、それが正しいか間違っているかに関する環境からのフィードバックはありません。 したがって、このタイプの学習では、ネットワーク自体が入力データからパターンと機能を検出し、入力データと出力の関係を検出する必要があります。

教師なし学習

強化学習

名前が示すように、このタイプの学習は、批評家の情報に関してネットワークを強化または強化するために使用されます。 この学習プロセスは教師あり学習に似ていますが、情報が非常に少ない場合があります。

強化学習によるネットワークのトレーニング中に、ネットワークは環境からフィードバックを受け取ります。 これにより、教師あり学習に多少似ています。 ただし、ここで得られるフィードバックは有益ではなく評価的です。つまり、教師あり学習のように教師がいないということです。 フィードバックを受け取った後、ネットワークは重みの調整を実行して、将来より良い批評情報を取得します。

強化学習

アクティベーション関数

正確な出力を得るために、入力に加えられる追加の力または努力として定義される場合があります。 ANNでは、入力にアクティベーション関数を適用して、正確な出力を取得することもできます。 以下は、関心のあるいくつかの活性化機能です-

線形活性化関数

入力編集を行わないため、ID関数とも呼ばれます。 次のように定義できます-

F(x)\:= \:x

シグモイド活性化機能

次の2つのタイプがあります-

  • バイナリシグモイド関数-このアクティベーション関数は、0〜1の間で入力編集を実行します。 それは本質的にポジティブです。 常に境界があります。つまり、その出力は0未満で1を超えることはできません。 また、本質的に厳密に増加しているため、より多くの入力が出力になります。 次のように定義できます + F(x)\:= \:sigm(x)\:= \:\ frac \ {1} \ {1 \:+ \:exp(-x)}
  • 双極性シグモイド関数-このアクティベーション関数は、-1と1の間で入力編集を実行します。 それは本質的にポジティブまたはネガティブです。 常に境界があります。つまり、出力が-1未満で1を超えることはできません。 また、シグモイド関数のように、本質的に厳密に増加しています。 次のように定義できます + F(x)\:= \:sigm(x)\:= \:\ frac \ {2} \ {1 \:+ \:exp(-x)} \:-\:1 \:= \:\ frac \ {1 \:-\:exp(x)} \ {1 \:+ \:exp(x)}