Die angepasste Definition der Funktion create
verwendet die Funktion random
,
um die intern gespeicherte Gewichte und den Bias zu initialisieren.
def create(input_count):
# last entry is bias
weights = [None] * (input_count + 1)
# initialize weights and bias
for i in range(0, len(weights)):
weights[i] = random()
return weights
Die Funktion total_error
berechnet den Gesamtfehler eines Perzeptrons für ein Array von Trianingsbeispielen
als Summe der Quadrate der Klassifizierungsfehler aller Trainingsbeispiele.
def total_error(weights, data):
sum = 0.0
# add squared errors
for i in range(0, len(data)):
example = data[i]
error = output(weights, example["inputs"]) - example["target"]
sum = sum + error * error
return sum
Wir können total_error
verwenden, um so lange zu trianieren, bis kein Fehler mehr auftritt.
while total_error(neuron, training_data) > 0:
for i in range(0, len(training_data)):
example = training_data[i]
train(neuron, example["inputs"], example["target"])
def display2d(weights):
for row in range(0, 11):
y = (10 - row) / 10
for col in range(0, 11):
x = col / 10
out = output(weights, [x, y])
print(" " + str(out) + " ", end="")
print("")