Vorbild künstlicher neuronaler Netze (KNN) sind das biologische Nervensystem. Bei KNN geht es darum, dass Verhalten biologischer Neuronen nachzubilden. Ziel ist es ein Netz zu erstellen, dass in der Lage ist, Regeln zu lernen.

Die Herausforderung an Diagnose- und Überwachungssysteme ist es in einer komplexen Umgebung Informationen über bestimmte Zustände zu ermitteln. Nicht jeder Zustand ist direkt messbar. Daher ist es notwendig aus messbaren Daten Muster zu erkennen und diese durch Modelle intelligent auszuwerten. Durch Fortschreiten der Entwicklung der CPU-Leistung und digitaler Speichertechnik können datenbasierte Modelle zunehmend an Bedeutung gewinnen.

Ziel diese Fachbeitrages ist es, eine Einführung in die Theorie künstlicher neuronaler Netze zu geben. Dabei soll auf den Aufbau und das Anlernen eines Feed-forward Netzes im Mittelpunkt stehen. Es sei noch zu erwähnen, dass es darüber hinaus viele weitere KNN Konzepte gibt, die im Rahmen dieses Beitrags nicht behandelt werden.

Aufbau Neuronaler Netze

Die ersten Konzepte zu neuronalen Netzen gehen zurück ins Jahr 1943, als Warren McCulloch und Walter Pitts die McCulloch-Pitts-Neuronen vorstellten. Ein Neuron ist eine besitzt eine mathematische Funktion, die sogenannte Aktivierungsfunktion, mit einem oder mehreren gewichteten Eingängen und einem Ausgangswert. Im einfachsten Fall handelt es sich bei der Aktivierungsfunktion um eine Sprungfunktion, die entweder 0 ausgibt oder ab einem bestimmten Schwellwert eine 1 ausgibt.  Mehrere Neuronen können miteinander verbunden werden und bilden somit ein Netz. Die Verbindungen der Neuronen sind gewichtet. Dabei ist der Ausgang des einen Neurons, der Eingang des anderen. Ziel des Trainings ist es, die Gewichtungen so zu wählen, dass ein Netz daraus eine bestimmte Regel zur Lösung eines Problems ableiten kann.

Feed-forward Netze sind Netze, die aus mehreren hintereinandergeschalteten Schichten von Neuronen bestehen. Ein dreischichtiges Netz besteht beispielsweise aus der Eingangsschicht, der Zwischenschicht (so genannte versteckte Schicht) und der Ausgangsschicht. In jeder Schicht befinden sich Neuronen.  Der Datenfluss geht bei Feed-forward Netzen von Eingangsschicht nach Ausgangsschicht ohne Rekursion. Allan Pinkus hat in seiner Arbeit „Approximation Theory of the MLP Model in Neural Networks“ ermittelt, dass es ausgeschlossen ist, dass es stetige Funktionen gibt, die mit einem Netz mit einer versteckten Schicht nicht approximiert werden können.

Training

Das Training eines neuronalen Netzes kann überwacht oder unüberwacht erfolgen. Überwacht bedeutet, dass der Sollwert bekannt ist. Den Datensatz aus Sollwert und Eingangswert nennt man in der Literatur auch feste Lernaufgabe.

Beim unüberwachten Lernen gibt es keine Sollwertvorgabe. Hier besteht die Möglichkeit, Ähnlichkeiten der Eingänge zusammengefasst werden.  Hier soll nun der überwachte Lernvorgang vorgestellt werden. Dieser Vorgang besteht aus Trainingsphase und Validierungsphase.

Trainingsphase

Zur Vorbereitung des Trainings steht ein Datensatz aus Eingangsgrößen und Ausgangsgrößen zur Verfügung. Diesen Datensatz nennt man Trainingsdatensatz. Der Trainingsdatensatz sollte so erstellt werden, dass er komplex genug ist damit das Netz ebenfalls komplexe Regeln lernt. Hierbei spielt die spätere Anwendung des Netzes eine Rolle.

In der Trainingsphase werden zunächst alle Gewichtungen zufällig initialisiert. Im ersten Schritt wird dann am Eingang des Netzes der Eingangsdatensatz eingegeben. Das Netz ermittelt nun durch die gewichteten Aktivierungsfunktionen einen Ausgangswert, den Istwert. Dieser Ausgangswert wird dann mit dem Sollwert verglichen. Die Differenz zwischen Sollwert und Istwert ist ein Maß für die Funktionalität des Netzes. Bei einer zu großen Differenz muss die Gewichtung des Netzes korrigiert werden. Ein Algorithmus zur Korrektur der Gewichtungen ist der Error-Backpropagation Algorithmus in einem späteren Abschnitt. Das Training ist beendet, wenn die Lernaufgabe mit einem kleinen, tolerierbaren Fehler abgeschlossen wird.

Validierungsphase

In der Validierungsphase werden dem Netz Eingangsdaten vorgegeben, die nicht zum Training verwendet wurden. Der Sollwert ist jedoch bekannt. Diese Phase ist wichtig, da es passieren kann, dass das Netz übertrainiert wurde. Das bedeutet, dass das Netz sehr gut den Trainingsdatensatz wiedergibt, aber keine Regel zur Generalisierung gelernt hat. Man spricht hier vom Auswendiglernen. Stellt man fest, dass das Netz in der Validierungsphase große Fehler macht, muss eine Fehleranalyse durchgeführt werden. Lösungsmöglichkeiten könnten dann ein verbesserter Trainingsdatensatz oder eine optimierte Netzarchitektur sein.

Error- Backpropagation

Das Error-Backpropagation Verfahren ist ein Algorithmus zu Korrektur von Gewichtungen neuronaler Netze. Dabei wird ausgehend vom Ausgang des Netzes der Fehler nach hinten durchgereicht.  Das Verfahren basiert auf dem Gradientenabstieg-Verfahren.

Gradientenabstieg

Beim Gradientenabstieg-Verfahren wird der Gradient der Fehlerfunktion berechnet. Die Fehlerfunktion ergibt sich aus Differenz von Sollwert und Istwert.  Anschließend wird ein Schritt in Richtung des negativen Gradienten gegangen. Ziel ist es das Globale Minimum der Fehlerfunktion zu finden.

Backpropagation

Der Unterschied zwischen Gradientenabstieg in Abschnitt und EPB ist, dass nun die Gewichtsänderung eines Gewichts gesucht wird, dass nicht direkt mit der Ausgangsschicht verbunden ist.  Die Fehlerfunktion soll nach dem gewichteten Eingang des versteckten Neurons abgeleitet werden. Dazu muss die Fehlerfunktion nach dem gewichteten Eingang der Ausgangsschicht abgeleitet werden und der gewichtete Eingang des Ausgangsschicht dann nach dem gewichteten Eingang des versteckten Neurons.

Ausblick

Künstliche neuronale Netze sind geeignet, um aus Eingangsmustern Zustände zu ermitteln.  Daher sind sie als Klassifikatoren im Bereich des maschinellen Lernens einsetzbar. Ein Anwendungsfall kann die Simulation des State of Charge von Akkus sein. Dies kann bei der Entwicklung von Software für Batteriemanagementsysteme hilfreich sein. Für neuronale Netze zur State of Charge Simulation sprechen ihre gute Anpassungsfähigkeit, da sie durch Datensätze trainierbar sind.  Probleme kann es durch das Auswendiglernen des Netzes geben oder wenn der Wert am Eingang weit außerhalb des Trainingsdatenbereichs liegt.

Autor: Severin Sander