Bachelor + Master Publishing
811 Bachelorarbeiten, 533 Masterarbeiten, 10.103 Diplomarbeiten

Überwachung eines neuronalen Netzes mittels Controller

Überwachung eines neuronalen Netzes mittels Controller
Über dieses Buch
  • Art: Studienarbeit
  • Autor: Michael Krause
  • Abgabedatum: Oktober 2000
  • Umfang: 65 Seiten
  • Dateigröße: 1,8 MB
  • Note: 1,0
  • Institution / Hochschule: Universität Rostock Deutschland
  • ISBN (eBook): 978-3-8324-7227-6
  • ISBN (Paperback) :
    978-3-8324-7227-6 P
  • ISBN (CD) :978-3-8324-7227-6 CD
  • Sprache: Deutsch
  • Prämierung:
  • Arbeit zitieren: Krause, Michael Oktober 2000: Überwachung eines neuronalen Netzes mittels Controller, Hamburg: Diplomica Verlag
  • Schlagworte: neuronales Netz, Microcontroller, Assembler, Zufallszahl, Hitachi H8

Studienarbeit von Michael Krause

Zusammenfassung:

Im Rahmen dieser Belegarbeit entstand eine Software, die es erlaubt, die Signalflüsse eines analogen Multiplayerperzeptrons zu überwachen. Grundlage war eine vorangegangene Diplomarbeit, in der die Struktur eines selbstlernenden neuronalen Netzes als Analogschaltung herausgearbeitet wurde.

Die Software realisiert die Control-Funktion des analogen Netzes. Diese Funktion überwacht die Ein- und Ausgänge des Netzes, regelt den Signalfluss zum Musterspeicher und kontrolliert den Lernprozess. Ziel war es, die Einsatzmöglichkeit eines Mikrocontrollers zur Netzsteuerung zu untersuchen. Dabei erwies sich die schnellstmögliche Abarbeitung des Control-Algorithmus als wichtiges Kriterium. Aus diesem Grund wurde das Controllerprogramm im Assemblercode entwickelt.

Das entstandene Programm ermöglicht es, ein neuronales Netz mit bis zu 100 Eingangs- und 20 Ausgangsneuronen zu steuern. Dabei wurde Wert darauf gelegt, die Software möglichst flexibel zu gestalten. So ist es z.B. möglich, die Anzahl der Ein- und Ausgangsneuronen festzulegen und auch die Zahl der Lern- und Testpattern kann bis zum Maximalwert von je 1000 variiert werden.

Inhaltsverzeichnis:

1. Kurzreferat 1
2. Inhaltsverzeichnis 4
3. Verzeichnis der Abbildungen 6
4. Grundlagen neuronaler Netze 7
4.1 Das biologische Vorbild 7
4.2 Künstliche neuronale Netze 8
5. Multilayerperzeptron und Backpropagationalgorithmus 10
5.1 Aufbau und Funktion des Multilayerperzeptrons (MLP) 11
5.2 Der Backpropagationalgorithmus 12
6. Struktur der technischen Realisierung 14
6.1 Grundstruktur des Netzes 14
6.2 Algorithmus zum automatisierten Lernen 15
6.3 Ermittlung des minimalen Netzfehlers 17
6.4 Algorithmus der Control-Funktion 18
7. Der Mikrocontroller Hitachi H8/534 20
7.1 Aufbau und Eigenschaften des H8/534 20
7.1.1 Betriebsmodi der H8-Familie 22
7.1.2 Festlegen des Betriebsmodus und Speicherplatzbedarf der Software 23
7.2 Auswahl der Programmiersprache 24
7.3 Interne Zahlendarstellung 25
7.3.1 Variablenformate der Control-Funktion 25
7.3.2 Festkommazahlen 26
7.3.3 Gleitkommazahlen 26
8. Die Software 27
8.1 Vereinbarungsteil und Speichereinteilung 29
8.2 Das Hauptprogramm 30
8.3 Unterprogramm Copy_Tab 31
8.4 Algorithmus zur Zufallszahlenerzeugung 31
8.4.1 Algorithmen zur Zufallszahlenerzeugung 31
8.4.2 Implementation des Zufallszahlengenerators (Unterprogramm Random) 34
8.5 Unterprogramm Present_Learnpattern 35
8.5.1 Verwendung der Mikrocontrollerports 35
8.5.2 Präsentation der Lernpattern 39
8.6 Unterprogramm Present_Testpattern 39
8.6.1 Unterprogramm Error_Calc 41
8.7 Unterprogramme zum Umgang mit Gleitkommawerten 41
8.7.1 Unterprogramm R_to_I 41
8.7.2 Unterprogramm IEEE_Mult 42
8.8 Programmlaufzeit 43
9. Softwaretest 44
10. Ausblick 45
11. Literatur- und Quellenverzeichnis 46
12. Erklärung des Autors 47
Anhang 48

