franky wrote:vielleicht eine sehr dumme Frage, aber ich habe in der Hilfe keine eindeutige Aussage dazu gefunden:
Dumme Fragen gibt es bekanntlich (fast) keine und in diesem Fall ist vielleicht die MemBrain-Hilfe (Abschnitt 'Net Error Calculation') wirklich nicht ganz so explizit, wie sie sein könnte oder sollte...
1.) Die Berechnung des Net Errors erfolgt zunächst immer auf der Basis der im Lesson Editor eingestellten 'Net Error' Lesson.
2.) Die Berechnung des Net Errors erfolgt immer auf Basis normalisierter, also interner Aktivitätswerte der Neuronen. Der benutzerdefinierte Wertebereich der Neuronen (Einstellung 'Normalization' der einzelnen Neuronen) wird bei der Berechnung des Net Errors GRUNDSÄTZLICH nicht berücksichtigt.
3.) Die Berechnung des Net Errors erfolgt immer in zwei grundsätzlich getrennten Schritten:
a) Aufsummierung:
Es wird die Summe gebildet über alle Output-Neuronen und alle Pattern in der eingestellten 'Net Error Lesson'. Wie ein einzelner Summand berechnet wird, ist einstellbar:
a1) Quadrat der Abweichung zwischen Soll- und Istwert des Neurons (wie gesagt alles auf Basis der normalisierten Werte!)
ODER
a2) 1 oder 0 nach vergleich mit einstellbarer Schwelle (normalisierte Werte!)
ODER
a3) Benutzerdefiniert über eine Scriptimplementierung
b) Nachverarbeitung
Die im Schritt a) ermittelte Summe wird nach dem Durchlauf der ganzen 'Net Error Lesson' einer nachgeschalteten Berechnung unterzogen. Hier ist einstellbar:
b1) Mittelwert über alle Summanden, die in die Summe eingeflossen sind
ODER
b2) Wurzel aus dem Mittelwert über alle Summanden, die in die Summe eingeflossen sind
ODER
b3) Keine Nachverarbeitung (die Summe wird also direkt als Net Error ausgegeben)
ODER
B4) Benutzerdefiniert über eine Scriptimplementierung
Je nachdem wie man die Net Error Berechnung konfiguriert, ergibt sich also beim selben Netz und selben Datensatz ein unterschiedlicher Net Error Wert.
Welches die im Einzelfall beste Einstellung ist, muss von Problemstellung zu Problemstellung entschieden werden.
Beispiel 1:
Fragestellung: Wie viele der Testmuster wurden richtig erkannt?
--> Kombination a2 mit b3
--> Als Beurteilungsschwelle für 'richtig erkannt' trägt man seine persönlich zu definierende Akzeptanzschwelle ein:
Annahme: Ausgangsneuron mit der Aktivierungsfunktion 'LOGISTIC' wird verwendet. Die LOGISTIC Funktion hat einen internen bzw. normalisierten Wertebereich von 0 .. 1.
Da könnte eine Einstellung der Schwelle auf 0.1 Sinn machen: Damit würde eine 1 aufsummiert, wenn die (absolute) Abweichung zwischen Ziel- und Istwert eines Neurons größer als 0.1 ist, eine 0 andernfalls.
Die Summe aus allen Summanden gibt dann die Anzahl 'Fehlentscheidungen' des Netzes über alle Pattern der 'Net Error Lesson' an. Wenn das Netz mehrere Ausgangsneuronen hat, können pro Pattern natürlich auch mehrere Fehlentscheidungen entstehen.
Beispiel 2:
Fragestellung: Wie hoch ist der prozentuale Anteil an Fehlentscheidungen des Netzes?
--> Kombination a2 mit b1
Bzgl. der 'Fehlentscheidungsschwelle' gilt das selbe wie oben. Es wird nun ein Wert zwischen 0 und 1 als Net Error berechnet (entspricht 0 .. 100 % Fehlentscheidungen)
Beispiel 3:
Fragestellung: Wie hoch ist die mittlere Abweichung über alle Output-Neuronen und alle Pattern?
--> Kombination a1 mit b2
Das wird man also evtl. anwenden, wenn die Netzausgänge nicht als binäre Entscheidung bzw. Klassifizierung interpretiert werden, sondern skalare Werte für Zielparameter repräsentieren. Hierbei lässt sich evtl. nur schwer eine 'Fehlentscheidungsschwelle' definieren.
Ich hoffe, die Beispiele helfen beim Verständnis?
Viele Grüße und viel Erfolg!