Hallo Allerseits!
Zu aller Erst: Ich bin Neuling bei Neuronalen Netzen und sehr von der Vielseitigkeit des Programms MemBrain überrascht. Gratulation Hr. Jetter!
Nun um mich ein wenig in die Thematik aus Hobbygründen einzuarbeiten, habe ich mir folgendes Problem gestellt:
Ich möchte ein Netz insofern trainieren, dass es als
1 Input Neuron den Sinuswert im Winkel von 0 bis 359 Grad (360 Trainingssätze), 4 Hiddenneuronen
und 1 Output Neuron als Cosinuswert des selben Winkels, hat.
An sich eine relativ einfache Aufgabe mit exakter Nachvollziehbarkeit von Input und Output.
Habe es simple mit dem RPROB Teacher laufen lassen und komme nicht unter Net Error nicht unter 0,49.
Meine Frage:
Wie würdet Ihr das Problem angehen? Wäre sehr interessant zu sehen, wie Profis das Netzwerk designen
und vorallem, warum
Neben der direkten Eingabe des Wertes über 1 InputNeuron - würde ich grundsätzlich dazu tendieren, 360 Eingabeneuronen
zu erzeugen, und das NN über eine Latte von HiddenNeuronen zu 1 Output führen. Jedes dieser Eingabeneuronen,
hätte als Input lediglich simple IO Logik, dann wäre es wahrscheinlich simple möglich, mit wahrscheinlich gutem Resultat.
Vielen Dank und sorry für meine "bescheidene Herangehensweise".
Oliver
Einfaches Problem: SIN zu COS ...
Re: Einfaches Problem: SIN zu COS ...
Hallo und herzlich willkommen im Forum!
Zwei Probleme liegen hier vor, wovon das erste ein prinzipielles ist, das zweite leicht behebbar:
1.) Es wird versucht, die Übertragungsfunktion zwischen sin und cos zu erlernen also die function
Das geht prinzipiell nicht, der cos lässt sich aus dem sin nicht eindeutig bestimmen.
Beispiel:
Zum Training erhält das Netz damit widersprüchliche Pattern:
P1: Input: 0,707, Output: 0,707
P2: Input: 0,707, Output: -0707
Was soll das Netz nun erlernen? Nun, es wird 'sein bestes' tun und am Ausgang möglichst immer nahe der 0 bleiben, so macht es über alle Pattern den geringsten Fehler
2.) Das Input-Neuron ist mit der Aktivierungsfunktion 'IDENT. 0 TO 1' ausgestattet. Das Output Neuron mit der 'LOGISTIC' Funktion. Beide Funktionen besitzen einen Wertebereich von 0 bis 1, die Trainingsmuster besitzen für Input und Output aber den Wertebereich -1 bis 1. Deshalb erscheint auch beim Start des Trainings eine Warnung, dass Trainingsmuster außerhalb des zulässigen Bereichs liegen.
Hier ist die Lösung einfach: Input-Neuron auf 'IDENTICAL' umstellen, beim Output-Neuron 'TAN HYP' einstellen.
Oder aber bei den Normalisierungseinstellungen für Input- und Output-Neuron den Wertebereich -1 bis 1 einstellen und die Normalisierung aktivieren.
Viele Grüße
Zwei Probleme liegen hier vor, wovon das erste ein prinzipielles ist, das zweite leicht behebbar:
1.) Es wird versucht, die Übertragungsfunktion zwischen sin und cos zu erlernen also die function
Code: Select all
cos(x) != f(sin(x))
Beispiel:
Code: Select all
sin(45°) = cos (45°) = 0,707...
sin(135°) = sin(45°) = 0,707. ABER: cos(135°) = -0,707...
P1: Input: 0,707, Output: 0,707
P2: Input: 0,707, Output: -0707
Was soll das Netz nun erlernen? Nun, es wird 'sein bestes' tun und am Ausgang möglichst immer nahe der 0 bleiben, so macht es über alle Pattern den geringsten Fehler
2.) Das Input-Neuron ist mit der Aktivierungsfunktion 'IDENT. 0 TO 1' ausgestattet. Das Output Neuron mit der 'LOGISTIC' Funktion. Beide Funktionen besitzen einen Wertebereich von 0 bis 1, die Trainingsmuster besitzen für Input und Output aber den Wertebereich -1 bis 1. Deshalb erscheint auch beim Start des Trainings eine Warnung, dass Trainingsmuster außerhalb des zulässigen Bereichs liegen.
Hier ist die Lösung einfach: Input-Neuron auf 'IDENTICAL' umstellen, beim Output-Neuron 'TAN HYP' einstellen.
Oder aber bei den Normalisierungseinstellungen für Input- und Output-Neuron den Wertebereich -1 bis 1 einstellen und die Normalisierung aktivieren.
Viele Grüße
Thomas Jetter
Re: Einfaches Problem: SIN zu COS ...
Vielen Dank für den Support - Stimmt, ist mir
erst jetzt aufgefallen - dass IO nicht eindeutig ist.
Ich mach mich mal an die Umsetzung.
Beste Grüße
erst jetzt aufgefallen - dass IO nicht eindeutig ist.
Ich mach mich mal an die Umsetzung.
Beste Grüße