Zeitreihenanalyse

1. Einleitung

Dieses Projekt wurde im Rahmen der Lehrveranstaltung "Neuroinformationsverarbeitung" als Beleg angefertigt. Das Programm wurde mit Hilfe der Microsoft Foundation Classes (MFC) hergestellt. Sämtliche Funktionalität das Netz betreffend wurden von Anja Knorr erstellt. Für die graphische Oberfläche und deren Programmierung ist Jan Koppeel verantwortlich.

Mit dem Programm ist es möglich, ein neuronales Netz zum Erkennen und Vorhersagen von Zeitreihen zu verwenden.
 

2. Programmbenutzung

In diesem Abschnitt soll näher auf die Möglichkeiten des Programms eingegangen werden. Dabei werden Kenntnisse von Prinzip und Arbeitsweise eines neuronalen Netzes vorausgesetzt.

2.1. Start

Nach dem Programmstart erscheint folgender Dialog:

In der als 1. gekennzeichneten Möglichkeit kann ein bereits trainiertes Netz, das mit diesem Programm erstellt wurde, geladen werden. Die zu dem Netz gehörenden Informationen wie Lernrate, Anzahl der Iterationen, Momentum usw. werden mitgeladen. Nach dem Laden der Datei gelangt man unverzüglich in die Hauptanwendung.
Wenn noch kein fertiges Netz vorhanden ist oder man ein neues Netz erstellen möchte, ist der untere Teil des Dialoges interessant. Hier kann man den Aufbau des Netzes anhand der Eingabeneuronen, Anzahl der Hiddenschichten und Anzahl der Neuronen pro Hiddenschicht spezifizieren. Genauere Einstellung zum Netz können später im Optionendialog eingestellt werden. Das Netz wird nach betätigen des "und los..."-Buttons erstellt, alle Neuronen zwischen jeweils 2 Schichten untereinander verbunden und die Gewichtsmatrix mit Zufallswerten initialisiert.

2.2. Hauptanwendung

Nachdem man den Startdialog hinter sich gelassen hat, erscheint die Hauptanwendung:

