Start · Sprachen · PHP · Referenz · fann_set_cascade_activation_functions

fann_set_cascade_activation_functions

Funktion

Setzt das Array der Aktivierungsfunktionen, die bei der Cascade-Correlation-Schulung für Kandidaten-Neuronen verwendet werden.

seit PHP 5.2.0 Kategorie: misc

Signatur

fann_set_cascade_activation_functions(resource $ann, array $cascade_activation_functions): bool

Beschreibung

fann_set_cascade_activation_functions legt fest, welche Aktivierungsfunktionen beim Cascade-Correlation-Algorithmus (FANN) für die Kandidaten-Neuronen ausprobiert werden sollen. Der Algorithmus testet alle Kombinationen aus Aktivierungsfunktionen und Steilheitswerten, um das am besten geeignete Neuron zu finden, bevor es dem Netzwerk dauerhaft hinzugefügt wird.

Die Funktion erwartet ein Array aus ganzzahligen Konstanten, die den FANN-Aktivierungsfunktionen entsprechen (z. B. FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN usw.). Je mehr Aktivierungsfunktionen angegeben werden, desto länger dauert jede Trainingsphase, da mehr Kandidaten evaluiert werden müssen, desto besser kann jedoch das Netzwerk an die Problemstellung angepasst werden.

Diese Einstellung ist nur relevant, wenn das Netzwerk mit fann_cascadetrain_on_data oder fann_cascadetrain_on_file trainiert wird. Für Standard-Backpropagation-Training hat diese Funktion keine Auswirkung.

Um die aktuelle Einstellung auszulesen, kann fann_get_cascade_activation_functions verwendet werden.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netzwerk-Ressource, die zuvor mit einer der fann_create_*-Funktionen erstellt wurde.
$cascade_activation_functions Pflicht array Ein Array aus FANN-Aktivierungsfunktionskonstanten (z. B. FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_ELLIOT usw.), die als Kandidaten getestet werden sollen.

Rückgabewert

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

Beispiele

Cascade-Aktivierungsfunktionen für ein neuronales Netzwerk setzen

<?php
// Erstelle ein Cascade-Netzwerk mit 2 Eingabe- und 1 Ausgabe-Neuron
$ann = fann_create_shortcut(2, 1);

if ($ann) {
    // Setze die gewünschten Aktivierungsfunktionen für Kandidaten-Neuronen
    $aktivierungsfunktionen = [
        FANN_SIGMOID,
        FANN_SIGMOID_SYMMETRIC,
        FANN_GAUSSIAN,
        FANN_GAUSSIAN_SYMMETRIC,
        FANN_ELLIOT,
        FANN_ELLIOT_SYMMETRIC,
    ];

    if (fann_set_cascade_activation_functions($ann, $aktivierungsfunktionen)) {
        echo "Aktivierungsfunktionen erfolgreich gesetzt." . PHP_EOL;

        // Zur Kontrolle auslesen
        $gesetzt = fann_get_cascade_activation_functions($ann);
        echo "Anzahl gesetzter Funktionen: " . count($gesetzt) . PHP_EOL;
    } else {
        echo "Fehler beim Setzen der Aktivierungsfunktionen." . PHP_EOL;
    }

    fann_destroy($ann);
}
Aktivierungsfunktionen erfolgreich gesetzt. Anzahl gesetzter Funktionen: 6

Cascade-Training mit angepassten Aktivierungsfunktionen

<?php
$trainFile = 'xor.data';

if (file_exists($trainFile)) {
    $ann = fann_create_shortcut(2, 1);
    $trainingsDaten = fann_read_train_from_file($trainFile);

    if ($ann && $trainingsDaten) {
        // Nur symmetrische Aktivierungsfunktionen verwenden
        fann_set_cascade_activation_functions($ann, [
            FANN_SIGMOID_SYMMETRIC,
            FANN_GAUSSIAN_SYMMETRIC,
            FANN_ELLIOT_SYMMETRIC,
        ]);

        // Cascade-Training durchführen
        fann_cascadetrain_on_data(
            $ann,
            $trainingsDaten,
            150,   // max. Neuronen
            1,     // Neuronen zwischen Reports
            0.001  // gewünschter Fehler
        );

        echo "Training abgeschlossen. MSE: " . fann_get_MSE($ann) . PHP_EOL;

        fann_destroy($ann);
        fann_destroy_train($trainingsDaten);
    }
}

// Wichtig · Fallstricke

Hinweis zur FANN-Extension: Diese Funktion ist nur verfügbar, wenn die PHP-FANN-Erweiterung (php-fann) installiert und aktiviert ist. Sie ist nicht Teil der PHP-Standardinstallation.

Kombination mit Steilheitswerten: Die Kandidaten werden aus allen Kombinationen von Aktivierungsfunktionen (gesetzt über diese Funktion) und Steilheitswerten (gesetzt über fann_set_cascade_activation_steepnesses) gebildet. Eine große Anzahl von Kombinationen kann das Training erheblich verlangsamen.

Nur für Cascade-Training relevant: Diese Einstellung hat ausschließlich Auswirkung auf den Cascade-Correlation-Algorithmus. Bei normalen Netzwerken ohne Cascade-Training wird sie ignoriert.