AI-For-Beginners/translations/de/lessons/3-NeuralNetworks/04-OwnFramework
leestott 449df2cc64 🌐 Update translations via Co-op Translator 2025-08-31 17:20:28 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-31 17:20:28 +00:00
OwnFramework.ipynb 🌐 Update translations via Co-op Translator 2025-08-31 17:20:28 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-24 10:52:15 +00:00

README.md

Einführung in Neuronale Netze. Mehrschichtiger Perzeptron

Im vorherigen Abschnitt hast du das einfachste Modell eines neuronalen Netzes kennengelernt den einlagigen Perzeptron, ein lineares Klassifikationsmodell für zwei Klassen.

In diesem Abschnitt erweitern wir dieses Modell zu einem flexibleren Framework, das uns ermöglicht:

  • Mehrklassenklassifikation zusätzlich zur Zweiklassenklassifikation durchzuführen
  • Regressionsprobleme zusätzlich zur Klassifikation zu lösen
  • Klassen zu trennen, die nicht linear separierbar sind

Wir werden außerdem unser eigenes modulares Framework in Python entwickeln, mit dem wir verschiedene Architekturen neuronaler Netze erstellen können.

Quiz vor der Vorlesung

Formalisierung des maschinellen Lernens

Beginnen wir mit der Formalisierung des Problems des maschinellen Lernens. Angenommen, wir haben einen Trainingsdatensatz X mit Labels Y, und wir müssen ein Modell f erstellen, das möglichst genaue Vorhersagen trifft. Die Qualität der Vorhersagen wird durch die Verlustfunktion gemessen. Die folgenden Verlustfunktionen werden häufig verwendet:

  • Für Regressionsprobleme, bei denen wir eine Zahl vorhersagen müssen, können wir den absoluten Fehleri|f(x(i))-y(i)| oder den quadratischen Fehleri(f(x(i))-y(i))2 verwenden.
  • Für Klassifikationen verwenden wir den 0-1-Verlust (der im Wesentlichen der Genauigkeit des Modells entspricht) oder den logistischen Verlust.

Für den einlagigen Perzeptron wurde die Funktion f als lineare Funktion definiert: f(x)=wx+b (hierbei ist w die Gewichtsmatrix, x der Vektor der Eingabefeatures und b der Bias-Vektor). Für verschiedene Architekturen neuronaler Netze kann diese Funktion eine komplexere Form annehmen.

Im Fall der Klassifikation ist es oft wünschenswert, Wahrscheinlichkeiten der entsprechenden Klassen als Ausgabe des Netzes zu erhalten. Um beliebige Zahlen in Wahrscheinlichkeiten umzuwandeln (z. B. um die Ausgabe zu normalisieren), verwenden wir oft die Softmax-Funktion σ, und die Funktion f wird zu f(x)=σ(wx+b).

In der obigen Definition von f werden w und b als Parameter θ=⟨w,b⟩ bezeichnet. Gegeben den Datensatz ⟨X,Y⟩, können wir den Gesamterror für den gesamten Datensatz als Funktion der Parameter θ berechnen.

Das Ziel des Trainings eines neuronalen Netzes ist es, den Fehler durch Variation der Parameter θ zu minimieren.

Gradient-Descent-Optimierung

Es gibt eine bekannte Methode zur Optimierung von Funktionen, die als Gradient Descent bezeichnet wird. Die Idee ist, dass wir eine Ableitung (im mehrdimensionalen Fall als Gradient bezeichnet) der Verlustfunktion in Bezug auf die Parameter berechnen und die Parameter so variieren können, dass der Fehler abnimmt. Dies kann wie folgt formalisiert werden:

  • Initialisiere die Parameter mit zufälligen Werten w(0), b(0)
  • Wiederhole die folgenden Schritte viele Male:
    • w(i+1) = w(i)-η∂ℒ/∂w
    • b(i+1) = b(i)-η∂ℒ/∂b

Während des Trainings sollten die Optimierungsschritte unter Berücksichtigung des gesamten Datensatzes berechnet werden (denk daran, dass der Verlust als Summe über alle Trainingsbeispiele berechnet wird). In der Praxis nehmen wir jedoch kleine Teile des Datensatzes, sogenannte Minibatches, und berechnen die Gradienten basierend auf einem Teil der Daten. Da der Teil jedes Mal zufällig ausgewählt wird, wird diese Methode als stochastischer Gradient Descent (SGD) bezeichnet.

Mehrschichtige Perzeptrons und Backpropagation

Ein einlagiges Netzwerk, wie wir oben gesehen haben, ist in der Lage, linear separierbare Klassen zu klassifizieren. Um ein komplexeres Modell zu erstellen, können wir mehrere Schichten des Netzwerks kombinieren. Mathematisch bedeutet dies, dass die Funktion f eine komplexere Form annimmt und in mehreren Schritten berechnet wird:

  • z1=w1x+b1
  • z2=w2α(z1)+b2
  • f = σ(z2)

Hierbei ist α eine nichtlineare Aktivierungsfunktion, σ eine Softmax-Funktion, und die Parameter θ=<w1,b1,w2,b2>.

Der Gradient-Descent-Algorithmus bleibt derselbe, aber die Berechnung der Gradienten wird schwieriger. Mithilfe der Kettenregel der Differentiation können wir die Ableitungen wie folgt berechnen:

  • ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2)
  • ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1)

Die Kettenregel der Differentiation wird verwendet, um die Ableitungen der Verlustfunktion in Bezug auf die Parameter zu berechnen.

Beachte, dass der linke Teil all dieser Ausdrücke identisch ist, und daher können wir die Ableitungen effizient berechnen, indem wir von der Verlustfunktion ausgehend "rückwärts" durch den Berechnungsgraphen gehen. Daher wird die Methode zum Trainieren eines mehrschichtigen Perzeptrons als Backpropagation oder 'Backprop' bezeichnet.

Berechnungsgraph

TODO: Bildnachweis

Wir werden Backpropagation in unserem Notebook-Beispiel noch viel detaillierter behandeln.

Fazit

In dieser Lektion haben wir unsere eigene Bibliothek für neuronale Netze erstellt und sie für eine einfache zweidimensionale Klassifikationsaufgabe verwendet.

🚀 Herausforderung

Im begleitenden Notebook wirst du dein eigenes Framework zur Erstellung und zum Training mehrschichtiger Perzeptrons implementieren. Du wirst im Detail sehen, wie moderne neuronale Netze funktionieren.

Gehe zum OwnFramework Notebook und arbeite es durch.

Quiz nach der Vorlesung

Rückblick & Selbststudium

Backpropagation ist ein gängiger Algorithmus in KI und ML, der es wert ist, im Detail studiert zu werden.

Aufgabe

In diesem Labor wirst du das Framework, das du in dieser Lektion erstellt hast, verwenden, um die Klassifikation handgeschriebener Ziffern aus dem MNIST-Datensatz zu lösen.

Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.