Das Aussehen des Diagramms können Sie mit einem Rechtsklick in selbiges ändern. Dabei stehen Ihnen folgende Optionen zur Verfügung:

  • Gitter ein- und ausschalten
  • 2 Diagramme zeichnen oder alles in eins

  • Das gleiche Ergebnis können Sie mit dem Optionendialog erzielen.Dort finden sie auch genauere Hintergrundinformationen.

    2.2.1 Das Menü

    Das unter 1. gekennzeichnete Hauptmenü enthält folgende Funktionalität:
     
    Menüpunkt Unterpunkt Funktionalität
    Pattern Laden... Der für Windows typische "Datei öffnen"-Dialog erscheint. Hier ist es möglich eine Datei einzulesen, die die zu erkennende oder zu lernende Zeitreihe enthält.
    Programm beenden Beendet das Programm.
    Netz Lernen starten Mit diesem Menüpunkt wird der Lernvorgang des Netzes gestartet. Ein kleines Fenster informiert den Nutzer über den Lernvorgang. Der Vorgang des Lernes hält an, bis das Netz die Anzahl der Iterationen durchlaufen hat, der Validationsfehler steigt, die Fehlertoleranz erreicht ist oder der Nutzer sich entschließt, den Lernvorgang abzubrechen.
    Lernen stoppen Wenn der Nutzer es wünscht, kann der Lernvorgang abgebrochen werden. Sollte sich das Netz zur Zeit nicht im Lernzustand befinden, wird der Nutzer darauf hingewiesen.
    Netz anwenden Testet die Ausgabe des Netzes ohne dabei zu lernen. Bsp: Sie laden das Muster sinus.pat. Danach trainieren sie das Netz. Wenn sie jetzt das Muster sinus2.pat laden und auf "Netz anwenden" klicken, wird das Netz ohne Probleme die richtigen Werte ausgeben.
    Vorhersage starten Führt anhand der letzten Werte der vorgegebenden Zeitreihe eine Prognose durch. Dabei ist zu beachten, daß es auch bei einfachen Funktionen zu fehlerhaften Ergebnissen kommen kann. Bsp: Wenn sich die letzten Werte einer Sinus-Funktion in der Nähe von PI/2 befinden, erscheint die Voraussage als Gerade in der Höhe von PI/2.
    Neues Netz... Gibt dem Nutzer die Möglichkeit ein neues Netz zu erstellen oder ein fertiges Netz zu laden. Es erscheint der Start-Dialog.
    Netz speichern... Anhand des Standarddialoges zum Speichern von Dateien wird das Netz mit seiner Gewichtsmatrix und allen eingestellten Werten gespeichert.
    Netz initialisieren Belegt die Gewichtsmatrix mit neuen Zufallswerten.
    Optionen... Öffnet den Optionsdialog.
    Ansicht Topologie... Visualisiert das Netz mit seinen Verbindungen und Gewichten. Genauere Informationen finden Sie hier.
    Lernerfolg... Gibt den Fehler und den Validationsfehler des Netzes aus. Eine genauere Einsicht erhalten Sie hier.
    ? Info über Zeitreihenanalyse Gibt Informationen über die Autoren des Programms aus.

    Die im Bild dargestellten und gekennzeichneten Button bieten einen schnellen Zugriff auf wichtige Menüpunkte. Hier soll nur noch einmal eine kurze Beschreibung erfolgen. Genauere Informationen bietet oben stehende Tabelle.

    In der oberen Hälfte des Diagramms sehen Sie die Vorgaben, die aus der Datei geladen wurden (3.) Sämtliche Lernvorgänge des Netzes, dessen Vorhersagen und Anwendungen werden im unteren Teil des Diagramms dargestellt. (4.)

    Der mit 2. gekennzeichnete Button realisiert dieselbe Funktion wie der Menüaufruf von: ->Pattern->Laden.  Die Diskette (5.) symbolisiert das Speichern des Netzes, das man unter dem Menüpunkt ->Netz->Netz speichern... findet. Die Symbole 6 und 7 stellen das Stoppen sowie das Starten des Lernvorgangs dar. Die Kristallkugel (8.) repräsentiert die Vorhersagemöglichkeit des Netzes. Mit dem Dreieck (9.) wird das Netz einfach angewandt. Das mit 10. markierte Fragezeichen gibt einen Dialog mit Informationen über das Programmen aus.

    Hier ein Screenshot während des Lernens:


     

    2.2.2. Der Optionendialog

    Die unter Grafik zusammengefaßten Optionen beziehen sich auf die Darstellung des Diagramms in der Hauptanwendung. Mit der Option "Grid" kann das Gitter aktiviert bzw. deaktiviert werden. Mit dem zweiten Menüpunkt "Zwei Diagramme" wählt der Nutzer aus, ob er die Vorgaben und die Ausgaben des Netzes in zwei getrennten Diagrammen oder in einem Diagramm zusammengefaßt sehen möchte. Der Hinweis über die Ausgabe erscheint grau im Diagramm links oben.

    Rechts neben den Grafikoptionen befinden sich Einstellungen zur Größendarstellung des Diagrammes. Sollte die Größe des Diagrammes die Bildschirmauflösung überschreiten, kann mit Hilfe von Scrollbalken an die gewünschte Stelle gescrollt werden.

    Den Hauptteil des Dialoges bestimmen die Werte zum Einstellen der Lernrate (Eta), Momentum, Iterationen (Anzahl, wie oft die Zeitreihe an das Netz angelegt wird), Steps (Anzahl, aller wieviel Schritte ein Backpropagationschritt gemacht wird), Fehlertoleranz (Abbruchbedingung, wenn der Fehler zwischen vorhergesagtem und originalem Wert kleiner ist) und dem Abbruch, bei dem das Lernen nach der gewünschten Anzahl von Schritten in denen der Validationsfehler wieder steigt, gestoppt wird.

    In unteren Teil kann man noch Angaben zum Umfang der Vorhersage des Netzes machen.
     

    2.2.3. Dialog zur Ansicht der Netztopologie

    In dieser Grafik wird das aktuelle Netz mit seinen Verbindungen und Gewichten angezeigt. Dabei wird die Eingabeschicht rot, die Hiddenschicht weiß, die Ausgabeschicht blau und die Bias-Neuronen grün dargestellt.
     

    2.2.4. Übersicht über den Lernerfolg

    In diesem Dialog erscheinen (blau dargestellt) der Fehler zwischen dem originalen und dem vorhergesagten Wert und (rot dargestellt) der Fehler zwischen originalem und validiertem Wert.

    3. Bemerkungen

    3.1. Patternaufbau

    Um eigene Patterndateien zu erstellen, muß folgender Aufbau beachtet werden:
     
    Zeile Inhalt / Bemerkung
    1 Anzahl der Werte, die in der Datei enthalten sind (long)
    ab 2 zeilenweise die Musterwerte als double-Zahlen nach Möglichkeit auf einen Bereich von -0.9 bis 0.9 normiert

    4. Entwicklerdokumentation

    5. Download

    Autoren: Anja Korr und Jan Koppeel
    (C) 2001