Signatur
Beschreibung
fann_set_cascade_max_out_epochs legt fest, wie viele Epochen maximal für das Training der Ausgabe-Verbindungen während des Cascade-Correlation-Algorithmus verwendet werden dürfen. Beim Cascade-Correlation-Training werden in zwei abwechselnden Phasen zunächst neue Kandidaten-Neuronen und dann die Ausgabe-Verbindungen trainiert – diese Funktion steuert das Limit für die zweite Phase.
Durch das Setzen eines sinnvollen Maximalwerts lässt sich das Übertraining der Ausgabe-Verbindungen verhindern und die Trainingszeit kontrollieren. Ein zu niedriger Wert kann dazu führen, dass das Netz nicht ausreichend konvergiert; ein zu hoher Wert erhöht die Rechenzeit ohne nennenswerten Gewinn an Genauigkeit.
Der Standardwert beträgt typischerweise 150 Epochen. Die zugehörige Lesefunktion lautet fann_get_cascade_max_out_epochs. Diese Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Ressource, die zuvor mit fann_create_standard, fann_create_sparse oder einer ähnlichen Funktion erstellt wurde. |
|
| $cascade_max_out_epochs Pflicht | int | Die maximale Anzahl an Ausgabe-Epochen (positiver ganzzahliger Wert), die während des Cascade-Correlation-Trainings für das Training der Ausgabe-Verbindungen verwendet werden dürfen. |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. bei einer ungültigen Ressource).Beispiele
Maximale Ausgabe-Epochen für ein Cascade-Netz setzen
<?php
// Neues FANN-Netz mit 2 Eingabe-, 1 versteckten und 1 Ausgabe-Neuron erstellen
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Maximale Ausgabe-Epochen auf 200 setzen
if (fann_set_cascade_max_out_epochs($ann, 200)) {
echo "cascade_max_out_epochs erfolgreich auf 200 gesetzt." . PHP_EOL;
} else {
echo "Fehler beim Setzen der max. Ausgabe-Epochen." . PHP_EOL;
}
// Aktuellen Wert auslesen und ausgeben
$current = fann_get_cascade_max_out_epochs($ann);
echo "Aktueller Wert: " . $current . PHP_EOL;
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des FANN-Netzes." . PHP_EOL;
}
?>
Cascade-Training mit angepassten Epochen-Limits
<?php
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
// Ausgabe-Epochen auf 300 erhöhen, um bessere Konvergenz zu ermöglichen
fann_set_cascade_max_out_epochs($ann, 300);
// Auch Kandidaten-Epochen anpassen
fann_set_cascade_max_cand_epochs($ann, 150);
echo "Konfiguration:" . PHP_EOL;
echo "Max. Ausgabe-Epochen: " . fann_get_cascade_max_out_epochs($ann) . PHP_EOL;
echo "Max. Kandidaten-Epochen: " . fann_get_cascade_max_cand_epochs($ann) . PHP_EOL;
// Trainings-Datei laden und Cascade-Training starten
$train_data = fann_read_train_from_file('train_data.fann');
if ($train_data) {
fann_cascadetrain_on_data($ann, $train_data, 100, 1, 0.001);
fann_save($ann, 'trained_cascade.fann');
fann_destroy_train($train_data);
}
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Hinweis zur FANN-Erweiterung: Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (z. B. via PECL: pecl install fann). Ab PHP 8.0 ist die Verfügbarkeit eingeschränkt, da die Erweiterung nicht aktiv gepflegt wird.
Wertebereich: Der Parameter cascade_max_out_epochs sollte ein positiver ganzzahliger Wert sein. Ein Wert von 0 oder negativen Zahlen kann zu unerwartetem Verhalten führen.
Zusammenspiel mit anderen Einstellungen: Dieser Wert wirkt zusammen mit fann_set_cascade_output_change_fraction – das Training der Ausgabe-Verbindungen wird beendet, sobald entweder die maximale Epochenzahl erreicht oder die Änderungsrate unter die definierte Schwelle fällt.