人工ニューラルネットワーク
人工ニューラルネットワーク、または単にニューラルネットワークは新しいアイデアではありません。それは約80年前からあります。
ディープニューラルネットワークが新しい技術の使用、膨大なデータセットの可用性、強力なコンピューターで普及したのは2011年のことでした。
ニューラルネットワークは、樹状突起、核、軸索、および終末軸索を持つニューロンを模倣します。
ネットワークの場合、2つのニューロンが必要です。これらのニューロンは、ある樹状突起と別の樹状突起の間のシナプスを介して情報を転送します。
人工ニューロンの可能性のあるモデルは次のようになります-
ニューラルネットワークは次のようになります-
円はニューロンまたはノードであり、データ上のそれらの機能とそれらを接続する線/エッジは、渡される重み/情報です。
各列はレイヤーです。データの最初のレイヤーは入力レイヤーです。次に、入力レイヤーと出力レイヤーの間のすべてのレイヤーが非表示レイヤーになります。
1つまたはいくつかの隠れ層がある場合は、浅いニューラルネットワークがあります。隠れ層がたくさんある場合は、ディープニューラルネットワークがあります。
このモデルでは、入力データがあり、それを重み付けして、しきい値関数または活性化関数と呼ばれるニューロンの関数に渡します。
基本的には、特定の値と比較した後のすべての値の合計です。信号を発する場合、結果は(1)アウト、または何も発火されない場合、(0)になります。次に、それが重み付けされて次のニューロンに渡され、同じ種類の関数が実行されます。
活性化関数としてシグモイド(S字型)関数を持つことができます。
重みに関しては、開始はランダムであり、ノード/ニューロンへの入力ごとに一意です。
最も基本的なタイプのニューラルネットワークである典型的な「フィードフォワード」では、作成したネットワークを介して情報を直接通過させ、出力をサンプルデータを使用して期待したものと比較します。
ここから、出力を目的の出力に一致させるために重みを調整する必要があります。
ニューラルネットワークを介して直接データを送信する行為は、 feed forward neural network.
データは、入力からレイヤー、順番に、そして出力に送られます。
後方に戻って、損失/コストを最小限に抑えるために重みを調整し始めると、これは back propagation.
これは optimization problem. ニューラルネットワークでは、実際には、数十万、または数百万、またはそれ以上の変数を処理する必要があります。
最初の解決策は、最適化手法として確率的勾配降下法を使用することでした。現在、AdaGrad、AdamOptimizerなどのオプションがあります。いずれにせよ、これは大規模な計算操作です。そのため、ニューラルネットワークは半世紀以上にわたってほとんど棚に置かれていました。これらの操作の実行を検討するためのパワーとアーキテクチャ、およびそれに合わせて適切なサイズのデータセットがマシンに搭載されたのはごく最近のことです。
単純な分類タスクの場合、ニューラルネットワークのパフォーマンスはK最近傍法などの他の単純なアルゴリズムに比較的近いです。ニューラルネットワークの真の有用性は、はるかに大きなデータとはるかに複雑な質問があり、どちらも他の機械学習モデルよりも優れている場合に実現されます。