KI Elemente

Viele Teile ergeben ein Ganzes! Die Kunst unwichtige Details zu vermeiden!

Perceptron Beispiel

Ein Beispiel:

Ein Fahrzeug hat vorne einen Sensor, der ein Hindernis erkennt. Wenn ein Hindernis knapp vor dem Fahrzeug ist, sendet er 1 und sonst 0. Das Fahrzeug soll bei 1 stehenbleiben.

Lösung der Aufgabe mit einem Percepton.

Die Ausgangstabelle:


Python - Skript: Hindernis.py

# Stuhlpfarrer Ehrenfried - 2021
# Demo Bank - Fahrzeug - Hindernissensor

import numpy as np

class Hindernis:
def __init__(self, txt):
print(txt)

# Heaviside - Funktion
def heaviside(self, summe):
# Input: Summe
# Output: 1, falls summe >= 0, sonst 0
if summe >= 0:
return 1
else:
return 0

# Neuron - Berechnung
def perceptron_eval(self, X, y, w):
# Input: X, Inputvektor | y, der gewünschte Output
# Output: Der Gesamtfehler, d.h. Summe aus dem Betrag der Differenz von errechnetem und gewünschtem Output
# Der Gesamtfehler
gesamtfehler = 0;

# Index i und Element x Ermittlung vom Array X
for i, x in enumerate(X):
# x = Zeile für Zeile verwenden
# inneres Produkt zwischen x und w
summe = np.dot(w, x)
ergebnis = self.heaviside(summe)
# Fehler
fehler = np.abs(ergebnis - y[i])
# Gesamtfehler
gesamtfehler += fehler
# Ausgabe
print(
"Sensor = {}, gewünschtes Ergebnis = {}, errechnetes Ergebnis = {}, Fehler = {}".format(
x[1], y[i], ergebnis, fehler))
# Gesamtfehler pro Epoche über ganzen Trainingsdatensatz
return gesamtfehler


# Main -----------------------------------------------
# 2D Input = Bias-Neuron, Sensor
# 2 Inputvektoren
X = np.array([
[1,0],
[1,1],
])
# Die Gewichte so wählen dass das Problem gelöst werden kann
w = np.array([-
1, 1])
# Die 2 gewünschten Ergebniswerte
y = np.array([0,1])

h = Hindernis(
"Sensor - Hindernis")
# bank.perceptron_eval(X, y)

# Auswertung des Inputs
gesamtfehler = h.perceptron_eval(X, y, w)
print("Gesamtfehler = %1d" % (gesamtfehler))


KI

Copyright © 2021. All Rights Reserved. Ehrenfried Stuhlpfarrer