KI‑Kompass
Kompass

Wie ein neuronales Netz rechnet

Von einem Neuron zur Schicht zum Netz: was tatsächlich passiert, wenn Daten hindurchfließen, und warum Tiefe etwas anderes bewirkt als Breite.

·2 Min. Lesezeit·Von Fachredaktion Technik
DETAILGRAD
3 Abschnitte

Die Idee

Ein Neuron bekommt mehrere Zahlen, multipliziert jede mit einem eigenen Gewicht, addiert alles zusammen, gibt einen Versatz dazu und schickt das Ergebnis durch eine einfache Funktion, die alles Negative auf null setzt. Das ist alles.

Eine Schicht ist eine Reihe solcher Neuronen nebeneinander. Ein Netz ist eine Folge von Schichten. Die erste Schicht sieht die Rohdaten, jede weitere sieht, was die vorige daraus gemacht hat.

Was Tiefe bewirkt

Bei einem Bild erkennt die erste Schicht Helligkeitssprünge, die zweite daraus Ecken, die dritte einfache Formen, die vierte Objektteile. Jede Ebene setzt die Bausteine der vorigen zusammen. Deshalb heißt es tiefes Lernen.

Ein Netz von Hand

import numpy as np
rng = np.random.default_rng(0)

def relu(x): return np.maximum(0, x)

# He-Initialisierung: Standardabweichung sqrt(2/fan_in). Mit falscher
# Initialisierung stirbt das Signal ueber die Schichten hinweg ab.
def schicht(fan_in, fan_out):
    return (rng.normal(0, np.sqrt(2 / fan_in), (fan_in, fan_out)),
            np.zeros(fan_out))

W1, b1 = schicht(784, 256)
W2, b2 = schicht(256, 128)
W3, b3 = schicht(128, 10)

x = rng.normal(size=(32, 784))               # 32 Bilder à 28x28
a1 = relu(x  @ W1 + b1)
a2 = relu(a1 @ W2 + b2)
logits = a2 @ W3 + b3                        # 32 x 10, noch keine Wahrscheinlichkeiten

for name, a in [("a1", a1), ("a2", a2)]:
    print(name, "Mittel", round(float(a.mean()), 3),
          "Anteil null", round(float((a == 0).mean()), 3))

Der Anteil der Nullen ist die wichtigste Diagnose beim Bau eines Netzes. Liegt er über 90 Prozent, sind viele Neuronen tot und tragen nichts mehr bei.

Die Parameterzahl

SchichtEingangAusgangParameter
1784256200.960
225612832.896
3128101.290
Summe235.146

Die Formel

Eine Schicht

a⁽ˡ⁾ = σ( W⁽ˡ⁾ · a⁽ˡ⁻¹⁾ + b⁽ˡ⁾ )

Die Ausgabe einer Schicht ist die Aktivierungsfunktion, angewandt auf eine Matrixmultiplikation plus Versatz.

a⁽ˡ⁾
Aktivierung nach Schicht l
W⁽ˡ⁾
Gewichtsmatrix der Schicht l
b⁽ˡ⁾
Versatzvektor
σ
die Aktivierungsfunktion

Ohne σ wäre W⁽²⁾(W⁽¹⁾x + b⁽¹⁾) + b⁽²⁾ = (W⁽²⁾W⁽¹⁾)x + (W⁽²⁾b⁽¹⁾ + b⁽²⁾), also wieder eine einzige lineare Abbildung. Zwanzig Schichten hätten exakt dieselbe Ausdruckskraft wie eine.

Initialisierung

He- und Xavier-Initialisierung

He (für ReLU): σ = √(2 / n_in) Xavier (für tanh): σ = √(2 / (n_in + n_out))

Die Streuung der Anfangsgewichte wird so gewählt, dass die Varianz des Signals über die Schichten hinweg ungefähr erhalten bleibt.

n_in
Anzahl der Eingänge einer Schicht
n_out
Anzahl der Ausgänge

Der Grund ist eine Varianzrechnung: Bei ReLU ist im Mittel die Hälfte der Ausgänge null, was die Varianz halbiert. Der Faktor 2 gleicht das aus. Ohne diese Korrektur fällt die Aktivierungsvarianz je Schicht um die Hälfte und ist nach zwanzig Schichten auf 2⁻²⁰ ≈ 1e-6 gefallen.

