Start · Sprachen · PHP · Referenz · fann_set_cascade_max_out_epochs

fann_set_cascade_max_out_epochs

Funktion

Setzt die maximale Anzahl der Ausgabe-Epochen für das Cascade-Correlation-Training in einem FANN-Netz.

seit PHP 5.2.0 Kategorie: misc

Signatur

fann_set_cascade_max_out_epochs(resource $ann, int $cascade_max_out_epochs): bool

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

Typ
bool
Beschreibung
Gibt 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_max_out_epochs erfolgreich auf 200 gesetzt. Aktueller Wert: 200

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);
}
?>
Konfiguration: Max. Ausgabe-Epochen: 300 Max. Kandidaten-Epochen: 150

// 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.