zimy w badaniach na sieciami neuronowymi.

Poniżej podano kod w języku Python do trenowania perceptronu metoda Rosenblatta, który uczy się bramki logicznej XOR - dodano tu dodatkowe wejście .

import numpy as np

# --- Dane wejściowe dla XOR z dodatkową cechą x3 = x1*x2 --- X = np.array([ [0, 0], [0, 1], [1, 0], [1, 1] ])

# Tworzymy dodatkową cechę x3 x3 = (X[:,0] * X[:,1]).reshape(-1,1) X_new = np.hstack([X, x3])

# Oczekiwane wyjścia XOR y = np.array([0, 1, 1, 0])

# --- Inicjalizacja wag i biasu --- np.random.seed() w = np.random.randn(3) b = 0.0 eta = 0.1 # współczynnik uczenia epochs = 20

# --- Funkcja aktywacji (step) --- def step(x): return np.where(x >= 0, 1, 0)

# --- Trening perceptronu --- for epoch in range(epochs): errors = 0 for xi, target in zip(X_new, y): output = step(np.dot(w, xi) + b) delta = target - output if delta != 0: w += eta * delta * xi b += eta * delta errors += 1 print(f"Epoka {epoch+1}: błąd = {errors}, wagi = {w}, bias = {b}") if errors == 0: break