Main Content

Anpassen von Daten mithilfe der App „Neural Net Fitting“

Dieses Beispiel veranschaulicht, wie ein flaches neuronales Netz mithilfe der App Neural Net Fitting für das Anpassen von Daten trainiert werden kann.

Öffnen Sie die App Neural Net Fitting mithilfe des Befehls nftool.

nftool

Auswählen der Daten

Die App Neural Net Fitting enthält Beispieldaten, die Ihnen den Einstieg in das Training eines neuronalen Netzes erleichtern.

Wählen Sie zum Importieren von Beispieldaten für Körperfettwerte Import > Import Body Fat Data Set (Datensatz mit Körperfettwerten importieren) aus. Mit diesem Datensatz können Sie ein neuronales Netz trainieren, das anhand verschiedener Messwerte den Körperfettgehalt einer Person schätzt. Wenn Sie Ihre eigenen Daten aus einer Datei oder aus dem Arbeitsbereich importieren, müssen Sie die Prädiktoren und Antworten angeben und festlegen, ob die Beobachtungen in Zeilen oder Spalten vorliegen.

Informationen über die importierten Daten werden im Fenster Model Summary (Modellzusammenfassung) angezeigt. Dieser Datensatz enthält 252 Beobachtungen mit jeweils 13 Merkmalen. Die Antworten enthalten für jede Beobachtung den Körperfettwert in Prozent.

Unterteilen Sie die Daten in Trainings-, Validierungs- und Testmengen. Behalten Sie die Standardeinstellungen bei. Die Daten sind wie folgt unterteilt:

  • 70 % für das Training.

  • 15 % für die Validierung, um festzustellen, ob das Netz generalisiert, und um das Training zu stoppen, bevor es zu einer Überanpassung kommt.

  • 15 %, um unabhängig zu testen, ob das Netz generalisiert.

Weitere Informationen zur Datenunterteilung finden Sie unter Divide Data for Optimal Neural Network Training.

Erstellen des Netzes

Das Netz ist ein zweischichtiges vorwärtsgerichtetes Netz (auch: Feedforward-Netz) mit einer Sigmoid-Transferfunktion in der verborgenen Schicht und einer linearen Transferfunktion in der Ausgangsschicht. Der Wert für Layer size (Schichtgröße) definiert die Anzahl der verborgenen Neuronen. Behalten Sie die Standardschichtgröße (10) bei. Die Netzarchitektur wird im Fensterbereich Network angezeigt. Das Netzdiagramm wird aktualisiert, um die Eingangsdaten widerzuspiegeln. In diesem Beispiel umfassen die Daten 13 Eingänge (Merkmale) und einen Ausgang.

Trainieren des Netzes

Wählen Sie zum Trainieren des Netzes Train > Train with Levenberg-Marquardt aus. Dies ist der Standard-Trainingsalgorithmus. Er ist identisch mit dem Algorithmus, der beim Klicken auf Train verwendet wird.

Das Training mit „Levenberg-Marquardt“ (trainlm) wird für die meisten Probleme empfohlen. Für rauschbehaftete oder kleine Probleme erzielen Sie mit „Bayesian Regularization“ (trainbr) möglicherweise bessere Ergebnisse, allerdings dauert das Training damit länger. Für große Probleme wird „Scaled Conjugate Gradient“ (trainscg) empfohlen, weil dieser Algorithmus Gradientenberechnungen verwendet, die speichereffizienter sind als die Jacobi-Berechnungen, die von den beiden anderen Algorithmen verwendet werden.

Im Fensterbereich Training wird der Trainingsfortschritt angezeigt. Das Training wird so lange fortgesetzt, bis eines der Stoppkriterien erfüllt ist. In diesem Beispiel wird das Training so lange fortgesetzt, bis der Validierungsfehler größer oder gleich dem zuvor kleinsten Validierungsfehler für sechs aufeinanderfolgende Validierungsiterationen ist („Erfülltes Validierungskriterium“).

Analysieren der Ergebnisse

Die Modellzusammenfassung enthält Informationen zum Trainingsalgorithmus und zu den Trainingsergebnissen für die einzelnen Datensätze.

