In diesem Teil unserer Machine-Learning-Serie sehen wir uns an, wie man neuronale Netze aus mehreren Neuronen aufbauen, also in Python modellieren und trainieren kann. Damit lassen sich dann komplexere Zusammenhänge erkennen. Dazu müssen wir aber zunächst wissen, wie ein neuronales Netz lernt.
Hier betrachten wir näher, wie ein künstliches neuronales Netz vernetzt wird und lernt.
Werfen wir zu Beginn dieses Teils noch einmal einen Blick auf die Modellierung eines einzelnen Neurons. Das Neuron hat offensichtlich mehrere Eingänge mit ihren jeweiligen Gewichten und einen Ausgang. Auf dieser Basis lässt sich ein neuronales Netz modellieren. Die Idee für ein neuronales Netz ist es nun, sowohl mehrere Eingangs-Neuronen auf der „Eingangsschicht“ zu verwenden (vertikal), als auch mehrere Neuronen – ggf. in einer oder mehreren weiteren Schichten – hintereinander (horizontal) zu einem Netz zu verbinden.
Beispiel für den Aufbau eines neuronalen Netzes, nach einer Illustration bei CleanPNG.
(Bild: https://de.cleanpng.com/png-jxw2np/)
Wir stellen uns ein Modell mit drei Eingängen (die natürlich für sich auch schon Neuronen sind), zwei so genannten „verdeckten“ Schichten mit je vier Neuronen und einem Ausgang vor. Verdeckt bedeutet in diesem Zusammengang, dass die Neuronen dieser beiden Schichten nicht direkt zugänglich sind, bzw. „beschaltet“ werden können.
Die Vermaschung zwischen den einzelnen Schichten kann dabei beliebig komplex bis hin zu vollständig sein, d. h. jede der drei möglichen Verbindungen von einem Neuron im Input-Layer (Eingänge) zu den vieren im Hidden Layer 1 repräsentiert ein anderes Gewicht. Die Ausgabe des ersten Hidden Layer (versteckte Zwischenschicht) wird dann wiederum als Eingabe für den zweiten Hidden Layer betrachtet.
Nehmen wir wieder an, das erste Neuron (x1) des Input-Layer verarbeitet die Anzahl der Zylinder aus dem Beispiel des letzten Teils. Das zweite Neuron (x2) sei dann für die PS zuständig und das dritte Neuron verarbeitet das Gewicht des Autos. Der oder die Hidden Layer könnte dann dazu zum Einsatz kommen, weitere Features aus den Ursprungsdaten zu erkennen.
Jetzt könnte sich z. B. Neuron 1 des Hidden-Layer darauf trainiert haben vorherzusagen, ob es sich um ein großes oder kleines Auto handelt. Längen-, Breiten- und Höhenangaben sind ja im ursprünglichen Data Set nicht enthalten. Dazu könnte es z. B. x1 (Anzahl der Zylinder) und x3 (Gewicht) als Eingangsvektor betrachten, nicht aber x2.
Ein anderes Neuron des Hidden-Layer könnte sich auf andere Eigenschaften spezialisieren, die mit den Eingängen x1 und x2 operiert. Die jeweils nicht relevanten Gewichte würden in diesen Fällen einfach ignoriert oder sogar auf Null gesetzt werden. Alle hier gewonnen Informationen könnten dann wieder in der nächsten Schicht miteinander verrechnet werden.
Bemerkenswert bei einem neuronalen Netz ist, dass sich die einzelnen Neuronen quasi von selbst auf bestimmte Eigenschaften spezialisieren, je nachdem, mit welcher Gewichtsverteilung man das Training startet. Wie das Netz dabei genau lernt, hängt im Wesentlichen davon ab, wie die Gewichte aktualisiert werden. Bei komplexeren neuronalen Netzen haben wir es in der Regel mit einen Input-Layer (x), einen oder mehreren Hidden-Layers und einen Output-Layer zu tun, der letztendlich die gewünschte Ausgabe (Y) liefert. Der Output-Layer kann ebenfalls ein oder mehrere Neuronen haben.
Die Mächtigkeit neuronaler Netze liegt vor allem in den versteckten Schichten begründet; denn es gilt mathematisch als erwiesen, dass neuronale Netze mit einem beliebig großen Hidden-Layer theoretisch jede vorstellbare mathematische Funktion approximieren können. So jedenfalls die Mathematik. In der Praxis würde man aber statt einem Hidden-Layer mit 1.000.000 Neuronen eher mehrere Hidden Layer mit weniger Neuronen hintereinanderschalten, was mit der verfügbaren Rechenleistung besser abbildbar ist.
Wie lernt das neuronale Netz die Gewichte?
Bisher haben wir uns noch keine Gedanken darüber gemacht, wie ein neuronales Netz die Gewichte z. B. in den Hidden Layers adaptiert. Die Mächtigkeit neuronaler Netze liegt auch darin begründet, wie feinfühlig oder grobschlächtig das Netz an den einzelnen Gewichts-Reglern dreht. In Prinzip fängt das neuronale Netz mit irgendwelchen zufälligen Gewichten an und vergleicht in der Trainingsphase die jeweilige Ausgabe mit bekannten Solldaten.
Daraus lässt sich dann ein Fehler ermitteln, der anschließend quasi in einem erneuten Trainingsdurchlauf zur Gewichtsadaption verwendet werden kann, denn wir trainieren das Modell ja in der Trainingsphase mit existierenden Daten. Dazu bezeichnen wir in diesem Workshop in der Trainingsphase das Vorhersage-Ergebnis mit Ŷ und das tatsächliche Ergebnis mit Y.
Kostenfunktion
Wie funktioniert das Anpassen der Gewichte aber nun mathematisch? Hier kommt die so genannte Kostenfunktion ins Spiel. Einfach ausgedrückt lernen neuronale Netze, indem sie iterativ die Modellprognosen mit den tatsächlich beobachteten Daten vergleichen und die Gewichtungsfaktoren im Netz so anpassen, dass in jeder Iteration der Fehler zwischen Modellprognose und Ist-Daten kleiner wird.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Zur Quantifizierung des Modellfehlers wird dann jeweils eine Kostenfunktion errechnet. Diese hat normalerweise zwei Funktionsargumente, nämlich den Output des Modells (Ŷ), sowie die tatsächlich beobachteten Daten (Y). Eine in neuronalen Netzen häufig verwendete Kostenfunktion der ist der mittlere quadratische Fehler (Mean Squared Error, MSE) …
Mittlerer quadratischer Fehler.
(Bild: Drilling)
…, wobei Ŷ für den Output steht (also die Vorhersage). Lassen wir die Iteration zunächst einmal weg, sieht der quadratische Fehler für zwei Eingänge vereinfacht so aus:
E = (Ŷ-Y)²
…, also …
E = (x1*w1+x2*w2)
wobei Ŷ für die Vorhersage, also den geschätzten Wert steht und Ŷ für den tatsächlich gemessenen Wert. Wichtig dabei ist: x1, w1 und Y kommen aus den Trainingsdaten, Ŷ dagegen wird vorhergesagt. Der Vorteil des quadratischen Fehlers (neben vielen anderen denkbaren Kostenfunktionen) ist, dass sich z. B. ein kleiner Fehler nicht schlimm auswirkt, ein großer Fehler (durch die Quadrierung) jedoch enorm.
Der MSE errechnet zunächst für jeden Datenpunkt die quadratische Differenz zwischen yi und y und bildet dann den Mittelwert. Ein hoher MSE reflektiert somit eine schlechte Anpassung des Modells an die vorliegenden Daten. Ziel des Modelltrainings soll es sein, die Kostenfunktion durch Anpassung der Modellparameter (Gewichtungen) zu minimieren.
Doch woher weiß das neuronale Netz, welche Gewichte angepasst werden müssen und in welche Richtung? Faktisch hängt die Kostenfunktion immer von sämtlichen Parametern im neuronalen Netz ab. Verändert man auch nur ein Gewicht minimal, hat dies eine unmittelbare Auswirkung auf alle folgenden Neuronen und damit den Ausgang des Netzes und daher auch auf die Kostenfunktion.
In der Mathematik lassen sich die Stärke und Richtung der Veränderung der Kostenfunktion durch Veränderung eines einzelnen Parameters im Netzwerk durch die Berechnung der partiellen Ableitung der Kostenfunktion nach dem entsprechenden Gewichtungsparameter ermitteln.
Ableitung der Kostenfunktion.
(Bild: Drilling)
Da die Kostenfunktion sozusagen hierarchisch von den einzelnen Gewichtungsfaktoren im Netz abhängt, müssen wir jetzt mathematisch nur noch jeweils die Ableitungen bilden, und schon wissen wir (bzw. das neuronale Netz), wie die Gewichte zu aktualisieren sind.
Aktualisierung der Gewichte.
(Bild: Drilling)
Natürlich müssen wir uns in den folgenden Teilen dieses Workshops – insbesondere wenn wir uns der Lernmethode „Backpropagation“ auseinandersetzen – nicht weiter mit der komplexen Mathematik beschäftigen. Die entsprechenden für Python verfügbaren ML-Bibliotheken wie „Keras“ und „Tensorflow“ bringen solche Methoden nämlich bereits mit. Zum Verständnis ist es aber allemal wichtig, wenigstens einmal verinnerlicht zu haben, wie ein neuronales Netz prinzipiell lernt.