Universelle Approximation, richtig gelesen

Der Satz besagt, dass ein Netz mit einer verborgenen Schicht jede stetige Funktion auf einem kompakten Bereich beliebig genau annähern kann. Was er nicht besagt:

  • Wie viele Neuronen dafür nötig sind. Die Zahl kann exponentiell in der Eingabedimension wachsen.
  • Ob das Training diese Gewichte findet. Der Satz ist eine Existenzaussage.
  • Ob die Näherung außerhalb des betrachteten Bereichs gilt. Sie gilt nicht.

Praktisch ist der Satz deshalb kein Argument für flache Netze. Tiefe Netze erreichen dieselbe Genauigkeit mit exponentiell weniger Neuronen, weil sie Merkmale wiederverwenden statt sie nebeneinander zu stellen.

Passende Kurse und Quellen

StudieKostenlosEN

Batch Normalization

Warum das Normalisieren von Zwischenwerten tiefes Training überhaupt erst stabil macht.

Für alle, die wissen wollen, warum Normalisierung tiefes Training erst möglich macht.

BuchKostenlosEN

Deep Learning

Das Standardwerk von Goodfellow, Bengio und Courville, frei lesbar. Mathematisch dicht, vollständig, und in den Grundlagenteilen zeitlos.

Für den systematischen Zugang. Als Nachschlagewerk stark, als Einstieg zu dicht.

KursTeilweise kostenlos7200 Min.EN

Deep Learning Specialization

Fünf Kurse von den Grundlagen neuronaler Netze bis zu Sequenzmodellen. Ausführlich, mit Programmierübungen, und in Teilen älter als die aktuelle Praxis.

Für alle mit Programmierkenntnissen, die den Bereich vollständig durcharbeiten wollen.

DeepLearning.AIZum Angebot
BuchKostenlosEN

Dive into Deep Learning

Lehrbuch mit ausführbarem Code neben jeder Herleitung. Jedes Kapitel lässt sich als Notebook öffnen und nachrechnen.

Für alle, die beim Lesen mitrechnen wollen; jedes Kapitel lässt sich als Notizbuch öffnen.

WerkzeugKostenlosEN

Netron

Öffnet eine Modelldatei und zeichnet ihren Aufbau. Die schnellste Art zu sehen, was in einem gelieferten Modell tatsächlich steckt.

Für den schnellen Blick in ein geliefertes Modell, bevor man es in Betrieb nimmt.

VideoKostenlos150 Min.EN

Neuronale Netze, visuell erklärt

Von der einzelnen Gewichtung über Gradientenabstieg bis zum Aufmerksamkeitsmechanismus. Die beste verfügbare Anschauung für das, was die Formeln beschreiben.

Vor dem ersten Lehrbuch anzusehen, nicht danach. Spart Wochen an Verwirrung.

3Blue1BrownZum Angebot
KursKostenlos4200 Min.EN

Practical Deep Learning for Coders

Beginnt mit einem lauffähigen Modell in der ersten Stunde und liefert die Theorie danach. Der kürzeste Weg von Python-Grundkenntnissen zum eigenen trainierten Modell.

Für Ungeduldige mit Python-Kenntnissen: das erste eigene Modell läuft in der ersten Stunde.

KursKostenlosEN

PyTorch-Tutorials

Die offiziellen Anleitungen, von der ersten Tensoroperation bis zum verteilten Training. Kurz, lauffähig und laufend aktualisiert.

Für den Einstieg in die Bibliothek, in der der Großteil der Forschung geschrieben ist.

WerkzeugKostenlosEN

TensorFlow Playground

Ein neuronales Netz im Browser, mit Reglern für Schichten, Aktivierung und Lernrate. Man sieht in Sekunden, was jede Stellschraube tut.

Für alle, die sehen wollen, was Lernrate, Schichten und Aktivierung tatsächlich bewirken.

BuchKostenlosEN

Understanding Deep Learning

Modernes Lehrbuch mit ungewöhnlich klaren Abbildungen, das Transformer und Diffusionsmodelle bereits vollständig behandelt. Frei als PDF.

Für den modernen Einstieg; behandelt Transformer und Diffusion bereits vollständig.

War diese Seite hilfreich?
Wie ein neuronales Netz rechnet