Signatur
Beschreibung
fann_set_cascade_output_change_fraction legt den Schwellenwert fest, der beim Cascade-Correlation-Training bestimmt, wann das Training der Ausgabeneuronen beendet wird. Der Wert repräsentiert den minimalen Anteil der Verbesserung des mittleren quadratischen Fehlers (MSE), der während der letzten fann_get_cascade_output_stagnation_epochs-Epochen erzielt werden muss, damit das Training als noch fortschreitend gilt.
Liegt die Verbesserung des MSE unterhalb dieses Bruchteils, gilt das Training der Ausgabeneuronen als stagnierend, und der Cascade-Algorithmus fährt mit dem Hinzufügen eines neuen versteckten Neurons fort. Ein kleinerer Wert bedeutet, dass das Training länger fortgesetzt wird, bevor ein neues Neuron hinzugefügt wird; ein größerer Wert führt dazu, dass früher neue Neuronen eingefügt werden.
Diese Funktion ist nur verfügbar, wenn die FANN-Erweiterung (Fast Artificial Neural Network Library) installiert ist. Sie eignet sich vor allem für Anwendungsfälle, bei denen das Cascade-Correlation-Verfahren eingesetzt wird und das Trainingsverhalten feingranular gesteuert werden soll.
Der Standardwert ist typischerweise 0.01. Mit fann_get_cascade_output_change_fraction kann der aktuell gesetzte Wert abgerufen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit Funktionen wie fann_create_standard oder fann_create_from_file erzeugt wurde. |
|
| $cascade_output_change_fraction Pflicht | float | Ein Fließkommazahl zwischen 0.0 und 1.0, die den minimalen relativen MSE-Verbesserungsanteil angibt, der erreicht werden muss, damit das Training der Ausgabeneuronen als noch fortschreitend gilt. Typischer Standardwert: 0.01. |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. bei einer ungültigen Netzwerk-Ressource).Beispiele
Cascade-Output-Change-Fraction setzen und Netzwerk trainieren
<?php
// Netzwerk mit 2 Eingaben, 1 verstecter Schicht und 1 Ausgabe erstellen
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Ausgabe-Change-Fraction auf 0.01 setzen (1 % Verbesserung erforderlich)
$result = fann_set_cascade_output_change_fraction($ann, 0.01);
if ($result) {
echo "cascade_output_change_fraction erfolgreich gesetzt.\n";
// Aktuellen Wert zur Kontrolle ausgeben
echo "Aktueller Wert: " . fann_get_cascade_output_change_fraction($ann) . "\n";
} else {
echo "Fehler beim Setzen des Wertes.\n";
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des Netzwerks.\n";
}
?>
Aggressiveres Training durch höheren Schwellenwert
<?php
// Netzwerk laden
$ann = fann_create_from_file('mein_netzwerk.net');
if ($ann) {
// Höherer Wert: Neuronen werden schneller hinzugefügt
fann_set_cascade_output_change_fraction($ann, 0.05);
// Stagnationsperiode ebenfalls anpassen
fann_set_cascade_output_stagnation_epochs($ann, 8);
echo "Cascade-Parameter konfiguriert:\n";
echo " Output Change Fraction: " . fann_get_cascade_output_change_fraction($ann) . "\n";
echo " Output Stagnation Epochs: " . fann_get_cascade_output_stagnation_epochs($ann) . "\n";
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Verfügbarkeit: Diese Funktion ist nur verfügbar, wenn PHP mit der FANN-Erweiterung kompiliert wurde. Prüfe die Verfügbarkeit mit extension_loaded('fann').
Wertebereich: Der Wert sollte zwischen 0.0 und 1.0 liegen. Zu kleine Werte (nahe 0.0) können dazu führen, dass das Training sehr lange dauert und kaum neue Neuronen hinzugefügt werden. Zu große Werte (nahe 1.0) können das Netz zu schnell wachsen lassen, ohne ausreichend zu trainieren.
Zusammenspiel: Dieser Parameter wirkt zusammen mit fann_set_cascade_output_stagnation_epochs. Beide Werte gemeinsam bestimmen das Abbruchkriterium für das Ausgabe-Training im Cascade-Verfahren.