ニューラル ネットワークの仕組みを理解する最良の方法は、自分でニューラル ネットワークを作成することです。この記事では、その方法を説明します。 ニューラル ネットワーク (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 の重要な役割をシンプルかつ深く理解するにはどうすればよいでしょうか。
8月30日夜、「ZAO」と呼ばれるAI顔変更ソフトウェアがソーシャルメディアを席巻した。ユーザーは正...
Hyperion Research はハンブルクで毎年恒例の ISC HPC (ハイパフォーマンス ...
2019年10月25日、人工知能の新興企業OpenAIが非営利団体から「営利企業」へと転換した際、シ...
[[434349]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitA...
最近、メタバースに新たな水が流れ込んできました。 Metaが開催した研究室でのディスカッションにおい...
6月23日、オーストラリアの量子コンピューティング企業SQC(Silicon Quantum Com...
事情に詳しい関係者によると、10月28日、Googleはこれまでの投資に加え、OpenAIの競合企業...
[[255840]] Ali Sister の紹介: 音声認識技術は人工知能技術の重要な部分として、...
現在、新世代情報技術の急速な発展に伴い、自動運転をはじめとした新興産業がますます台頭しています。世界...
2016年3月の「人間対機械」は、機械に対する認識を一新した。世界一の囲碁名人イ・セドルが、人工知能...
[[355787]]画像ソース: https://pixabay.com/images/id-537...
2月7日、横浜港で今年10月から1年間にわたり、歩行ガンダムロボットの大規模競技会が開催されることが...
2024年にAI業界はどのように進化するのでしょうか? OpenAIのグレッグ・ブロックマン会長は...