KI-Konzepte in Python

Neuronen und Aktivierungsfunktionen in Python

Ein künstliches Neuron ist eine winzige Funktion. Es multipliziert jede Eingabe mit einem Gewicht, addiert einen Bias und gibt das Ergebnis an eine Aktivierungsfunktion weiter, die entscheidet, wie stark es „feuert“.

Das Konzept in einfachen Worten

Ein künstliches Neuron ist eine winzige Funktion. Es multipliziert jede Eingabe mit einem Gewicht, addiert einen Bias und gibt das Ergebnis an eine Aktivierungsfunktion weiter, die entscheidet, wie stark es „feuert“.

Baue ein künstliches Neuron in reinem Python: eine gewichtete Summe der Eingaben plus Bias, die durch Sigmoid oder ReLU läuft.

Die wichtigsten Ideen

  • Gewichte sagen, wie wichtig jede Eingabe ist; der Bias verschiebt das Ergebnis nach oben oder unten.
  • Ohne Aktivierung ergeben gestapelte Neuronen trotzdem nur ein lineares Modell (eine Gerade).
  • Sigmoid liefert einen Wert zwischen 0 und 1 und eignet sich daher für Wahrscheinlichkeiten.
  • ReLU ist schnell und die übliche Wahl für die verborgenen Schichten moderner Netze.

Wann wird dieser Ansatz verwendet?

  • Verstehen, was in neuronalen Netzen und KI-Bibliotheken passiert.
  • Die Idee lernen, bevor du sie in den passenden Challenges umsetzt.
  • Dich auf Kurse zu maschinellem Lernen, Vorstellungsgespräche und Projekte vorbereiten.

Selbst ausprobieren

Ändere mit den Schiebereglern Eingaben, Gewichte und Bias. Beobachte, wie die gewichtete Summe z über die Sigmoid- und ReLU-Kurven wandert.

Beispielcode

Code ausführen →
main.py
import math

# A neuron multiplies each input by a weight, adds them up and adds a bias.
def dot(a, b):
    return sum(x * y for x, y in zip(a, b))

def sigmoid(z):
    return 1 / (1 + math.exp(-z))   # squashes any number into (0, 1)

def relu(z):
    return max(0.0, z)              # keeps positives, turns negatives into 0

inputs = [0.5, -1.0, 2.0]
weights = [0.8, 0.2, -0.5]
bias = 0.1

z = dot(inputs, weights) + bias      # weighted sum
print("weighted sum z =", round(z, 3))
print("sigmoid(z) =", round(sigmoid(z), 3))
print("relu(z) =", relu(z))

# The activation decides how strongly the neuron "fires".
for value in [-2, 0, 2]:
    print(f"z={value:>2}  sigmoid={sigmoid(value):.3f}  relu={relu(value)}")

Erwartete Ausgabe

weighted sum z = -0.7
sigmoid(z) = 0.332
relu(z) = 0.0
z=-2  sigmoid=0.119  relu=0.0
z= 0  sigmoid=0.500  relu=0.0
z= 2  sigmoid=0.881  relu=2

So funktioniert es

dot() berechnet die gewichtete Summe z. Sigmoid presst z in einen Wert zwischen 0 und 1, während ReLU positive Werte behält und negative zu 0 macht. Die Schleife zeigt, wie jede Aktivierung auf eine negative, eine null und eine positive Eingabe reagiert.

Ändere die Werte und führe das Programm im CodeUtility Python Online-Compiler aus, ohne Python lokal zu installieren.

Übungsaufgaben

Verändere Eingaben und Randfälle, bevor du die Lösung mit größeren Datenmengen testest.

  1. Ändere Eingaben oder Gewichte und sage die Ausgabe vor dem Ausführen voraus.
  2. Gib die Zwischenwerte aus, um jeden Rechenschritt zu verfolgen.
  3. Löse die verlinkten Challenges unten, um die Idee selbst umzusetzen.
In der Python-IDE ausführen →

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges