Rumah > pembangunan bahagian belakang > Tutorial Python > Analisis teknologi asas Python: cara melaksanakan rangkaian saraf

Analisis teknologi asas Python: cara melaksanakan rangkaian saraf

PHPz
Lepaskan: 2023-11-08 16:02:26
asal
836 orang telah melayarinya

Analisis teknologi asas Python: cara melaksanakan rangkaian saraf

Analisis teknologi asas Python: Cara melaksanakan rangkaian saraf memerlukan contoh kod khusus

Dalam bidang kecerdasan buatan moden, rangkaian saraf adalah salah satu teknologi yang paling biasa digunakan dan penting. Ia mensimulasikan prinsip kerja otak manusia dan merealisasikan tugas yang kompleks melalui sambungan berbilang lapisan neuron. Sebagai bahasa pengaturcaraan yang berkuasa dan mudah digunakan, Python menyediakan sokongan dan kemudahan yang meluas untuk melaksanakan rangkaian saraf. Artikel ini akan menyelidiki teknologi asas rangkaian saraf dan menunjukkan pelaksanaannya melalui contoh kod terperinci.

1. Struktur Rangkaian Neural

Rangkaian saraf terdiri daripada tiga bahagian utama: lapisan input, lapisan tersembunyi dan lapisan output. Lapisan input menerima data mentah atau vektor ciri, lapisan tersembunyi menukar input kepada perwakilan yang lebih abstrak melalui satu siri pemberat dan fungsi pengaktifan, dan akhirnya lapisan output menghasilkan hasil ramalan akhir.

2. Langkah asas untuk melaksanakan rangkaian saraf dalam Python

1. Import perpustakaan yang diperlukan

Dalam Python, kami boleh menggunakan NumPy untuk pengiraan berangka dan Matplotlib untuk operasi visualisasi. Oleh itu, kedua-dua perpustakaan ini perlu diimport terlebih dahulu.

import numpy as np
import matplotlib.pyplot as plt
Salin selepas log masuk

2. Tentukan kelas rangkaian saraf

Dalam kod, kami melaksanakannya dengan mentakrifkan kelas rangkaian saraf. Kelas ini mengandungi fungsi permulaan, fungsi perambatan ke hadapan dan fungsi perambatan belakang.

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)
Salin selepas log masuk

3. Tentukan fungsi pengaktifan dan derivatifnya

Fungsi pengaktifan yang biasa digunakan termasuk fungsi sigmoid dan fungsi ReLU. Terbitan fungsi pengaktifan memainkan peranan penting dalam proses perambatan belakang. Di bawah ialah contoh kod untuk kedua-dua fungsi ini.

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)
Salin selepas log masuk

4. Latihan model rangkaian neural

Semasa proses latihan, kita perlu menyediakan data latihan dan label sasaran. Dengan terus memanggil fungsi perambatan ke hadapan dan perambatan belakang, parameter berat secara beransur-ansur dioptimumkan supaya output rangkaian saraf sedekat mungkin dengan label sasaran.

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)
Salin selepas log masuk

5. Visualisasi hasil

Akhir sekali, kita boleh menggunakan perpustakaan Matplotlib untuk menggambarkan hasil ramalan.

plt.scatter(X[:, 0], X[:, 1], c=nn.output.flatten(), cmap='viridis')
plt.title("Neural Network")
plt.xlabel("Input1")
plt.ylabel("Input2")
plt.show()
Salin selepas log masuk

Dengan menjalankan kod di atas, kita boleh melihat hasil klasifikasi data input oleh rangkaian saraf.

Artikel ini menunjukkan cara menggunakan teknologi asas Python untuk melaksanakan rangkaian saraf melalui contoh kod terperinci. Dengan menggunakan teknologi ini, kami dapat membina dan melatih pelbagai model rangkaian saraf yang kompleks untuk menyelesaikan pelbagai tugas kecerdasan buatan. Saya harap artikel ini akan membantu anda memahami pelaksanaan asas rangkaian saraf dan meningkatkan kemahiran pengaturcaraan Python anda. Mari kita terokai kuasa rangkaian saraf bersama-sama!

Atas ialah kandungan terperinci Analisis teknologi asas Python: cara melaksanakan rangkaian saraf. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan