Signatur
Beschreibung
Die Funktion fann_set_cascade_output_stagnation_epochs legt fest, wie viele aufeinanderfolgende Epochen ohne nennenswerte Verbesserung des Ausgabefehlers das Cascade-Correlation-Training als stagnatiert betrachtet. Tritt eine Stagnation ein, wird das Training der Ausgabeverbindungen vorzeitig beendet und das Netzwerk ggf. um eine neue Kandidatenneurone erweitert.
Dieser Parameter ist Teil des Cascade-Correlation-Lernalgorithmus (FANN Cascade). Beim Cascade-Training werden zunächst die Ausgabegewichte trainiert, bis der Fehler sich nicht mehr signifikant verbessert – das entspricht einer Stagnation. Ist die Stagnationsgrenze erreicht, wird ein neues verstecktes Neuron dem Netzwerk hinzugefügt, bevor das Training der Ausgabegewichte erneut beginnt.
Ein kleinerer Wert führt zu einem schnelleren Abbruch des Ausgabetrainings und damit zu häufigerem Hinzufügen neuer Neuronen, was das Netzwerk tendenziell schneller wachsen lässt, aber auch weniger Zeit für die Optimierung der Ausgabegewichte lässt. Ein größerer Wert gibt dem Training mehr Zeit zur Konvergenz, kann aber länger dauern.
Diese Funktion ist nur verfügbar, wenn PHP mit der FANN-Erweiterung kompiliert wurde (ext/fann).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit fann_create_standard() oder einer ähnlichen Funktion erzeugt wurde. |
|
| $cascade_output_stagnation_epochs Pflicht | int | Die Anzahl der Epochen ohne ausreichende Verbesserung des Ausgabefehlers, nach der das Training als stagnatiert gilt. Typischerweise ein positiver ganzzahliger Wert, z. B. 12. |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. wenn die übergebene Ressource ungültig ist).Beispiele
Stagnations-Epochen für ein Cascade-Netz setzen
<?php
// Netzwerk erstellen: 2 Eingaben, 1 Ausgabe
$ann = fann_create_standard(2, 2, 1);
if ($ann) {
// Stagnations-Epochen auf 15 setzen
if (fann_set_cascade_output_stagnation_epochs($ann, 15)) {
echo "Cascade-Output-Stagnation-Epochen erfolgreich gesetzt." . PHP_EOL;
} else {
echo "Fehler beim Setzen der Stagnations-Epochen." . PHP_EOL;
}
// Aktuellen Wert auslesen zur Bestätigung
$epochs = fann_get_cascade_output_stagnation_epochs($ann);
echo "Aktueller Wert: " . $epochs . PHP_EOL;
fann_destroy($ann);
}
Cascade-Training mit angepassten Stagnations-Epochen
<?php
// XOR-Trainingsdaten laden
$train_data = fann_read_train_from_file('xor.data');
// Cascade-Netzwerk erstellen
$ann = fann_create_shortcut(2, 2, 1);
if ($ann && $train_data) {
// Stagnationsgrenze auf 10 Epochen setzen (schnelleres Wachstum)
fann_set_cascade_output_stagnation_epochs($ann, 10);
// Cascade-Training starten
fann_cascadetrain_on_data($ann, $train_data, 300, 1, 0.001);
echo "Training abgeschlossen. Maximale Neuronen: " . fann_get_total_neurons($ann) . PHP_EOL;
fann_save($ann, 'xor_cascade.net');
fann_destroy($ann);
fann_destroy_train($train_data);
}
// Wichtig · Fallstricke
Hinweis: Diese Funktion ist ausschließlich für den Cascade-Correlation-Lernalgorithmus relevant. Bei Verwendung anderer Trainingsalgorithmen (z. B. RPROP oder Backpropagation) hat dieser Parameter keine Auswirkung.
Der Standardwert für cascade_output_stagnation_epochs beträgt laut FANN-Bibliothek 12. Zu kleine Werte können dazu führen, dass das Netzwerk unnötig viele Neuronen hinzufügt, ohne den Ausgabefehler ausreichend optimiert zu haben.
Die FANN-Erweiterung muss explizit installiert sein (pecl install fann). Ab PHP 8.0 wird die Ressource durch ein Objekt vom Typ FANNConnection ersetzt – prüfen Sie die Kompatibilität Ihrer FANN-Erweiterungsversion.