Automatisiert erstellter Textauszug:

Das Unterprogramm Copy_Tab kopiert die original Lernpattern aus dem ROM ins RAM. Dort werden sie gespeichert, um später der Zufallsfunktion Random eine Markierung der ausgewählten Pattern zu ermöglichen. Anhand der Originaltabelle und dessen Kopie kann die Random-Funktion sicherstellen, dass jeder Pattern wirklich nur einmal ausgewählt wird. Dies ist wichtig, da der Lernalgorithmus in jedem Zyklus eine einmalige Präsentation aller Pattern verlangt. Für die spätere Unterscheidung ist es nicht nötig, die gesamte Originaltabelle zu duplizieren. Vielmehr genügt es jeweils nur die erste Komponente jedes Pattern zu kopieren, was eine schnellere Abarbeitung des Algorithmus zur Folge hat. Anschaulich wird das Vorgehen, wenn man die Abarbeitung des im nächsten Abschnitt beschriebenen RandomAlgorithmus betrachtet. [...]

Das Hauptprogramm verknüpft die einzelnen Unterprogramme so miteinander, dass der Algorithmus aus Abschnitt 6.4 vom Controller realisiert wird. Es lässt sich in Programmbeginn, Initialisierungsteil und eigentlichen Lernalgorithmus unterteilen. Zu Beginn werden die Dateien mit den Lern- und Testpattern geladen und einige allgemeine Deklarationen, wie z.B. Festlegen der Programmstartadresse, vorgenommen. Im anschließenden Initialisierungsteil werden den im Vereinbarungsteil definierten Variablen die entsprechenden Anfangswerte zugewiesen und die benötigten Ports konfiguriert. Der darauf folgende Hauptteil besteht im wesentlichen aus der im Algorithmus auf Seite 18 dargestellten Schleife (Cycle). Hier werden die entsprechenden Statussignale (ini, learnrate) über die Mikrocontrollerports ausgegeben, die Unterprogramme aufgerufen und Variablen wie Learning_Rate, Max_Cycles, oder Error_Sum ausgewertet. Die Abarbeitung des Algorithmus erfolgt folgendermaßen: Nach der Initialisierung und Anfangsbelegung der Variablen beginnt der eigentliche Lernzyklus (Cycle). Dort wird als erstes das ini Signal auf 1 gesetzt und ausgegeben. Die Classification-Funktion wird damit zur Gewichtsinitialisierung veranlasst. Nach dem anschließenden Löschen des ini-Bits wird der Algorithmus mit der Schleife, die die Lern- und Testpattern präsentiert sowie den Netzfehler ermittelt fortgesetzt (Repeat-Schleife). Hier werden der Summenfehler des Netzes (Error_Sum) gelöscht und die Lernrate (learnrate) ausgegeben. Die Variable learnrate ist intern als 32 Bit Gleitkommawert gespeichert. Für die Ausgabe als Spannungswert über einen externen D/A-Wandler ist jedoch ein Integerwert nötig. Deshalb muss vor der Ausgabe von learnrate der Gleitkommawert mit einem Skalierungsfaktor multipliziert und in einen Integerwert konvertiert werden. Der Skalierungsfaktor dient dazu, den internen Wert (z.B. 0,9) an die Auflösung des D/AWandlers anzupassen (bei 10 Bit DAU: Skalierungsfaktor=1023). Die Gleitkommamultiplikation realisiert die Funktion IEEE_Mult. Im Anschluss wird mittels der R_to_I-Funktion der Gleitkommawert in einen Integertyp konvertiert und ausgegeben. Nun kann mit der Präsentation der Lernpattern begonnen werden. Dazu wird der erste Wert jedes Lernpattern vom Unterprogramm Copy_Tab ins RAM kopiert und anschließend erzeugt die Random-Funktion mit Hilfe der Original- und der„Copy_Tab“-Tabelle eine neue Tabelle. Diese Tabelle ermöglicht die Ausgabe der Lernpattern in zufälliger Reihenfolge. Die Funktion Present_Learnpattern präsentiert nun die Pattern dem neuronalen Netz, das dabei die Gewichte zwischen den Neuronen anpasst. Das Ende der Lernpatternpräsentation wird dem Netz durch Ausgabe der Lernrate 0 signalisiert. Den Erfolg des Lernvorganges überprüft die Funktion Present_Testpattern. Sie gibt die Pattern der Testpatterntabelle aus und ermittelt stets den Netzfehler, der über alle Pattern aufsummiert wird (Error_Sum). Das Hauptprogramm vergleicht anschließend den summierten Netzfehler mit dem zulässigen Fehler (Error_zul). Ist der Fehler größer als der zulässige Fehler, wird das Lernen wiederholt (Repeat-Schleife). D. h., die Lernpattern werden erneut „zufällig“ sortiert, präsentiert und der Lernerfolg wird mit Hilfe der Testpattern überprüft. Dieser Vorgang wiederholt sich solange, bis der Gesamtfehler kleiner als der zulässige Fehler geworden ist oder eine maximale Anzahl von Zyklen (Max_Cycles) erreicht wurde. Nach erfolgreichem Konvergieren hat der Seite 28 [...]

