ホームページ > バックエンド開発 > Python チュートリアル > Python の基盤テクノロジーの分析: ニューラル ネットワークの実装方法

Python の基盤テクノロジーの分析: ニューラル ネットワークの実装方法

PHPz
リリース: 2023-11-08 16:02:26
オリジナル
854 人が閲覧しました

Python の基盤テクノロジーの分析: ニューラル ネットワークの実装方法

Python の基礎となるテクノロジーの分析: ニューラル ネットワークを実装するには特定のコード サンプルが必要です

現代の人工知能の分野では、ニューラル ネットワークは最も一般的に使用されているものの 1 つです。そして重要な技術。人間の脳の動作原理をシミュレートし、複数層のニューロンの接続を通じて複雑なタスクを実現します。 Python は強力で使いやすいプログラミング言語として、ニューラル ネットワークの実装に広範なサポートと利便性を提供します。この記事では、ニューラル ネットワークの基礎となるテクノロジーを詳しく掘り下げ、詳細なコード例を通じてその実装を示します。

1. ニューラル ネットワークの構造

ニューラル ネットワークは、入力層、隠れ層、出力層の 3 つの主要な部分で構成されます。入力層は生データまたは特徴ベクトルを受け取り、隠れ層は一連の重みと活性化関数を通じて入力をより抽象的な表現に変換し、最後に出力層が最終的な予測結果を生成します。

2. Python でニューラル ネットワークを実装するための基本手順

1. 必要なライブラリをインポートします

Python では、数値計算には NumPy を、視覚化操作には Matplotlib を使用できます。したがって、これら 2 つのライブラリを最初にインポートする必要があります。

import numpy as np
import matplotlib.pyplot as plt
ログイン後にコピー

2. ニューラル ネットワークのクラスを定義する

コードでは、ニューラル ネットワークのクラスを定義することでこれを実装します。このクラスには、初期化関数、順伝播関数、逆伝播関数が含まれます。

class NeuralNetwork:
    def __init__(self, input_size, hidden_size, output_size):
        self.input_size = input_size
        self.hidden_size = hidden_size
        self.output_size = output_size
        self.W1 = np.random.randn(self.input_size, self.hidden_size) 
        self.W2 = np.random.randn(self.hidden_size, self.output_size)

    def forward(self, X):
        self.z1 = np.dot(X, self.W1)
        self.a1 = self.sigmoid(self.z1)
        self.z2 = np.dot(self.a1, self.W2)
        self.output = self.sigmoid(self.z2)

    def backward(self, X, y):
        self.error = y - self.output
        self.delta_output = self.error * self.sigmoid_derivative(self.output)
        self.error_hidden = self.delta_output.dot(self.W2.T)
        self.delta_hidden = self.error_hidden * self.sigmoid_derivative(self.a1)

        self.W2 += self.a1.T.dot(self.delta_output)
        self.W1 += X.T.dot(self.delta_hidden)
ログイン後にコピー

3. 活性化関数とその導関数を定義する

一般的に使用される活性化関数には、シグモイド関数と ReLU 関数が含まれます。活性化関数の導関数は、逆伝播プロセスにおいて重要な役割を果たします。以下は、これら 2 つの関数のサンプル コードです。

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

def sigmoid_derivative(x):
    return x * (1 - x)

def relu(x):
    return np.maximum(0, x)
ログイン後にコピー

4. トレーニング ニューラル ネットワーク モデル

トレーニング プロセス中に、トレーニング データとターゲット ラベルを準備する必要があります。順伝播関数と逆伝播関数を継続的に呼び出すことにより、重みパラメータが徐々に最適化され、ニューラル ネットワークの出力がターゲット ラベルに可能な限り近づくようになります。

X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [1], [1], [0]])

nn = NeuralNetwork(2, 4, 1)

for i in range(10000):
    nn.forward(X)
    nn.backward(X, y)

print("Output after training:")
print(nn.output)
ログイン後にコピー

5. 結果の視覚化

最後に、Matplotlib ライブラリを使用して予測結果を視覚化できます。

plt.scatter(X[:, 0], X[:, 1], c=nn.output.flatten(), cmap='viridis')
plt.title("Neural Network")
plt.xlabel("Input1")
plt.ylabel("Input2")
plt.show()
ログイン後にコピー

上記のコードを実行すると、ニューラルネットワークによる入力データの分類結果がわかります。

この記事では、Python の基礎となるテクノロジを使用してニューラル ネットワークを実装する方法を、詳細なコード例を通じて説明します。これらのテクノロジーを使用すると、さまざまな複雑なニューラル ネットワーク モデルを構築してトレーニングし、さまざまな人工知能タスクを解決できます。この記事が、ニューラル ネットワークの基礎となる実装を理解し、Python プログラミング スキルを向上させるのに役立つことを願っています。ニューラル ネットワークの力を一緒に探求しましょう。

以上がPython の基盤テクノロジーの分析: ニューラル ネットワークの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート