工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

単純なパーセプトロンニューラルネットワークの例を使用してデータを分類する方法

この記事では、パーセプトロンニューラルネットワークの基本的な機能を示し、トレーニングの目的を説明します。

この記事は、パーセプトロンニューラルネットワークに関するシリーズの一部です。

最初から始めたり、先に進んだりしたい場合は、他の記事をここでチェックできます:

  1. ニューラルネットワークを使用して分類を実行する方法:パーセプトロンとは何ですか?
  2. 単純なパーセプトロンニューラルネットワークの例を使用してデータを分類する方法
  3. 基本的なパーセプトロンニューラルネットワークをトレーニングする方法
  4. 単純なニューラルネットワークトレーニングを理解する
  5. ニューラルネットワークのトレーニング理論の概要
  6. ニューラルネットワークの学習率を理解する
  7. 多層パーセプトロンを使用した高度な機械学習
  8. シグモイド活性化関数:多層パーセプトロンニューラルネットワークでの活性化
  9. 多層パーセプトロンニューラルネットワークをトレーニングする方法
  10. 多層パーセプトロンのトレーニング式とバックプロパゲーションを理解する
  11. Python実装のためのニューラルネットワークアーキテクチャ
  12. Pythonで多層パーセプトロンニューラルネットワークを作成する方法
  13. ニューラルネットワークを使用した信号処理:ニューラルネットワーク設計での検証
  14. ニューラルネットワークのデータセットのトレーニング:Pythonニューラルネットワークをトレーニングおよび検証する方法

単層パーセプトロンとは

前回の記事では、ニューラルネットワークが層状に配置された相互接続されたノードで構成されていることを確認しました。入力層のノードはデータを分散し、他の層のノードは合計を実行してから活性化関数を適用します。これらのノード間の接続には重みが付けられます。つまり、各接続は、転送されたデータにスカラー値を乗算します。


この構成は単層パーセプトロンと呼ばれることに注意してください。はい、私は知っています、それは2つの層(入力と出力)を持っています、しかしそれは計算ノードを含む1つの層だけを持っています。

パーセプトロンによる分類

この記事では、次のニューラルネットワークを使用してパーセプトロンの機能を探ります。


ご覧のとおり、入力の次元は3つです。このパーセプトロンは、3次元空間の問題を解決するためのツールと考えることができます。たとえば、次の問題を提案しましょう。3次元空間の点がx軸の下にある場合、それは無効なデータムに対応します。ポイントがx軸上または上にある場合、それは有効なデータムに対応し、さらに分析するために保持する必要があります。データを分類するには、このニュートラルネットワークが必要です。出力値1は有効なデータを示し、値0は無効なデータを示します。

まず、3次元座標を入力ベクトルにマッピングする必要があります。この例では、input 0 xコンポーネント、input 1 はyコンポーネントであり、input 2 zコンポーネントです。次に、重みを決定する必要があります。この例は非常に単純なので、ネットワークをトレーニングする必要はありません。必要な重みを考えて割り当てることができます:

ここで行う必要があるのは、出力ノードの活性化関数が次のように表される単位ステップであることを指定することだけです。

\ [f(x)=\ begin {cases} 0&x <0 \\ 1&x \ geq 0 \ end {cases} \]

パーセプトロンは次のように機能します:w 1 以降 =0およびw 2 =0の場合、yおよびzコンポーネントは、出力ノードによって生成される合計に寄与しません。合計に影響を与える唯一の入力データはxコンポーネントです。これは、w 0 であるため、変更されずに出力ノードに配信されます。 =1. 3次元空間のポイントがx軸の下にある場合、出力ノードの合計は負になり、アクティブ化関数はこの負の値を出力 0 に変換します。 =0。3次元空間のポイントがx軸上またはそれより上にある場合、合計はゼロ以上になり、アクティブ化関数はこれを出力 0 に変換します。 =1。

パーセプトロンの問題を解決する

前のセクションでは、問題を解決するためのツールとしてパーセプトロンについて説明しました。ただし、パーセプトロンが問題解決をあまり行っていないことに気付いたかもしれません。 問題を解決し、必要な重みを割り当てることでパーセプトロンに解決策を提供しました。

この時点で、重要なニューラルネットワークの概念に到達しました。入力データと目的の出力値の関係が非常に単純であるため、有効/無効の分類問題をすばやく解決できました。ただし、実際の多くの状況では、人間が入力データと出力値の間の数学的関係を定式化することは非常に困難です。 入力データを取得し、対応する出力値を記録または生成することはできますが、しかし、入力から出力への数学的なルートはありません。

役立つ例は手書き認識です。手書き文字の画像があり、それらの画像を「a」、「b」、「c」などに分類して、手書きを通常のコンピュータテキストに変換できるようにしたいとします。書き込みと読み取りの方法を知っている人なら誰でも、入力画像を生成して、各画像に正しいカテゴリを割り当てることができます。したがって、入力データと対応する出力データを収集することは難しくありません。一方、入出力のペアを調べて、入力画像を出力カテゴリに正しく変換する数式やアルゴリズムを作成することは非常に困難です。

したがって、手書き認識や他の多くの信号処理タスクは、高度なツールの助けなしに人間が解決できない数学的問題を提示します。ニューラルネットワークは、考えたり、分析したり、革新したりすることはできませんが、人間ができないこと、つまり、膨大な量の数値データを含む計算を迅速かつ繰り返し実行できるため、これらの困難な問題を解決することができます。 。

ネットワークのトレーニング

ニューラルネットワークが入力から出力への数学的経路を作成できるようにするプロセスは、トレーニングと呼ばれます。入力値と対応する出力値で構成されるネットワークトレーニングデータを提供し、これらの値に固定の数学的手順を適用します。この手順の目的は、ネットワークの重みを徐々に変更して、ネットワークがこれまでに見たことのない入力データでも正しい出力値を計算できるようにすることです。基本的に、トレーニングデータのパターンを見つけ、これらのパターンを新しいデータに適用することで有用な出力を生成する重みを生成します。

次の図は、上記の有効/無効の分類子を示していますが、重みは異なります。これらは、1000個のデータポイントでパーセプトロンをトレーニングすることによって生成した重みです。ご覧のとおり、トレーニングプロセスにより、パーセプトロンは、人間のスタイルの批判的思考を通じて特定した数学的関係を自動的に近似することができました。


次の記事で…

このパーセプトロンのトレーニングの結果をお見せしましたが、これらの結果をどのように取得したかについては何も述べていません。次の記事では、単層のパーセプトロンニューラルネットワークを実装する短いPythonプログラムについて説明し、トレーニング手順についても説明します。


埋め込み

  1. モリブデンはどのように使用しますか?
  2. クラウドテクノロジーを保護する方法は?
  3. Azure DevOpsを効果的に使用する方法は?
  4. ネットワークプロトコル
  5. アナログインメモリコンピューティングがエッジAI推論の電力の課題をどのように解決できるか
  6. ネットワークエコシステムがファームの未来をどのように変えているか
  7. C ライブラリの realloc() 関数:使い方は?構文と例
  8. C ライブラリの free() 関数:使い方は?例で学ぶ
  9. メーカーがより良い顧客体験のためにアナリティクスをどのように使用できるか
  10. データの回復:NISTのニューラルネットワークモデルは、高密度の画像から小さなオブジェクトを検出します
  11. カッターグラインダーの使い方