Start · Sprachen · PHP · Referenz · fann_get_sarprop_step_error_threshold_factor

fann_get_sarprop_step_error_threshold_factor

Funktion

Gibt den SARPROP-Schwellenwertfaktor für den Schrittfehler eines neuronalen Netzes zurück.

seit PHP 7.0.0 Kategorie: misc

Signatur

fann_get_sarprop_step_error_threshold_factor(resource $ann): float

Beschreibung

fann_get_sarprop_step_error_threshold_factor liest den aktuell eingestellten Schwellenwertfaktor für den Schrittfehler (englisch: step error threshold factor) aus einem mit der FANN-Bibliothek erstellten neuronalen Netz aus. Dieser Faktor wird ausschließlich vom SARPROP-Trainingsalgorithmus verwendet.

SARPROP (Self-Adaptive Resilient Propagation) ist eine Weiterentwicklung des klassischen RPROP-Algorithmus. Der Schrittfehler-Schwellenwertfaktor beeinflusst, ab welchem relativen Fehleranteil die Schrittweite während des Trainings angepasst wird. Ein höherer Wert führt dazu, dass Schrittanpassungen seltener ausgelöst werden.

Der Standardwert dieses Parameters beträgt 0.1. Um den Wert zu setzen, kann die Gegenfunktion fann_set_sarprop_step_error_threshold_factor verwendet werden. Diese Einstellung ist nur relevant, wenn FANN_TRAIN_SARPROP als Trainingsalgorithmus gesetzt ist.

Die FANN-Erweiterung muss in PHP kompiliert und aktiviert sein, damit diese Funktion zur Verfügung steht. Ab PHP 8.0 wurde die FANN-Erweiterung aus dem offiziellen PECL-Kern entfernt und steht nur noch als externe Erweiterung bereit.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Ressource, die mit Funktionen wie fann_create_standard erstellt wurde.

Rückgabewert

Typ
float
Beschreibung
Gibt den aktuellen SARPROP-Schwellenwertfaktor für den Schrittfehler als Gleitkommazahl zurück, oder false bei einem Fehler (z. B. ungültige Ressource).

Beispiele

Schwellenwertfaktor auslesen und ausgeben

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

if ($ann) {
    // SARPROP als Trainingsalgorithmus setzen
    fann_set_training_algorithm($ann, FANN_TRAIN_SARPROP);

    // Aktuellen Schwellenwertfaktor abfragen
    $threshold_factor = fann_get_sarprop_step_error_threshold_factor($ann);
    echo "SARPROP Schrittfehler-Schwellenwertfaktor: " . $threshold_factor . PHP_EOL;

    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
SARPROP Schrittfehler-Schwellenwertfaktor: 0.1

Schwellenwertfaktor setzen und anschließend prüfen

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

if ($ann) {
    fann_set_training_algorithm($ann, FANN_TRAIN_SARPROP);

    // Neuen Schwellenwertfaktor setzen
    fann_set_sarprop_step_error_threshold_factor($ann, 0.25);

    // Gesetzten Wert zurücklesen und verifizieren
    $factor = fann_get_sarprop_step_error_threshold_factor($ann);
    if (abs($factor - 0.25) < 1e-6) {
        echo "Schwellenwertfaktor erfolgreich auf 0.25 gesetzt." . PHP_EOL;
    } else {
        echo "Unerwarteter Wert: " . $factor . PHP_EOL;
    }

    fann_destroy($ann);
}
?>
Schwellenwertfaktor erfolgreich auf 0.25 gesetzt.

// Wichtig · Fallstricke

Achtung: Diese Funktion ist nur wirksam, wenn der Trainingsalgorithmus auf FANN_TRAIN_SARPROP gesetzt ist. Bei anderen Algorithmen wie FANN_TRAIN_RPROP oder FANN_TRAIN_BACKPROP hat der Parameter keine Auswirkung auf das Training.

Die FANN-PHP-Erweiterung ist ab PHP 8.0 nicht mehr offiziell im PECL-Verzeichnis gepflegt. Für neue Projekte sollte geprüft werden, ob eine alternative Bibliothek oder eine native PHP-ML-Lösung besser geeignet ist.