Home | Up |
|
Impressum |
Joachim Pimiskern. Freeware. Begonnen 22.12.1995 mit Turbo Pascal. Portiert nach Object Pascal (die Sprache von Borland-Delphi) am 7.4.1999.
Konstruktor aufrufen
<Eingabe> ist die Anzahl der Neuronen der Eingabeschicht, <Hidden> die
Anzahl der Neuronen der "verborgenen" Zwischenschicht, <Ausgabe> die
Anzahl der Neuronen der Ausgabeschicht. <Eta> ist ein Parameter, der
die Schrittweite beim Lernen angibt. 0.2 ist ein guter Ausgangswert für Experimente.
<Filename> ist der Name einer Datei, in der man den Zustand des
Neuronalen Netzes dauerhaft aufbewahren kann.
uses feedfwd3;
...
var NeuralNet: TFeedFwd3;
...
NeuralNet := TFeedFwd3.Create(<Eingabe>,
<Hidden> ,
<Ausgabe>,
<Eta>);
if (FileExists(<Filename>)) then
NeuralNet.LoadFromFile(<Filename>);
Ein Trainingsschritt
Das Training besteht darin, daß man dem Neuronalen Netz Paare von Eingangsvektor
und Ausgangsvektor präsentiert. Der untenstehende Code zeigt dies für ein
solches Paar, aber in der Regel hat man viele Paare. Man kann solche Paare
systematisch (z.B. der Reihe nach) oder aber zufällig wählen. Die Methode
FeedForward läßt das Neuronale Netz den Eingabevektor von der
Eingabeschicht bis zur Ausgabeschicht hindurchwandern. Dabei findet
die eigentliche Informationsverarbeitung statt. In der Regel wird die
Antwort des Neuronalen Netzes auf die jeweilige Eingabe vom Soll-Ausgangsvektor
abweichen. Für jedes Neuron ergibt sich eine Differenz zwischen Sollwert
und Istwert. Diese Differenz kann dazu verwendet werden, um das
Neuronale Netz zu korrigieren, also Schwellwerte und Gewichte zu
verändern, also einen Lernschritt zu machen. Diesen Lernschritt
löst man mit FeedBackward aus.
var i: integer;
...
for i := 0 to <Eingabe> - 1 do
NeuralNet.SetInput(i,<Eingabewert(i)>);
for i := 0 to <Ausgabe> - 1 do
NeuralNet.SetSollwert(i,<Ausgabewert(i)>);
NeuralNet.FeedForward;
NeuralNet.FeedBackward;
Kann-Phase
In der Kann-Phase zieht man Nutzen aus den Fähigkeiten des
Neuronalen Netzes, ohne weitere Lernvorgänge zu aktivieren.
Ein Eingabevektor wird gesetzt. Dieser wird mit FeedForward
verarbeitet; an der Ausgabeschicht liest man mit GetOutput(i)
das Ergebnis ab.
var i: integer;
...
for i := 0 to <Eingabe> - 1 do
NeuralNet.SetInput(i,<Wert>);
NeuralNet.FeedForward;
for i := 0 to <Ausgabe> - 1 do
TuWasMit(NeuralNet.GetOutput(i));
Destruktor aufrufen
Die Methode SaveToFile ermöglicht die Speicherung der Schwellwerte und Gewichte
in einer Datei.
NeuralNet.SaveToFile(<Filename>);
NeuralNet.Free;
Home | Up |
|
Impressum |