Start · Sprachen · PHP · Referenz · fann_set_cascade_min_out_epochs

fann_set_cascade_min_out_epochs

Funktion

Setzt die minimale Anzahl der Ausgabe-Epochen im Cascade-Training eines FANN-Netzwerks.

seit PHP 5.2.0 Kategorie: misc

Signatur

fann_set_cascade_min_out_epochs(resource $ann, int $cascade_min_out_epochs): bool

Beschreibung

fann_set_cascade_min_out_epochs legt fest, wie viele Epochen mindestens für das Training der Ausgabe-Verbindungen (Output Connections) im Cascade-Correlation-Algorithmus durchgeführt werden müssen, bevor das Training abgebrochen werden kann. Dieser Wert wirkt als untere Schranke für die Trainingsschleife auf der Ausgabeschicht.

Beim Cascade-Training werden zunächst Kandidaten-Neuronen trainiert und dann schrittweise dem Netzwerk hinzugefügt. Anschließend werden die Ausgabe-Gewichte neu trainiert. Der Parameter cascade_min_out_epochs steuert, wie viele dieser Ausgabe-Trainingsiterationen mindestens absolviert werden müssen, unabhängig davon, ob die Fehlergrenze bereits unterschritten wurde.

Ein zu kleiner Wert kann dazu führen, dass das Ausgabe-Training vorzeitig beendet wird, bevor die Gewichte optimal konvergiert sind. Ein zu großer Wert erhöht die Trainingszeit, kann jedoch die Stabilität verbessern. Die Funktion gehört zur FANN-Erweiterung (Fast Artificial Neural Network Library) und setzt voraus, dass das PHP-Modul fann installiert ist.

Den aktuellen Wert kann man mit fann_get_cascade_min_out_epochs abfragen. Diese Einstellung ist besonders relevant, wenn das Cascade-Training in Kombination mit einer Fehler-Abbruchbedingung eingesetzt wird und sichergestellt werden soll, dass mindestens eine Mindestanzahl an Epochen durchgeführt wird.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netzwerk-Ressource, erzeugt z. B. mit fann_create_standard.
$cascade_min_out_epochs Pflicht int Die minimale Anzahl der Ausgabe-Epochen als positive ganze Zahl. Standardmäßig ist dieser Wert in der FANN-Bibliothek auf 50 gesetzt.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. bei einer ungültigen Netzwerk-Ressource oder einem ungültigen Wert).

Beispiele

Minimale Ausgabe-Epochen für Cascade-Training setzen

<?php
// Netzwerk erstellen: 2 Eingaben, 1 versteckte Schicht, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);

if ($ann) {
    // Aktuellen Wert auslesen
    $current = fann_get_cascade_min_out_epochs($ann);
    echo "Aktueller Mindestwert fuer Out-Epochen: " . $current . PHP_EOL;

    // Neuen Mindestwert setzen
    if (fann_set_cascade_min_out_epochs($ann, 100)) {
        echo "Neuer Mindestwert erfolgreich gesetzt." . PHP_EOL;
        echo "Neuer Wert: " . fann_get_cascade_min_out_epochs($ann) . PHP_EOL;
    } else {
        echo "Fehler beim Setzen des Wertes." . PHP_EOL;
    }

    fann_destroy($ann);
}
Aktueller Mindestwert fuer Out-Epochen: 50 Neuer Mindestwert erfolgreich gesetzt. Neuer Wert: 100

Cascade-Training mit angepassten Epochen-Grenzen

<?php
$ann = fann_create_standard(3, 2, 4, 1);

if ($ann) {
    // Mindest- und Höchstwert für Out-Epochen konfigurieren
    fann_set_cascade_min_out_epochs($ann, 75);
    fann_set_cascade_max_out_epochs($ann, 500);

    echo "Min Out-Epochen: " . fann_get_cascade_min_out_epochs($ann) . PHP_EOL;
    echo "Max Out-Epochen: " . fann_get_cascade_max_out_epochs($ann) . PHP_EOL;

    // Trainingsdaten laden und Cascade-Training starten
    $train_data = fann_read_train_from_file('xor.data');
    if ($train_data) {
        fann_cascadetrain_on_data($ann, $train_data, 100, 10, 0.001);
        fann_save($ann, 'xor_cascade.net');
        fann_destroy_train($train_data);
    }

    fann_destroy($ann);
}
Min Out-Epochen: 75 Max Out-Epochen: 500

// Wichtig · Fallstricke

Voraussetzung: Die PHP-FANN-Erweiterung muss installiert und aktiviert sein (extension=fann in der php.ini). Diese Erweiterung ist nicht standardmäßig in PHP enthalten und muss über PECL installiert werden.

Der Wert muss eine positive ganze Zahl sein und sollte kleiner oder gleich dem mit fann_set_cascade_max_out_epochs gesetzten Maximalwert sein, da sonst ein logisch inkonsistentes Trainingsverhalten entstehen kann. Die FANN-Bibliothek selbst gibt in solchen Fällen möglicherweise keinen Fehler zurück.