Res Neuronum - Simulation of Neural Networks
Fractal
News Features Manuals Translation Download Contact About
Manuals (German)
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!


Copyright © 1997-2000 Tux Tax. All Rights Reserved. Last Update: 06.03.2000