Information Technology Reference
In-Depth Information
mit Daten und Fehlerwerten. Die wichtigsten Arrays sind activations , weights und
thresholds . Sie definieren den aktuellen Zustand des Netzes. Das Array teach ent-
hält die erwünschten Ausgabe- oder Zielwerte. Mit den anderen Arrays werden die Fehler
und Veränderungen der Gewichte berechnet. Für die Definition eines Neuronalen Net-
zes mit Backpropagation steht die Methode createNetwork() zur Verfügung. Diese
Methode kommt anstelle eines Konstruktors zum Einsatz, so dass sich die Netzarchitek-
tur verändern lässt, ohne ein neues Objekt erzeugen zu müssen. Die Methode create-
Network() nimmt drei Parameter an: die Zahl der Eingaben, die Zahl der verdeckten
Elemente und die Zahl der Ausgabeeinheiten. Dann werden einige nützliche Elemente
berechnet, die Steuerparameter initialisiert und allen Arrays zugeordnet. Dann erfolgt der
Aufruf der Methode reset() , um die Netz-Arrays zu initialisieren. Für den Vorwärts-
schritt werden gleich drei Methoden verwendet. Die Methode readlnputs() nimmt
einen Datensatz aus der Datenmenge und kopiert die Eingabewerte in die activati-
ons der Eingabeeinheiten. Außerdem werden die Zielwerte in das Array teach kopiert.
Die Methode computeOutputs() führt den vollständigen Vorwärtsschritt durch das
Netz aus. Beginnend bei der ersten Schicht, bildet sie die Summe aus dem Schwellenwert
und allen Aktivierungen der Eingabeeinheiten, multipliziert mit den dazugehörigen Ge-
wichten und ruft die Methode logistic() auf, um den Aktivierungswert zu berechnen
und einzustellen. Die Fehlerberechnung beginnt bei der Ausgabeschicht und bewegt sich
zurück in Richtung Eingabe. Als Erstes werden die Ausgabefehler berechnet, indem die
Differenz zwischen den von computeOutputs() ermittelten activations und den
Werten von teach bestimmt wird. Außerdem erfolgt die Bildung der Summe des Quad-
rats der Fehlerwerte, um den mittleren quadratischen Fehler zu ermitteln. Die Differenzen
werden dann mit Hilfe der Ableitungen der Aktivierungsfunktion berechnet. Um die Ge-
wichte anzupassen, berechnet die Methode adjustWeights() zuerst die aktuellen Ge-
wichtsdeltas ( wDeltas ) und fügt diese dann den Gewichten hinzu. Dabei wird das Array
wDerivs auch dazu verwendet, die gesammelten Gewichtsveränderungen zu speichern,
die auf die Gewichte angewendet werden sollen. Bei der Musteraktualisierung enthält
wDerivs nur die Veränderungen aus dem aktuellen Muster. Nach der Anpassung der
Gewichte wird das Array wDevis wieder auf null gesetzt. Dann erfolgt die Anpassung
der Schwellengewichte aller Einheiten der verdeckten Schicht und der Ausgabeschicht.
Die Berechnungen verlaufen ähnlich wie die für die normalen Gewichte, wobei die Ein-
richtung eines speziellen Arrays für den Schwellenwert notwendig ist.
Die Implementierung eines Neuronalen Netzes mit Kohonen-Karten erfolgt in der Klas-
se namens KmapNet . Ihre Struktur ähnelt der für die Klasse BackProp . Der Hauptunter-
schied zwischen den Klassen KmapProp und BackProp besteht darin, dass das Lernen
bei der einen nach der selbstorganisierten und bei der anderen nach der überwachten Metho-
de erfolgt. Kohonen-Karten lernen durch Selbstorganisation, also gibt es keine Soll-Ausga-
be, sondern nur verschiedene Eingaben. Zur Klasse KmapNet gehören vier verschiedene
Mengen von Elementen oder Parametern. Die erste Gruppe wird zur Datenverwaltung ein-
gesetzt. Darin findet sich ein Verweis auf die Datenmenge dataset , der aktuelle Daten-
satzindex recinx , die Gesamtzahl der Datensätze in der Datenmenge, numRecs , und
Search WWH ::




Custom Search