Sie können die Ergebnisse weiter analysieren, indem Sie Diagramme generieren. Zum Darstellen der linearen Regression klicken Sie im Abschnitt Plots (Diagramme) auf Regression. Im Regressionsdiagramm werden die Netzvorhersagen (Ausgang) in Bezug auf die Antworten (Ziel) für die Trainings-, Validierungs- und Testmengen angezeigt.

Für eine perfekte Anpassung sollten die Daten entlang einer Linie von 45 Grad liegen, auf der die Netzausgänge gleich den Antworten sind. Bei diesem Problem ist die Anpassung für alle Datensätze verhältnismäßig gut. Wenn Sie genauere Ergebnisse benötigen, können Sie das Netz durch erneutes Klicken auf Train neu trainieren. Jedes Training wird mit unterschiedlichen Anfangsgewichtungen und -verzerrungen des Netzes ausgeführt und so kann nach einem Neutraining ein verbessertes Netz entstehen.

Anhand des Fehlerhistogramms können Sie die Leistung des Netzes zusätzlich überprüfen. Klicken Sie im Abschnitt Plots (Diagramme) auf Error Histogram (Fehlerhistogramm).

Die blauen Balken stellen Trainingsdaten dar, die grünen Balken Validierungsdaten und die roten Balken Testdaten. Das Histogramm liefert Hinweise auf Ausreißer, d. h. auf Datenpunkte, bei denen die Anpassung deutlich schlechter ist als bei den meisten Daten. Es empfiehlt sich, die Ausreißer zu überprüfen, um festzustellen, ob die Daten schlecht sind oder ob sich diese Datenpunkte vom Rest des Datensatzes unterscheiden. Wenn es sich bei den Ausreißern um gültige Datenpunkte handelt, die sich jedoch vom Rest der Daten unterscheiden, extrapoliert das Netz für diese Punkte. Sie sollten mehr Daten erfassen, die den Ausreißerpunkten ähneln, und das Netz neu trainieren.

Wenn Sie mit der Leistung des Netzes nicht zufrieden sind, können Sie eine der folgenden Möglichkeiten nutzen:

  • Trainieren Sie das Netz neu.

  • Erhöhen Sie die Anzahl der verborgenen Neuronen.

  • Verwenden Sie einen größeren Trainingsdatensatz.

Wenn die Trainingsmenge zu einer guten Leistung führt, die Testmenge jedoch nicht, könnte dies auf eine Überanpassung des Modells hinweisen. Durch eine Verringerung der Anzahl der Neuronen kann die Überanpassung reduziert werden.

Sie können die Leistung des Netzes auch anhand einer zusätzlichen Testmenge beurteilen. Um zusätzliche Testdaten zur Beurteilung des Netzes zu laden, klicken Sie im Abschnitt Test auf Test. In der Modellzusammenfassung werden die zusätzlichen Testergebnisse angezeigt. Sie können auch Diagramme generieren, um die zusätzlichen Testdatenergebnisse zu analysieren.

Generieren von Code

Wählen Sie Generate Code > Generate Simple Training Script (Einfaches Trainingsskript generieren) aus, um MATLAB-Programmcode zu erstellen, mit dem die vorherigen Schritte über die Befehlszeile reproduziert werden können. Das Erstellen von MATLAB-Programmcode kann hilfreich sein, wenn Sie lernen möchten, wie die Befehlszeilenfunktionen der Toolbox zum Anpassen des Trainingsprozesses genutzt werden können. In Anpassen von Daten mithilfe von Befehlszeilenfunktionen werden Sie die generierten Skripte näher untersuchen.

Exportieren des Netzes

Sie können Ihr trainiertes Netz in den Arbeitsbereich oder nach Simulink® exportieren. Sie können das Netz auch mit den Tools von MATLAB Compiler™ und anderen Tools zum Generieren von MATLAB-Programmcode bereitstellen. Wählen Sie zum Exportieren Ihres trainierten Netzes und der Ergebnisse die Optionen Export Model > Export to Workspace (In den Arbeitsbereich exportieren) aus.

Siehe auch

| | | | |

Verwandte Themen