Signatur
Beschreibung
fann_set_cascade_candidate_change_fraction legt den sogenannten Cascade Candidate Change Fraction für ein FANN-Netzwerk (Fast Artificial Neural Network) fest. Dieser Wert bestimmt, wie stark sich der Fehler eines Kandidaten-Neurons zwischen zwei Auswertungsperioden ändern muss, damit das Training als noch nicht abgeschlossen gilt und weiterläuft.
Der Wert wird beim Cascade-Correlation-Training verwendet, einem Verfahren, bei dem neue Neuronen schrittweise zum Netzwerk hinzugefügt werden. Ist die Änderung des Fehlers kleiner als dieser Bruchteil (Fraction), wird das Kandidaten-Training frühzeitig beendet. Ein typischer Standardwert liegt bei 0.01 (1 %), was bedeutet, dass mindestens 1 % Verbesserung pro Auswertungsperiode erforderlich ist.
Diese Einstellung beeinflusst direkt die Trainingseffizienz: Ein zu hoher Wert kann dazu führen, dass Kandidaten zu früh verworfen werden, während ein zu niedriger Wert das Training unnötig verlängert. Der passende Wert hängt stark vom jeweiligen Anwendungsfall und der Netzwerktopologie ab.
Die Funktion gehört zur FANN-Extension für PHP und erfordert, dass diese Extension kompiliert und aktiviert ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit Funktionen wie fann_create_standard erstellt wurde. |
|
| $cascade_candidate_change_fraction Pflicht | float | Der neue Cascade-Candidate-Change-Fraction-Wert. Typischerweise ein kleiner positiver Gleitkommawert zwischen 0.0 und 1.0, z. B. 0.01. |
Rückgabewert
true bei Erfolg zurück, oder false, falls ein Fehler aufgetreten ist (z. B. ungültige Netzwerk-Ressource).Beispiele
Cascade-Candidate-Change-Fraction setzen und auslesen
<?php
// Erstelle ein einfaches FANN-Netzwerk mit 2 Eingaben, 1 versteckter Schicht und 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Aktuellen Wert auslesen
$current = fann_get_cascade_candidate_change_fraction($ann);
echo "Aktueller Wert: " . $current . PHP_EOL;
// Neuen Wert setzen (1% Mindeständerung pro Auswertungsperiode)
$result = fann_set_cascade_candidate_change_fraction($ann, 0.01);
if ($result) {
echo "Cascade Candidate Change Fraction erfolgreich gesetzt." . PHP_EOL;
echo "Neuer Wert: " . fann_get_cascade_candidate_change_fraction($ann) . PHP_EOL;
} else {
echo "Fehler beim Setzen des Wertes." . PHP_EOL;
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des Netzwerks." . PHP_EOL;
}
?>
Cascade-Training mit angepasstem Change-Fraction-Wert
<?php
// Netzwerk erstellen
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
// Einen größeren Wert setzen, um das Kandidaten-Training früher zu beenden
fann_set_cascade_candidate_change_fraction($ann, 0.05);
// Anzahl der Auswertungsperioden erhöhen, um dies zu kompensieren
fann_set_cascade_candidate_stagnation_epochs($ann, 16);
echo "Konfiguration abgeschlossen. Bereit für Cascade-Training." . PHP_EOL;
echo "Change Fraction: " . fann_get_cascade_candidate_change_fraction($ann) . PHP_EOL;
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Hinweis zur FANN-Extension: Diese Funktion ist nur verfügbar, wenn die FANN PECL-Extension installiert und aktiviert ist. Überprüfe die Verfügbarkeit mit extension_loaded('fann').
Wertebereich: Obwohl technisch beliebige Float-Werte übergeben werden können, sind nur Werte im Bereich 0.0 bis 1.0 sinnvoll. Negative Werte oder Werte größer als 1 können zu unerwartetem Verhalten beim Training führen.
Zusammenspiel mit anderen Parametern: Der Change-Fraction-Wert wirkt in Kombination mit fann_set_cascade_candidate_stagnation_epochs. Wenn die Fehlerverbesserung über mehrere aufeinanderfolgende Perioden unter dem eingestellten Bruchteil bleibt, wird das Kandidaten-Training als stagnierend betrachtet und beendet.