Start · Sprachen · PHP · Referenz · fann_set_sarprop_step_error_threshold_factor

fann_set_sarprop_step_error_threshold_factor

Funktion

Setzt den SARPROP-Schwellenwertfaktor für den Schrittfehler eines neuronalen Netzes.

seit PHP 5.3.0 Kategorie: misc

Signatur

fann_set_sarprop_step_error_threshold_factor(resource $ann, float $sarprop_step_error_threshold_factor): bool

Beschreibung

Die Funktion fann_set_sarprop_step_error_threshold_factor legt den Schwellenwertfaktor für den Schrittfehler beim SARPROP-Trainingsalgorithmus (Self-Adaptive RProp) fest. Dieser Parameter beeinflusst, wie der Algorithmus auf Änderungen des Fehlers zwischen Trainingsschritten reagiert und wann ein Schritt als zu groß oder zu klein betrachtet wird.

SARPROP ist eine Weiterentwicklung des klassischen RProp-Algorithmus und versucht, die Lernrate dynamisch anzupassen, um bessere Konvergenzeigenschaften zu erzielen. Der Schrittfehler-Schwellenwertfaktor ist einer von mehreren Hyperparametern, die das Verhalten dieses Algorithmus steuern.

Damit diese Funktion wirkt, muss das neuronale Netz zuvor mit fann_set_training_algorithm() auf den SARPROP-Algorithmus (FANN_TRAIN_SARPROP) eingestellt worden sein. Andernfalls hat die Einstellung keinen Effekt auf das Training.

Die Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network) für PHP und steht nur zur Verfügung, wenn diese Erweiterung kompiliert und aktiviert ist.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netz-Ressource, die zuvor mit fann_create_standard() oder einer ähnlichen Funktion erstellt wurde.
$sarprop_step_error_threshold_factor Pflicht float Der neue Schwellenwertfaktor für den Schrittfehler im SARPROP-Algorithmus. Steuert, ab welchem Fehlerverhältnis ein Trainingsschritt als kritisch eingestuft wird.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Parameter erfolgreich gesetzt wurde, andernfalls false (z. B. bei ungültiger Netz-Ressource).

Beispiele

SARPROP-Netz konfigurieren und Schwellenwertfaktor setzen

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

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

    // Schrittfehler-Schwellenwertfaktor setzen
    $result = fann_set_sarprop_step_error_threshold_factor($ann, 0.1);

    if ($result) {
        echo "Schwellenwertfaktor erfolgreich gesetzt." . PHP_EOL;
        // Aktuellen Wert auslesen zur Kontrolle
        $factor = fann_get_sarprop_step_error_threshold_factor($ann);
        echo "Aktueller Faktor: " . $factor . PHP_EOL;
    } else {
        echo "Fehler beim Setzen des Schwellenwertfaktors." . PHP_EOL;
    }

    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
Schwellenwertfaktor erfolgreich gesetzt. Aktueller Faktor: 0.1

SARPROP-Parameter gemeinsam konfigurieren

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

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

    // Mehrere SARPROP-Parameter konfigurieren
    fann_set_sarprop_weight_decay_shift($ann, -6.644);
    fann_set_sarprop_step_error_threshold_factor($ann, 0.1);
    fann_set_sarprop_step_error_shift($ann, 1.385);
    fann_set_sarprop_temperature($ann, 0.015);

    echo "SARPROP vollständig konfiguriert." . PHP_EOL;
    echo "Schrittfehler-Schwellenwertfaktor: "
        . fann_get_sarprop_step_error_threshold_factor($ann) . PHP_EOL;

    fann_destroy($ann);
}
?>
SARPROP vollständig konfiguriert. Schrittfehler-Schwellenwertfaktor: 0.1

// Wichtig · Fallstricke

Hinweis zur Erweiterungsverfügbarkeit: Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten. Sie muss über PECL installiert (pecl install fann) und in der php.ini aktiviert werden (extension=fann.so).

Algorithmus-Abhängigkeit: Dieser Parameter hat nur dann eine Wirkung, wenn der Trainingsalgorithmus explizit auf FANN_TRAIN_SARPROP gesetzt wurde. Bei anderen Algorithmen wie FANN_TRAIN_RPROP oder FANN_TRAIN_BACKPROP wird dieser Wert ignoriert.

Der Standardwert des Schwellenwertfaktors kann mit fann_get_sarprop_step_error_threshold_factor() abgerufen werden. Es empfiehlt sich, zunächst mit den Standardwerten zu trainieren und nur bei unzureichender Konvergenz zu experimentieren.