Die Darstellung der gebrochenen Zahlen im Mikrocontroller erfolgt ähnlich dem IEEEStandard. Das hat den Vorteil, dass der Zahlenbereich sehr groß und der Fehler bei der Umwandlung von Dezimal- in Gleitkommazahlen gering ist. Das tatsächlich verwendete Format ist vom IEEE-Standard abgeleitet. Da im Programm keine negativen Zahlenwerte auftreten, wird das Vorzeichenbit weggelassen. Das freiwerdende Bit wird als zusätzliches Bit für die Mantisse genutzt. Das Format im Mikrocontroller besteht damit aus 8 Bit Exponent und 24 Bit Mantisse (=32 Bit insgesamt). Die erreichbare Genauigkeit ist mehr als ausreichend. Bei einer Speichereinteilung im Word-Format (16 Bit) und ebenso breiten ALU-Registern werden also 2 Speicheradressen benötigt. Ein Format, indem lediglich 16 Bit genutzt werden, wäre zu ungenau, so dass auf die 32 Bit Darstellung ausgewichen wird. Ein ebenfalls denkbares Format von 24 Bit insgesamt wird wegen der Speichernutzung des H8 (Worddaten nur an geraden Speicheradressen) nicht verwendet. [...]

Arbeit zitieren:
Krause, Michael Oktober 2000: Überwachung eines neuronalen Netzes mittels Controller, Hamburg: Diplomica Verlag

Schlagworte:
neuronales Netz, Microcontroller, Assembler, Zufallszahl, Hitachi H8

Entdecken Sie mehr zum Thema

diplom.de
Bachelor + Master Publishing

Hermannstal 119 k
22119 Hamburg

Fon: +49 (0) 40 655992-0
Fax: +49 (0) 40 655992-22

Service-Telefon

Rufen Sie uns an:
+49 (0) 40 655992-0

Mo-Fr
09.00-16.00 Uhr

diplom.de in den Medien

Folgen Sie uns bei Twitter & werden Sie diplom.de-Fan bei Facebook!
Schreibtipps unserer Lektoren, Neuigkeiten aus dem Verlagsalltag und das Expertenwissen unserer Autoren als Tweet & Post!
Wir freuen uns auf Sie!

diplom.de BACHELOR + MASTER PUBLISHING

Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Magisterarbeiten, Dissertationen und andere Abschlussarbeiten aus allen Fachbereichen und Hochschulen können Sie bei uns als eBook sofort per Download beziehen oder sich auf CD oder als Buch zusenden lassen. Seit mehr als 15 Jahren ist diplom.de der seriöse, professionelle und erfolgreiche Partner für die Veröffentlichung wissenschaftlicher Abschlussarbeiten.

© Diplomica Verlag GmbH 1996-2011, AG Hamburg HRB 80293 - GF Björn Bedey, USt-IdNr.: DE214910002 - Verkehrsnummer: 12285 - Impressum
Index der Arbeiten - Index der Autoren