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!
|