Benutzerhandbuch
             Res Neuronum
            
            Res Neuronum (tm)
            
             (c) Institut für Biomedizinische Technik
            und Medizinische Informatik,
             Fakultät für Informatik und Automatisierung,
             TU Ilmenau,
             Max-Planck-Ring,
             98693 Ilmenau,
             Deutschland,
             1997
              
            
             Copyright (c) 1997 TU Ilmenau, Deutschland/
            1. Auflage 1997. Alle Rechte vorbehalten.
            
             Einschränkung der Gewährleistung:
            Es wird keine Garantie für die Richtigkeit des Inhaltes dieses Handbuches
            übernommen. Da sich Fehler, trotz aller Bemühungen, nie vollständig
            vermeiden lassen, sind wir für Hinweise jederzeit dankbar.
             s.e.e.o. (salvo errore et omissione) - Irrtum
            und Auslassung vorbehalten
            
             Die in diesem Handbuch erwähnten Software-
            und Hardwarebezeichnungen sind in den meisten Fällen eingetragene
            Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen.
            
             Gesetzt mit Microsoft Word 7.0 for Windows 95.
             Satz, Gestaltung, Druck: Christian Heller,
            Stützerbach
             Herausgeber: TU Ilmenau, Max-Planck-Ring, 98693
            Ilmenau
             Printed in Germany.
              
            
             Inhaltsverzeichnis
            
             1 Einleitung
             1.1 Was ist "Res Neuronum"?
             1.2 Intention und Struktur des Handbuches
             1.3 Servicehinweise und Support
            
             2 Installation
             2.1 Technische Voraussetzungen
             2.2 Lieferumfang
             2.3 Installationsmodi
             2.4 Ablauf
             2.5 Bemerkungen/Deinstallation
            
             3 Hauptprogramm Res Neuronum
             3.1 Einführung
             3.2 Hauptmenü
             3.3 Formular Einstellungen
             3.4 Formular Info und Hilfe-Dateien
            
             4 Modul Fehlerrückführung
             4.1 Einführung
             4.2 Konfiguration
             4.3 MusterSet
             4.4 Lernen
             4.5 Auswerten
             4.6 Reproduzieren
             4.7 Optimieren
            
             5 Modul Spracherkennung
             5.1 Einführung
             5.2 AudioDatei
             5.3 MusterSet
             5.4 Ergebnis
            
             6 Literatur
            
             Index
            
             Anhänge
             A Konventionen zum Programmieren weiterer Module
             A.1 Allgemein
             A.2 Komponenten
             A.3 Simulationsprogramm
             B Bestellung/Meinung
              
            
             Kapitel 1
             _________________________
            
             1 Einleitung
             1.1 Was ist "Res Neuronum"?
             "Res Neuronum" ist ein Simulations- und Lehrprogramm
            für Neuronale Netzwerke. Sowohl Anwender mit Grundlagenwissen, als
            auch Neueinsteiger sollten mit dem Programm arbeiten und es als Einstieg
            in die Welt der Neuronalen Netze nutzen können. Hierfür sei u.a.
            auf die verschiedenen Anwendungsbeispiele verwiesen.
             Das Programm verwaltet unterschiedliche Netzwerktypen,
            die als Module in das Hauptprogramm eingebunden sind. Demzufolge ist es
            jederzeit problemlos erweiterbar. Außerdem besteht - um sinnvolle
            Aufgaben mittels der eingebundenen Netze lösen zu können - die
            Möglichkeit, verschiedene Anwendungen ebenfalls modular in das Programm
            einzubinden.
             "Res Neuronum" wurde programmiert unter Borland(r)
            Delphi 2.0(r) und ist gedacht für die Anwendung innerhalb der 32-Bit-Betriebssystem-Umgebung
            Windows 95(r) von Microsoft(r). Während der Programmierung wurde strikt
            auf die Trennung der einzelnen Objekte geachtet, u.a. um die einzelnen
            Module unabhängig voneinander einsetzen zu können. Außerdem
            wurde zur Programmierung eine Reihe von Regeln aufgestellt, welche die
            einheitliche Lesbarkeit von verschiedenen Entwicklern programmierter Module
            gewährleisten sollen. Sie sind zusammengefasst in einem eigenen Kapitel
            und im Anhang des Handbuches zu finden.
             Die Module wurden als Dynamische Bibliotheken
            (Dynamic Link Library = DLL) realisiert. Diese werden bei Bedarf zur Laufzeit
            (dynamisch, also explizit) zum Programm hinzugebunden, wodurch zum einen
            eine immense Platzersparnis im Arbeitsspeicher möglich ist (im Gegensatz
            zu den implizit oder statisch gebundenen DLLs). Zum anderen können
            die vorhandenen DLLs in andere Programmierumgebungen wie C/C++ eingebunden
            werden; auch der umgekehrte Weg ist natürlich möglich.
            
             1.2 Intention und Struktur des Handbuches
             Dieses Handbuch richtet sich an alle, die mit
            dem Programm "Res Neuronum" arbeiten wollen. Es erläutert Funktionalität
            und Bedienung der Software und stellt einige der notwendigen Grundlagen
            zu Neuronalen Netzen bereit. Empfohlen wird aber dennoch ein zusätzliches
            Studium einschlägiger Literatur, um Hintergründe tiefer zu beleuchten.
            Verwiesen sei an dieser Stelle auf die Literaturliste im Anhang.
             Da das Programm zur Verwendung im Versuch "Neuronale
            Netzwerke" innerhalb des Laborpraktikums "Medizinische Informatik" der
            TU Ilmenau geschrieben wurde, um Studenten mit dem Thema vertraut zu machen,
            ist besonderer Wert auch auf die Erstellung des Online-Hilfesystems gelegt
            worden. Weiteres Grundlagenwissen ist hier zusammengefasst; dieses wird
            im Handbuch nicht nochmals beschrieben.
             Die Gliederung des Handbuches hält sich
            im Wesentlichen an den Aufbau des Programmes, d.h. nach der Beschreibung
            des Hauptfensters in Kapitel 3 folgen in in sich geschlossenen Abschnitten
            die Erläuterungen der einzelnen Module. Dem Fehlerrückführungsnetz
            ist das 4. Kapitel gewidmet. Im 5. Abschnitt wird die Anwendung Spracherkennung
            beschrieben, welche die Arbeitsweise von Fehlerrückführungsnetzen
            praktisch veranschaulicht.
             Zu erwähnen ist noch, dass bei der Bezeichnung
            von Delphi-Komponenten auf möglicherweise irreführende Übersetzungen
            verzichtet wurde. Beispielsweise wird anstelle der im Deutschen häufig
            anzutreffenden Übersetzung "Schalter" die Originalbezeichnung "Button"
            bzw. "BitBtn" verwandt. Gleiches gilt für "SpeedButton", "ComboBox"
            etc. Weitere typografische Konventionen sind nicht zu beachten.
            
             1.3 Servicehinweise und Support
             Als erster Ansprechpartner ist hier die TU
            Ilmenau zu nennen, an welcher das Programm "Res Neuronum" im Rahmen einer
            Diplomarbeit entstand. Zum Zeitpunkt der Ausgabe der Version 1.2 zuständig
            ist:
            
             Dipl.-Ing. Dunja Steuer
             Institut für Biomedizinische Technik und
            Medizinische Informatik
             Fakultät für Informatik und Automatisierung
             TU Ilmenau
             Max-Planck-Ring
             D-98693 Ilmenau
             Thüringen
             Deutschland
             Tel.: +49/(0)3677/69-1322
             e-mail: Dunja.Steuer@Informatik.tu-ilmenau.de
             www: http://pc7.informatik.tu-ilmenau.de
            
             Interessenten können sich bei Fragen und
            Problemen zum Hauptprogramm und den Modulen "Fehlerrückführung"
            und "Spracherkennung" ebenfalls wenden an:
             Christian Heller
             Grenzgraben 04
             D-98714 Stützerbach
             Thüringen
             Deutschland
             Tel.: +49/(0)36784/50471
             Fax: +49/(0)36784/50992
             e-mail: Christian.Heller@rz.tu-ilmenau.de
             www: http://www.rz.tu-ilmenau.de/~ai008/christian/gemain.htm
             www: http://www.rz.tu-ilmenau.de/(ai008/resneuronum/enmain.htm
            
             Delphi-Programmierer, die nicht die ganze DLL
            "BackPropagation" zum Fehlerrückführungsnetz, sondern lediglich
            die entsprechende Komponente "BackPropNet" in ihre Komponentenbibliothek
            aufnehmen möchten, sind richtig bei folgender Adresse:
             Andreas Heyn
             Am Katzenberg 37
             D-99097 Erfurt
             Thüringen
             Deutschland
             Tel.: +49/(0)361/4210210
              
            
             Kapitel 2
             _________________________
            
             2 Installation
             2.1 Technische Voraussetzungen
             Um mit dem Programm arbeiten zu können,
            sind folgende Mindestanforderungen und Empfehlungen zu beachten:
             * Hardware:
             * Personalcomputer (IBM-kompatibel)
             * Prozessor mit 90 MHz (x86-kompatibel)
             * Arbeitsspeicher: 16 MB
             * Festplattenspeicher: 10 MB verfügbar
             * Bildschirmauflösung: 1024x768 Pixel,
            große Schriftart
             * Software:
             * Betriebssystemumgebung: 32-Bit (Win 95 oder
            WinNT)
             * Dateiformat: FAT
            
             2.2 Lieferumfang
             Zum Paket "Res Neuronum" mitgeliefert werden:
             * 3 Disketten
             * 1 Handbuch (deutsch)
            
             2.3 Installationsmodi
             Bei der Standardinstallation (typisch) wird
            "Res Neuronum" mit allen Paketen vollständig installiert. Die Minimalkonfiguration
            (kompakt) enthält alle zur Ausführung des Programmes notwendigen
            Dateien, verzichtet jedoch z. B. auf Handbücher und Hilfedateien.
            Schließlich ist es mit der Benutzerdefinierten Installation möglich,
            eigenständig die zu installierenden Pakete zu bestimmen.
            
             2.4 Ablauf
             1. Die Installationsdiskette 1 in Laufwerk
            A: einlegen.
             2. Das Programm "Setup.exe" ausführen.
             3. Das Setup-Programm ("InstallShield") führt
            Sie durch die einzelnen Schritte der Installation. Für jede Etappe
            erscheinen verschiedene Bildschirmanzeigen in der folgenden Reihenfolge:
             * Willkommen-Meldung
             * Software-Lizenzvereinbarung
             * LiesMich-Informationen
             * Benutzer-Informationen
             * Zielverzeichnis wählen
             * Setup-Typ
             * Selbstdefiniertes Setup (bei vorheriger Wahl
            des Typs "Benutzerdefiniertes Setup")
             * Programmordner wählen
             * Kopieren der Dateien beginnen
             * Fortschrittsanzeiger
             * Installation abgeschlossen
             4. Bei entsprechender Aufforderung sind die
            nachfolgenden Disketten in das Laufwerk A: einzulegen.
             5. Nach abgeschlossener Installation kann das
            Programm "Res Neuronum" im Menü "Start"/ "Programme" bzw. in der entsprechenden
            Programmgruppe aufgerufen werden.
            
             2.5 Bemerkungen/Deinstallation
             Bei der Installation werden keinerlei Dateien
            in das Windows-, Windows-System- oder andere Verzeichnisse als jenes für
            "Res Neuronum" selber geschrieben. Auch in der Windows-System-Registrierungs-Datenbank
            werden - abgesehen von den notwendigen, automatisch durchgeführten
            - keine besonderen Änderungen vorgenommen.
             Zur Deinstallation geht man in die Menüs
            "Start"/ "Einstellungen"/ "Systemsteuerung"/ "Software", wählt im
            erscheinenden Dialog "Installieren/Deinstallieren" das Programm "Res Neuronum"
            und betätigt den Schalter "Entfernen", woraufhin das Programm vom
            System entfernt wird.
              
            
             Kapitel 3
             _________________________
            
             3 Hauptprogramm Res Neuronum
             3.1 Einführung
             Vom Hauptverwaltungsfenster des Programmes
            aus werden die gewünschten Module (Unterprogramme) aufgerufen. Dazu
            zählen in erster Linie die verschiedenen Arten Neuronaler Netze und
            deren Applikationen. Das Fenster hat folgende Gestalt:
            
             3.2 Hauptmenü
             Das Hauptmenü hat die Form typischer Windows-Anwendungen.
            Es untergliedert sich in die im Folgenden aufgeführten Untermenüs,
            welche wiederum mehrere Unterpunkte zum Aufruf unterschiedlicher Aktionen
            beinhalten.
            
             Datei
             Beenden
             Netze
             Fehlerrückführung
             Kohonen
             Hopfield
             Anwendungen
             Spracherkennung
             Optionen
             Einstellungen
             Hilfe
             ResNeuronum
             Fehlerrückführung
             Spracherkennung
             Neuronale Netzwerke
             Signalverarbeitung
             Praktikumsanleitung
             Info
            
             Ein Teil der im Hauptmenü wählbaren
            Unterpunkte kann auch auf eine andere Art und Weise aufgerufen werden:
            durch Betätigen (Anklicken) der SpeedButtons, welche im Hauptverwaltungsfenster
            linkerhand zu sehen sind. Diese gelten als hilfreich und nutzerfreundlich,
            da sie im Besonderen ein schnelleres Arbeiten ermöglichen. Welche
            Aktion von einem gewählten Speed-Button ausgeführt wird, kann
            man - neben seinem Icon - aus den Hinweisen ersehen, die beim längeren
            Verweilen des Cursors auf einem bestimmten Button erscheinen.
             Um den Nutzer während der Programmausführung
            "auf dem Laufenden" zu halten, sind - wie heute i. Allg. üblich -
            Statusleisten in das Hauptverwaltungsfenster integriert. Es handelt sich
            hierbei zum einen um die Anzeige ausführlicher Hinweise und zum anderen
            um eine Anzeige der vom Programm gerade durchgeführten Aktion.
            
             3.3 Formular Einstellungen
             Die in diesem Dialog einstellbaren Umgebungsvariablen
            teilen dem Programm mit, ob Titelbild/-musik bzw. akustische Ansagen bei
            Programmstart und -ende aktiviert sind. Die Speicherung der Werte erfolgt
            in einer Ini-Datei, die auch mit herkömmlichen Editoren bearbeitet
            werden kann.
            
             3.4 Formular Info und Hilfe-Dateien
             Hierbei handelt es sich um die gewöhnliche
            Information zum Copyright und den Autoren des Programmes.
             Im gleichen Unterpunkt des Hauptmenüs
            sind alle Hilfe-Dateien zu finden. Sie werden durch das Programm WinHelp,
            welches zum Betriebssystem gehört, gesteuert.
              
            
             Kapitel 4
             _________________________
            
             4 Modul Fehlerrückführung
             4.1 Einführung
             In rund 80 % aller Applikationen, die Neuronale
            Netzwerke verwenden, kommen heute Fehlerrückführungsnetze zum
            Einsatz. Diese große Zahl und ihre Universalität bedeuten nicht
            notwendigerweise, dass ihr Aufbau sonderlich kompliziert sein müsste.
            Im Folgenden ein Kurzüberblick:
             Wie alle Neuronalen Netze bestehen auch Fehlerrückführungsnetze
            aus einer Vielzahl von Künstlichen Neuronen. Innerhalb dieser spielen
            im Wesentlichen drei Parameter und deren Funktionen eine größere
            Rolle: der Effektive Eingang, der sich durch die Eingangsfunktion aus Eingangswerten
            und Gewichten ergibt, die Aktivität, welche m. H. der Aktivierungsfunktion
            aus dem Effektiven Eingang berechnet wird und schließlich der mit
            der Ausgangsfunktion berechnete Ausgangswert. Man kann sich das gut als
            (der natürlichen Nervenzelle nachempfundenen) Signalfluss vom Eingang
            zum Ausgang vorstellen.
             Ein Netzwerk kann aus solchen Neuronen auf
            vielerlei Art und Weise konstruiert werden. Im vorliegenden Programm wurde
            das Schichtenmodell verwandt. Hierbei fasst man jeweils mehrere Neuronen
            zu einer Schicht zusammen, für die dann einheitlich Parameter wie
            Eingangs- und Aktivierungsfunktion eingestellt werden. Die Schicht, an
            deren Neuronen die Netzeingangswerte anliegen, nennt man "Eingangsschicht";
            hingegen erhält man die Netzausgangswerte von den Ausgängen der
            Neuronen der "Ausgangsschicht".
             Wichtig ist die Unterscheidung zwischen zwei
            gängigen Konventionen: Die erste bezeichnet die Netzeingänge
            selbst als Neuronen, obwohl diese die Eingangswerte lediglich auf die folgenden
            Neuronen verteilen ("Verteilungsneuronen"). Durch sie findet also keinerlei
            Beeinflussung der Eingangswerte statt. Diese Eingangsneuronen bilden die
            sogenannte "Verteilungsschicht".
             In der zweiten Konvention werden nur die folgenden
            Schichten mit wirklichen Neuronen gezählt, weswegen die Schichtanzahl
            dieser Netze um eins kleiner zur oben genannten Konvention ist. Spricht
            man über Neuronale Netze mit Schichtenkonzept, muss also, um Missverständnissen
            aus dem Weg zu gehen, vorher die Konvention geklärt werden. "Res Neuronum"
            verwendet das Modell mit Verteilungsschicht; die Anzahl der Netzeingänge
            wird also als Neuronenzahl der Eingangsschicht eingestellt.
             Das Ziel der Anwendung von Fehlerrückführungsnetzen
            ist, verschiedene Muster zu assoziieren, Werte zu klassifizieren oder Funktionen
            zu approximieren. Mit dem Modul "Fehlerrückführung" können
            verschiedene Eingangs- auf Ausgangsmuster zugeordnet werden. Bevor jedoch
            beliebige Eingangsvektoren ein gewünschtes Ergebnis am Ausgang liefern
            können ("Reproduktion"), muss das Netz angelernt werden ("Lernen").
            Diese beiden sind die möglichen Arbeitsphasen eines Netzes.
             In einem Netz sind nicht alle Neuronen gleich
            wichtig für einen Lernerfolg. Man kann durch die Auswertung verschiedener
            Parameter wie Aktivität, Größe der Gewichte etc. die Relevanz
            eines Neurons innerhalb des Netzes feststellen. Solcherlei Methoden machen
            sich die "Optimierungsverfahren" zu Nutze, welche (je nach Verfahren) unwichtige
            Gewichte oder Neuronen aus dem Netz herausschneiden und so durch Verringerung
            des Volumens die Anlerngeschwindigkeit z. T. erheblich erhöhen können.
            Das dem Modul zu Grunde liegende Verfahren basiert auf einem an der TU
            Ilmenau entwickelten Algorithmus und ist der Klasse der "Pruning-Verfahren"
            zuzuordnen, wobei im besprochenen Fall Neuronen aus dem Netz gelöscht
            werden.
             Entsprechend der eben beschriebenen Funktionsweise
            von Fehlerrückführungsnetzen ist das Modul unterteilt in sechs
            Seiten (siehe Abbildung), deren Handhabung in den folgenden Kapiteln beschrieben
            wird.
            
             4.2 Konfiguration
             Im Mittelpunkt dieser Seite steht die GroupBox
            "SchichtenDefinition", welche alle Komponenten zur Einstellung einer Netzkonfiguration
            enthält.
             Zu Beginn findet man eine funktionierende Minimalkonfiguration
            vor, die durch Betätigen des BitBtns "NeuInit" später jederzeit
            wieder hergestellt werden kann. Sie enthält Eingangs- und Ausgangsschicht,
            wobei die Eingangsschicht - wie im obigen Kapitel beschrieben - lediglich
            eine Verteilungsschicht darstellt, also mit anderen Worten nur der Einstellung
            der Anzahl der Netzeingänge dient. Da die in der Eingangsschicht enthaltenen
            Verteilungsneuronen nicht als eigentliche Neuronen fungieren, werden bei
            Anwahl dieser Schicht alle sonst einstellbaren Eingabefelder gesperrt.
            Eine vorher abgespeicherte Netzkonfiguration kann mittels des BitBtns "Öffnen"
            geladen werden; ihr Name erscheint dann in der rechts unten gelegenen GroupBox
            "KonfigurationsDatei".
             Für die Bearbeitung sollte man als erstes
            die gewünschte Schichtanzahl im entsprechenden SpinButton wählen.
            Daraufhin können für jede Schicht, nach deren Anwahl in der ListBox
            linkerhand (auch multiselekt möglich), ihre spezifischen Parameter
            eingestellt werden. Dazu zählt zunächst die Anzahl der Neuronen
            in der Schicht, die ebenfalls in einem SpinButton wählbar ist. Weiterhin
            sind in ComboBoxen einstellbar die drei charakteristischen Funktionen für
            Effektiven Eingang, Aktivierung und Ausgang. Die dazugehörigen Parameter
            können in Edit-Feldern gesetzt werden. Möchte man eine neu erstellte
            Konfiguration sichern, geschieht das durch Betätigen des BitBtns "Speichern".
            
             4.3 MusterSet
             Auf dieser Seite befinden sich zwei wichtige
            GroupBoxes, "MusterSet", welche zur Einstellung von Parametern des ganzen
            Sets dient und "Muster", in welcher Werte des aktuellen Musters angezeigt
            und editiert werden.
             Das zu Anfang vorgegebene MusterSet kann mit
            Hilfe des BitBtns "NeuInit" an die aktuelle Netzkonfiguration angepasst
            werden. Möglich ist natürlich auch das Laden einer vorhandenen
            Muster-Set-Datei über den BitBtn "Öffnen". Zu den bereits enthaltenen
            Mustern im Set können weitere durch Drücken des BitBtns "Muster
            neu" hinzugefügt oder durch "Löschen" entfernt werden. Möchte
            man ein spezielles Muster löschen, so sollte dieses vorher in der
            ComboBox "Aktuelles Muster" angewählt werden. Zu jeder Zeit ist die
            Gesamtzahl der im Set enthaltenen Muster im Panel "MusterAnzahl" ersichtlich.
            Ein erstelltes Muster-Set kann durch Anwählen des BitBtns "Speichern"
            als Datei gesichert werden.
             Da ein Set quasi eine Matrix aus mehreren Vektoren
            (Mustern) darstellt, muss auf die Gleichheit der Dimensionen der Vektoren
            geachtet werden. Nach Betätigen des BitBtns "NeuInit" wurde ein evtl.
            vorhandenes Muster-Set gelöscht und ein neues erstellt, dessen Vektoren
            automatisch eine zur Netzkonfiguration passende Dimension zugewiesen wurde.
            Wird nun die Konfiguration des Netzes nachträglich geändert,
            müssen nicht alle eingegebenen Werte durch Erstellen eines neuen Muster-Sets
            gelöscht werden; die Dimension der Vektoren kann mit Hilfe der SpeedButtons
            (oder Edits) für Eingangs- und Zielvektor einheitlich geändert
            werden. Dabei werden neue Zahlwerte stets am Ende der Vektoren hinzugefügt
            bzw. immer das letzte Element aus den Vektoren gelöscht.
             Zur Eingabe der Werte wählt man ein Muster
            in der ComboBox "Aktuelles Muster" und doppelklickt (auch Enter-Taste möglich)
            entweder in der ListBox für den Eingangsvektor oder jener für
            den Zielvektor, woraufhin der angewählte Wert in dem unter der ListBox
            befindlichen Edit-Feld erscheint. Dort kann der Wert neu gesetzt und durch
            Betätigen der Enter-Taste, Doppelklick oder durch Verlassen des Feldes
            (mit Tab oder Maus-Klick) in den Vektor übernommen werden.
            
             4.4 Lernen
             Die GroupBoxes dieser Seite wurden nach funktionalen
            Gesichtspunkten der in ihnen einstellbaren Parameter geordnet. Neben ihnen
            befinden sich hier auch drei PaintBoxes, deren Graphen, bei erfolgter Anwahl,
            erst während des Anlernens sichtbar werden.
             Vor einem Anlernvorgang müssen zunächst
            alle notwendigen Parameter an das Netz übergeben werden. Diese initialisiert
            man mit dem BitBtn "NeuInit", um eine funktionstüchtige Voreinstellung
            zu erhalten. Sollen nun bestimmte Parameter bearbeitet werden, ändert
            man einfach deren Werte in den entsprechenden Edit-Feldern. Um die Bedienfreundlichkeit
            zu erhöhen, werden bei Abwahl eines Parameters die mit ihm in Relation
            stehenden Felder automatisch gesperrt, so dass falsche Eingaben nahezu
            unmöglich sind.
             Ebenfalls möglich ist es wiederum, eine
            bereits existierende Datei mit Lerndaten mittels "Öffnen" zu laden.
            Die Sicherung der eingestellten Parameter und gelernten Gewichte etc. in
            einer Datei erfolgt automatisch während des Lernens, allerdings nur,
            wenn die CheckBox "Speichern" (in der GroupBox "Zu lernende Parameter")
            aktiviert wurde.
             In der GroupBox "Ergebnisse" befindet sich
            die CheckBox "Aufzeichnen" zur Aktivierung der Ablage der Lernergebnisse
            in dynamischen Speicherstrukturen. Wie oft, d. h. aller wieviel Lernschritte
            (Intervalle) eine solche Speicherung des gesamten Netzzustandes erfolgt,
            wird in der danebenliegenden ComboBox angegeben.
             Zur Visualisierung des Anlernvorgangs kann
            zwischen drei Darstellungen gewählt werden: Diagramm des Globalen
            Fehlers, Säulen-Diagramm und Hinton-Diagramm zweier Gewichte.
             Die Anwahl erfolgt im unteren Teil der Formular-Seite
            durch Betätigen der entsprechenden SpeedButtons. Die im Falle der
            Wahl des Säulen- oder Hinton-Diagramms notwendige Bestimmung zweier
            Gewichte erfolgt in den dann sichtbarwerdenden SpinButtons auf der rechten
            Hälfte des Formulars. Schicht und Neuron können beliebig gewählt
            werden; die beiden Gewichte auch - mit der Einschränkung, dass sie
            immer zum gleichen Neuron gehören. Bei Änderung der Netzkonfiguration
            können die Min/Max-Werte der SpinEdits durch den BitBtn "LeseKonfig"
            neu bestimmt werden; dasselbe geschieht nach Drücken des BitBtns "NeuInit",
            nur das hier auch alle anderen Parameter rückgesetzt werden.
             Das Anlernen schließlich kann durch den
            BitBtn "Start" begonnen und auf Wunsch durch den BitBtn "Abbruch" vor regulärem
            Ende abgebrochen werden. Ein abgebrochener Anlernvorgang kann durch erneutes
            Betätigen des BitBtns "Start" einfach fortgesetzt werden. Möchte
            man jedoch ganz neu beginnen, sollten alle Lerndaten (Gewichte, Schwellen,
            Anstiege) durch den BitBtn "ResetLernParameter" rückgesetzt werden;
            möglich ist das wiederum auch mit "NeuInit", nur das hier sämtliche
            Einstellungen auf Anfangswerte gesetzt werden.
            
             4.5 Auswerten
             Diese Seite zur Darstellung der Ergebnisse
            präsentiert sich mit fünf GroupBoxes und drei neu gearteten BitBtns
            bzw. SpeedButtons. Außerdem gehören zu ihr ein Formular zur
            graphischen Darstellung der Kurven und weitere Formulare zur Einstellung
            der Parameter für die Datenbearbeitung.
             Nach einem erfolgreichen Anlernvorgang stehen
            alle Felder mit Voreinstellungswerten zur Verfügung, die jederzeit
            mittels "NeuInit" wieder hergestellt werden können. Zunächst
            möchte man wahrscheinlich das Diagramm-Formular öffnen, um die
            abgefragten Werte anschaulicher betrachten zu können. Das geschieht
            durch den SpeedButton "Diagramm"; das entsprechende Formular kann jederzeit
            und ohne Beeinflussung der dargestellten Werte geschlossen oder geöffnet
            oder in seiner Größe verändert werden.
             Ausdrucke der dargestellten Kurven sind möglich
            mit den BitBtns "Drucken(1)" (Diagramm der aktuell gewählten Kurve)
            und "Drucken(4)" (gesamtes Kurven-Formular). Während die Darstellung
        im ersten Fall automatisch an die Größe des Druckpapiers angepasst
        wird, muss das Diagramm-Formular beim Drucken aller Kurven vorher vom Benutzer
        an die gewünschte Größe angepasst werden. Grundsätzlich
        ist anzumerken, dass alle Parameter im Diagramm über die Anzahl der
        Lernschritte auf der Abszisse dargestellt werden.
         Vor alledem müssen jedoch erst einmal
        die gewünschten Kurven spezifiziert werden. Für jedes der vier
        Diagramme kann dabei eine andere Kurve mit unterschiedlichen Einstellungen
        gewählt werden, welche dann gespeichert sind. Das heißt, dass
        bei einem Wechsel der aktuellen Kurve (erfolgt mit den entsprechenden SpeedButtons,
        die von eins bis vier numeriert sind, in der GroupBox "KurvenAuswahl")
        die eingestellten Parameter der anderen Kurven nicht verlorengehen.
         Während des Anlernvorganges wurden sämtliche
        Parameter des Netzes für jeden eingestellten Lernschritt, jede Schicht,
        jedes Neuron und Gewicht aufgezeichnet, so dass sie jetzt abgerufen werden
        können. Das erfolgt durch Anwahl des gewünschten Parameters in
        der RadioGroup "DatenAuswahl". Dann können die gewählte Schicht,
        Neuron und Gewicht bestimmt werden. Nicht immer jedoch sind diese wählbar.
        Da z. B. der Globale Fehler ein Parameter mit Aussagekraft für das
        ganze Netz ist, wäre die Angabe von Schicht oder Neuron und dgl. sinnlos.
        Daher werden diese Felder bei Anwahl eines solchen Parameters in der RadioGroup
        automatisch deaktiviert.
         Zur besseren Erkennung von Zusammenhängen
        zwischen einzelnen Parametern und der Einschätzung ihrer Relevanz
        für das Netz wurden verschiedene Datenverarbeitungsmethoden in die
        Seite aufgenommen. Man wählt sie durch Betätigen des entsprechenden
        SpeedButtons in der GroupBox "DatenBearbeitung". Meist öffnet sich
        daraufhin ein Dialog-Formular, in welchem notwendige Werte zu bestimmen
        sind. Schließt man dieses durch Klicken auf den BitBtn "Ok", erfolgt
        die Neuberechnung und Darstellung der Kurve auf der Basis der eingestellten
        Werte; andernfalls wird die bisherige, originale Kurve beibehalten.
         Da die graphische Darstellung zwar einen guten
        Gesamtüberblick gibt, jedoch einzelne Werte nicht genau bestimmt werden
        können, wurde das zusätzliche Feature der "EinzelWertAnzeige"
        eingebunden. Hier kann der genaue Wert der dargestellten Kurve zu einem
        bestimmten Lernschritt abgelesen werden. Die Einstellung des gewünschten
        Lernschrittes erfolgt im zugehörigen SpeedButton "LernSchrittNr" per
        Auf/Ab-Pfeil oder durch Eingabe per Hand.
        
         4.6 Reproduzieren
         Inhalt und Funktion der Elemente auf der Seite
        "Reproduzieren" gleichen denen der Seite "MusterSet". Allerdings sind die
        Einstellmöglichkeiten für die Ausgangsvektoren nicht gegeben;
        sie möchte man ja erst aus den Eingangsvektoren berechnen lassen.
         Nach Eingabe aller gewünschten Werte der
        Eingangsvektoren kann der Reproduktionsvorgang mit "Start" begonnen werden.
        Ein Abbruch mittels des BitBtns "Abbruch" ist jederzeit möglich. Anschließend
        können die berechneten Ausgangsvektoren in der ComboBox "Aktueller
        AusgangsVektor" gewählt und somit angezeigt werden. Laden und Speichern
        von Reorganisationsdateien sind möglich.
        
         4.7 Optimieren
         Die letzte Seite der sechs TabSheets des Moduls
        "Fehlerrückführung" umfasst fünf BitBtns zur Steuerung des
        Optimierungsvorgangs und Auswahl einer erhaltenen Konfiguration, ein SpinEdit
        zur Bestimmung der Relevanzgrenze als wichtigstem Parameter und ein StringGrid,
        welches der Anzeige erhaltener Strukturen dient.
         Vor Beginn des Optimierens kann - wenn gewünscht
        - die Relevanzgrenze für zu löschende Neuronen eingestellt werden.
        Vorgabewert ist 50 %. Diese Angabe bezieht sich auf interne Vergleichsparameter
        des Algorithmus'. Dabei wird, vereinfacht gesagt, die Wichtigkeit (Relevanz)
        eines Neurons im Vergleich zu den anderen bestimmt und das Neuron bei Unterschreiten
        der angegebenen Grenze gelöscht.
         Das Optimieren startet man mittels des BitBtns
        "Start"; ein Abbruch ist jederzeit möglich. Nach der Meldung zum Ende
        des Optimierens werden die einzelnen, berechneten Konfigurationen im StringGrid
        auf der oberen Hälfte der Seite angezeigt.
         Aus ihnen kann nun nach Belieben die Ausgangskonfiguration
        (Originalkonfiguration), die Netzkonfiguration mit der kleinsten Struktur
        (bzgl. Anzahl der Neuronen und Schichten) oder die Konfiguration mit der
        geringsten Lernschrittanzahl gewählt werden. Das erfolgt durch Anwahl
        eines der drei BitBtns in der GroupBox "Gewünschte Konfiguration".
        Nach der Auswahl wird die entsprechende Konfiguration automatisch erstellt
        und auf der Seite "Konfiguration" eingetragen, wo sie dann weiter bearbeitet
        werden kann.
          
        
         Kapitel 5
         _________________________
        
         5 Modul Spracherkennung
         5.1 Einführung
         Eines der Einsatzgebiete Neuronaler Netze,
        in denen während der letzten Jahre entscheidende Fortschritte erzielt
        werden konnten, ist jenes der Spracherkennung/Sprachsynthese. Mittlerweile
        sind schon entsprechende, sehr ausgereifte Produkte auf dem Markt zu finden,
        welche u.a. in Betriebssystemen zum Einsatz kommen.
         Diesen zukunftsträchtigen Aussichten soll
        mit dem vorliegenden Modul "Spracherkennung" Rechnung getragen werden,
        in welchem eine prinzipiell mögliche Arbeitsweise solcher Spracherkennungssysteme
        dargestellt wird. Es umfasst drei Seiten zur Eingabe, Netzarbeit und Ergebnispräsentation.
        
         5.2 AudioDatei
         Neben der TabControl zur Visualisierung verschiedener
        Kenngrößen des Audio-Signals in PaintBoxes befinden sich auf
        dieser Seite mehrere GroupBoxes zur Anzeige unterschiedlicher Parameter,
        eine ProgressBar, welche den Fortgang der Berechnungen nach dem Laden einer
        Datei wiedergibt, der BitBtn zum Öffnen von Dateien und ein MediaPlayer
        zur Aufnahme/Wiedergabe von Audio-Dateien im Wave-Format.
         Um die notwendigen Parameter einer Audio-Datei
        zu berechnen, gibt es also die Möglichkeit, sie - falls dort existent
        - von Festplatte zu laden oder per Mikrofon und Soundkarte m.H. des MediaPlayers
        (links unten im Formular) selber aufzunehmen. Ihr Name wird dann in der
        GroupBox "AudioDatei" (rechts unten) angezeigt.
         Bei Betätigen des Buttons "Record" des
        MediaPlayers wird zunächst ein SaveDialog geöffnet, in welchem
        der gewünschte Dateiname angegeben wird. Voreinstellung ist der Name
        der gegenwärtig geladenen Datei. Erfolgt dessen Änderung nicht,
        überschreibt die danach erfolgende Aufnahme die Datei. Mittels des
        Buttons "Play" kann eine geladene Audio-Datei über Soundkarte und
        Lautsprecher wiedergegeben werden. Der Button "Stop" dient dem vorzeitigen
        Abbruch beider Vorgänge. Normalerweise sorgt jedoch ein im Formular
        integrierter Timer für die Beendigung des Aufnahmevorganges nach drei
        Sekunden.
         Während der Berechnung wird das Audio-Signal
        zentriert, normiert, Fourier-transformiert und das Frequenz-Spektrum innerhalb
        der detektierten Wortgrenzen in ein Bark-Spektrum mit lediglich 18 Bändern
        (gehörrichtige Frequenzgruppen) umgewandelt. Deren Mittenfrequenzen
        werden potenziert und man erhält 18 Werte zur Lautheit des aufgenommenen
        Samples, welche das Neuronale Netz später anlernen kann.
         Variierbar für die Berechnungen sind zum
        einen Art der Fensterung, Signalausschnitt, darzustellende Kurve und zum
        anderen die drei Parameter zur Wortdetektion. Bei Überschreitung der
        angegebenen Schwelle gilt ein Wert als zum Wort gehörig. Liegen mehr
        als die im SpinEdit "WortToleranz" angegebene Anzahl Werte hintereinander
        höher als die Schwelle, so gilt der Wortanfang als erkannt. Umgekehrt
        wird das Wortende detektiert, wenn mehr als die in "PausenToleranz" gegebene
        Anzahl Werte die Schwelle unterschreiten.
        
         5.3 MusterSet
         Wichtigster Inhalt der Seite sind die beiden
        GroupBoxes "MusterSet" und "Muster". In ihnen erfolgt die Einstellung der
        Parameter mit Gültigkeit für das ganze Set (d. h. alle Muster)
        bzw. nur das gerade gewählte Muster.
         Nach der Neuerstellung eines Muster-Sets mit
        dem BitBtn "NeuInit" oder dem Laden einer Muster-Set-Datei mittels "Öffnen"
        erscheint deren Name in der sich im Formular rechts unten befindenden GroupBox
        "MusterSetDatei". Nun können mehrere Muster in das Set aufgenommen
        oder aus diesem gelöscht werden, was mit den BitBtns "Muster neu"
        und "Löschen" möglich ist. In einer Datei gesichert wird ein
        MusterSet durch Anwahl des BitBtns "Speichern". Es öffnet sich ein
        SaveDialog, in welchem als Voreinstellung der Name aus der GroupBox "MusterSetDatei"
        erscheint.
         Beim Hinzufügen eines neuen Musters öffnet
        sich ein OpenDialog, worin die zu ladende Audio-Datei gewählt wird.
        Sie stellt jedoch nur den Eingangsvektor des aktuellen Musters dar. Als
        Zielvektor, auf den das Netz später trainiert werden soll, können
        per Hand Fließkommawerte zwischen 0 und 1 im Edit "Binärcode
        " eingegeben werden. Die Gesamtzahl im Set enthaltener Muster ist im Panel
        "MusterAnzahl" zu ersehen. Eines anwählen kann man in der ComboBox
        "Aktuelles Muster".
         Die verbleibenden BitBtns "Anlernen" und "Abbruch"
        sind für die Netzarbeit gedacht. Vor einer funktionierenden Spracherkennung
        muss das Netz erfolgreich angelernt worden sein (Abbruchursache: "Unterschreiten
        der angegebenen Fehlergrenze"). Wenn vorhanden, kann die DLL "Fehlerrückführung"
        mit dem SpeedButton in der GroupBox "NeuroNetze" aufgerufen werden, um
        extern beispielsweise günstige Netzkonfigurationen zu finden.
        
         5.4 Ergebnis
         Linkerhand befinden sich auf dieser Seite zwei
        GroupBoxes zum Einstellen notwendiger Parameter und zwei BitBtns zum Starten
        des Reproduktionsvorganges. Anhand der Objektaktionen im Panel auf der
        rechten Hälfte kann über Erfolg oder Misserfolg der Spracherkennung
        geurteilt werden. Außerdem dient das darunter gelegene Panel der
        Wiedergabe des erkannten Textes.
         Nach der Auswahl des Verfahrens in der GroupBox
        "ErkennungsTyp" kann die Spracherkennung gestartet werden. Im Falle einer
        Offline-Erkennung (BitBtn "OfflineStart") muss vorher jedoch die zu bestimmende
        Audio-Datei spezifiziert worden sein. Für eine Online-Erkennung hingegen
        öffnet sich bei Anwahl des BitBtns "Online Start" ein SaveDialog,
        in dem ein beliebiger Dateiname angegeben werden kann. Nach Betätigen
        des Buttons "Ok" im folgenden Dialog startet die Aufnahme über das
        Mikrofon, welche nach drei Sekunden automatisch abbricht. Danach wird das
        Ergebnis sofort berechnet und in den Panels angezeigt. Ein Löschen
        und Rücksetzen der Ergebnisanzeige ist möglich durch einen einfachen
        Maus-Klick auf das Ergebnis-Panel.
         Mit den noch verbleibenden BitBtns kann eine
        extern erstellte Netzkonfiguration ebenso wie eine externe Lerndaten-Datei
        angegeben werden. Der unterste BitBtn dient dem Rücksetzen des Netzes
        mit all seinen Parametern auf die ursprüngliche Ausgangskonfiguration.
          
        
         Kapitel 6
         _________________________
        
         6 Literatur
         Brause, Rüdiger.  Neuronale Netze:
        Eine Einführung in die Neuroinformatik. Stuttgart: Teubner, 1991.
         Hoffmann, Norbert. Kleines Handbuch neuronale
        Netze: anwendungsorientiertes Wissen zum Lernen und Nachschlagen. Braunschweig;
        Wiesbaden: Vieweg, 1993.
         Kinnebrock, Werner. Neuronale Netze: Grundlagen,
        Anwendungen, Beispiele. München; Wien: Oldenbourg, 1992.
         MATLAB: Neural Network Toolbox-User's Guide. 
        Hg. The Math Works, Inc.  Natick, June 1992.
         Paal, Gerhard. Hexal-Lexikon Neurologie. München;
        Wien; Baltimore: Urban und Schwarzenberg, 1995.
         Pschyrembel Klinisches Wörterbuch: mit
        klinischen Syndromen und Nomina Anatomica. Bearb. von d. Wörterbuchred.
        d. Verl. unter Leitung von Christoph Zink. 256., neu bearb. Aufl. Berlin;
        New York: de Gruyter, 1990.
         Zell, Andreas.  Simulation Neuronaler
        Netzwerke.  1. Aufl.  Addison-Wesley (D) GmbH, 1994.
          
        
         Index I
         _________________________
        
         Index
        
         Anwendungen
         modular 5
         Deinstallation 10
         DLL 6
         Dynamische Bibliotheken 6
         Fehlerrückführungsnetz 13
         Anwendung 14
         Arbeitsphasen 14
         Aufbau 13
         Ausgangsschicht 13
         Eingangsschicht 13
         Lernen 14
         Netzausgangswerte 13
         Netzeingangswerte 13
         Optimierungsverfahren 14
         Pruning-Verfahren 14
         Reproduktion 14
         Schichtenmodell 13
         Konventionen 14
         Verteilungsneuronen 14
         Verteilungsschicht 14
         Handbuch
         Bezeichnungen 6
         Gliederung 6
         Intention 6
         Hauptfenster
         Hauptmenü 11
         SpeedButtons 12
         Statusleisten 12
         Untermenüs 11
         Installation
         Ablauf 10
         Bemerkungen 10
         Deinstallation 10
         Lieferumfang 9
         Modi 9
         Voraussetzungen 9
         Komponenten
         BackPropNet 7
         Komponentenbibliothek 7
         Modul Fehlerrückführung
         Auswerten 20
         Einführung 13
         Konfiguration 15
         Lernen 17
         MusterSet 16
         Optimieren 22
         Reproduzieren 21
         Modul Spracherkennung
         AudioDatei 25
         Einführung 25
         Ergebnis 28
         MusterSet 27
         Module 5
         DLLs 6
         Fehlerrückführung 7; 13
         Spracherkennung 25
         Netzwerktypen
         modular 5
         Neuron
         Aktivierungsfunktion 13
         Aktivität 13
         Ausgangsfunktion 13
         Ausgangswert 13
         Effektiver Eingang 13
         Eingangsfunktion 13
         Eingangswerte 13
         Gewichte 13
         Online-Hilfesystem 6
         Programmierung
         Umgebung 5
         Res Neuronum
         Hauptfenster 11
         Schichtenmodell
         Konvention 14
         Service/Support 7
         Was ist... 5
          
        
         Anhang A
         _________________________
        
         A Konventionen zum Programmieren weiterer Module
         A.1 Allgemein
         ProgrammierSprache:
         - Englisch (alles, Programmcode, Variablen
        bis zu Erläuterungen)
         OberflächenSprache:
         - wie gewünscht (Deutsch od. andere)
         Großschreibung:
         - alle Wortanfänge, auch jedes beginnende
        Teilwort
         - Bsp.: FunctActScal
         Kleinschreibung:
         - nur Schlüsselwörter/Standarddirektiven
        von Object Pascal
         - Bsp.: string, begin, override
         Bezeichnung der Variablen:
         - Substantive
         - möglichst: Grundwort zuerst, dann Bestimmungswort
         - Bsp.: nicht OutputFunction, sondern FunctOutp
         - dadurch ist später leichtere Spezifizierung
        möglich
         - Bsp.: FunctOutpLinear
         Bezeichnung der Methoden:
         - Verben zuerst (Methoden führen stets
        eine Tätigkeit durch)
         - Bsp.: GetVariable oder: ApplyFFT
         - Ausnahme: Ereignisse
         - Bsp.: BitBtnNewClick
         Allg. Variablen im Methodenkopf verwenden
         - Bsp.: procedure(APoint: TPoint);
         - Bsp.: TPoint.Create(AnX, AnY: Real);
         Definitionen:
         - Leerzeichen vor und hinter arithmetischen
        Zeichen
         - Bsp.: A_:=_8; C := A_*_B;
         Deklarationen:
         - ein Leerzeichen nach Doppelpunkt;
         - Bsp.: A:_Byte;
         Aufzählungen:
         - ein Leerzeichen nach Kommata bzw. Semikola
         - Bsp.: procedure(A,_B,_C:_string;_var D: Integer);
         Erläuterungen:
         - in geschweiften Klammern; hinter erster und
        vor letzter Klammer je ein Leerzeichen
         - Bsp.: {_Explanation_}
         Blöcke:
         - in die Wörter begin und end einschließen,
        wobei das Einrückniveau von zwei Zeichen gewahrt bleibt
         - letzte Zeile eines eingerückten Blockes
        schließt diesen immer auf dem Niveau der ersten ab
          
        
         A.2 Komponenten
         Klassenstruktur-Bsp.:
         - TObject-TNeuron
         - TObject-TPersistent-TLayer
         - TObject-TPersistent-TComponent-TBackPropNet
         - TObject-TPattern
         - TObject-TList-TSet
         Registrierung der Komponenten:
         - NeuroNetCompsReg.pas
         Palette:
         - Neural Networks
          
        
         A.3 Simulationsprogramm
          Dateiendungen-Bsp.:
             - *.cfg = Configuration (including LearnParameters)
             - *.ptn = PatternSet
             - *.lrn = LearnData (Weights etc.)
             - *.rcl = RecallSet
             - *.net = Net complete with all possible parameters
             Eingangsschicht (im Modul Fehlerrückführung):
             - enthält nur Verteilungsneuronen (Verteilungsschicht)
              
            
             Anhang B
             _________________________
            
             B Bestellung/Meinung
             Das Programm kann geordert werden an der TU
            Ilmenau bei den im Punkt "Service/Support" angegebenen Adressen. Weitere
            Informationen sind unter der dort angegebenen Internet-Adresse erhältlich.
             Kritik, besonders aber konstruktive Verbesserungsvorschläge
            sind ausdrücklich erwünscht!
          |