ニューラル ネットワークの仕組みを理解する最良の方法は、自分でニューラル ネットワークを作成することです。この記事では、その方法を説明します。 ニューラル ネットワーク (NN) は、人工ニューラル ネットワーク (ANN) とも呼ばれ、生物学的ニューラル ネットワークの概念に基づいた機械学習分野の学習アルゴリズムのサブセットです。 5 年以上の経験を持つドイツの機械学習の専門家、Andrey Bulezyuk 氏は、次のように主張しています。「ニューラル ネットワークは、幅広い分野や業界にわたって抽象的なオブジェクトを効率的にモデル化できるため、機械学習に革命をもたらしています。」 人工ニューラル ネットワークは基本的に次のコンポーネントで構成されます。
ニューラルネットワークには多くの種類があります。このプロジェクトでは、フィードフォワードまたはパーセプトロン ニューラル ネットワークを作成します。このタイプの ANN は、データを前方から後方へ直接渡します。 フィードフォワード ニューロンのトレーニングには、多くの場合、ネットワークに対応する入力と出力のセットを提供するバックプロパゲーションが必要です。入力データがニューロンに送信されると、処理されて出力が生成されます。 次の図は、単純なニューラル ネットワークの構造を示しています。 ニューラル ネットワークの仕組みを理解する最良の方法は、ライブラリを使用せずに、ニューラル ネットワークをゼロから構築する方法を学ぶことです。 この記事では、Python プログラミング言語を使用して単純なニューラル ネットワークを作成する方法を説明します。 質問 以下に問題を示す表を示します。 新しいデータセットを提供し、それを使用してニューラル ネットワークをトレーニングし、正しい出力値を予測できるようにします。 上記の表に示すように、出力値は常に入力セクションの最初の値と等しくなります。したがって、出力値は 1 になると予想されます。 Python コードを使用して同じ結果を得られるかどうか確認してみましょう (このプロジェクトを続ける前に、この記事の最後でこのプロジェクトのコードを確認できます)。 NeuralNetworkクラスを作成する 正確な予測ができるようにニューロンをトレーニングするために、Python で NeuralNetwork クラスを作成します。このクラスには他のヘルパー関数も含まれます。 この単純なニューラル ネットワークの例ではニューラル ネットワーク ライブラリを使用しませんが、計算を支援するために numpy ライブラリをインポートします。 numpy ライブラリは、次の 4 つの重要なメソッドを提供します。
1. シグモイド関数を適用する ニューラル ネットワークの活性化関数として、シグモイド関数を使用して特徴的な「S」曲線を描画します。 この関数は、任意の値を 0 から 1 の間の値にマッピングすることができ、入力の重み付けと正規化に役立ちます。 この後、重みの調整パラメータを計算するために、シグモイド関数の導関数を作成します。 シグモイド関数の出力は、その導関数を生成するために使用できます。たとえば、出力変数が「x」の場合、その導関数は x*(1-x) になります。 2. モデルのトレーニング これは、ニューラル ネットワークに正確な予測を行うように教える段階です。各入力には重みがあり、重みは正または負になります。つまり、正または負の重みが大きい入力は、結果の出力に大きな影響を与えます。最初に、各乱数に重みを割り当てることから始めたことを思い出してください。 この例のニューラル ネットワークのトレーニング プロセスは次のとおりです。 ステップ 1: トレーニング データセットから入力を抽出し、トレーニング データセットの重みに応じて調整し、ニューラル ネットワークの出力を計算する方法を通じてフィルタリングします。 ステップ 2: バックプロパゲーション エラー率を計算します。この場合、それはニューロンの予測出力とトレーニング データセットの予想出力の差です。 ステップ 3: 誤差加重微分式を使用して、得られた誤差範囲に基づいて、いくつかの小さな重み調整が行われました。 ステップ 4: このプロセスを 15,000 回繰り返します。各反復では、トレーニング セット全体が同時に処理されます。 マトリックスを水平位置から垂直位置に変換するには、「.T」関数を使用します。したがって、数値は次のように保存されます。 最終的に、ニューロンの重みは提供されたトレーニング データに基づいて最適化されます。その後、ニューロンに以前の状態と同じ新しい状態を考慮するように要求すると、正確な予測を行うことができます。これがバックプロパゲーションの仕組みです。 パッケージ化して実行 ***、NeuralNetwork クラスが正常に初期化されたら、コードを実行できます。 Python プロジェクトでニューラル ネットワークを作成する方法の完全なコードは次のとおりです。
コードを実行した後の出力: このようにして、単純なニューラル ネットワークを作成することに成功しました。 ニューロンは最初にランダムな重みを割り当て、次にトレーニング例を使用して自分自身をトレーニングします。 その後、新しい状態[1,0,0]が出現すると、0.9999584と評価されます。 正解は 1 にしたかったことを覚えていますか? この値は非常に近く、シグモイド関数の出力値は 0 から 1 の間になります。 もちろん、この例では、単純なタスクを実行するために単一のニューラル ネットワークのみを使用します。何千もの人工ニューラルネットワークを接続すると何が起こるでしょうか?人間の思考方法を完全に模倣することはできるでしょうか? |
<<: Baidu AIは素晴らしいキャンパスライフに新たなタッチを加え、新学期をより技術的に
>>: 自動運転、ニューメディア、農業、エネルギー、医療、工業などの垂直産業における 5G の重要な役割をシンプルかつ深く理解するにはどうすればよいでしょうか。
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[51CTO.comからのオリジナル記事] 人工知能の応用が深まるにつれ、データの価値はますます顕著...
英国の科学者たちは、スマートフォンやノートパソコンなどの日常的な物に、デアデビルと同じくらい強力なコ...
[[384631]] ◇コンピューティングパワーアルゴリズムの重要な基盤として、人工知能チップと人...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
ビジネスが発展し、テクノロジーが成熟するにつれて、企業はデータの大幅な増加に直面しています。ビッグデ...
世界はクリーンで安全、かつ手頃な価格で持続可能な電力を緊急に必要としており、各国は化石エネルギーに代...
大規模言語モデルは最近、かつてないほどの注目を集めています。急速に変化する環境において、オープンソー...
ビッグデータのシナリオでは、ますます多くのトランザクションがアルゴリズムを通じて完了します。インター...