Start · Sprachen · PHP · Referenz · fann_set_sarprop_weight_decay_shift

fann_set_sarprop_weight_decay_shift

Funktion

Setzt die SARPROP-Gewichts-Decay-Verschiebung (Weight Decay Shift) für ein FANN-Netzwerk.

seit PHP 5.2.0 Kategorie: misc

Signatur

fann_set_sarprop_weight_decay_shift(resource $ann, float $sarprop_weight_decay_shift): bool

Beschreibung

fann_set_sarprop_weight_decay_shift() legt den Wert der sogenannten Weight Decay Shift-Komponente des SARPROP-Trainingsalgorithmus (Self-Adaptive Resilient Propagation) fest. Dieser Parameter beeinflusst, wie stark die Gewichte eines neuronalen Netzes während des Trainings in Richtung Null gezogen werden, um Überanpassung (Overfitting) zu reduzieren.

SARPROP ist eine Erweiterung des RPROP-Algorithmus (Resilient Propagation) und verwendet mehrere interne Parameter, um das Training zu steuern. Der Weight Decay Shift ist einer dieser Parameter: Er verschiebt den Punkt, ab dem der Gewichtszerfall effektiv wirksam wird. Ein typischer Standardwert liegt bei -6.644.

Die Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP und steht nur dann zur Verfügung, wenn PHP mit der FANN-Bibliothek kompiliert bzw. die Erweiterung geladen wurde. Sie sollte vor dem Starten des Trainings mit fann_train_on_data() oder ähnlichen Funktionen aufgerufen werden.

Den aktuellen Wert kann man mit fann_get_sarprop_weight_decay_shift() abfragen. Eine Anpassung dieses Parameters ist nur dann sinnvoll, wenn der SARPROP-Trainingsalgorithmus aktiv ist und man das Trainingsverhalten des Netzes gezielt steuern möchte.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netzwerk-Ressource, die zuvor mit z. B. fann_create_standard() erzeugt wurde.
$sarprop_weight_decay_shift Pflicht float Der neue Wert für die SARPROP-Gewichts-Decay-Verschiebung. Typischerweise ein negativer Fließkommazahl-Wert wie -6.644.

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

Beispiele

SARPROP Weight Decay Shift setzen und Netzwerk trainieren

<?php
// Netzwerk 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);

    // Weight Decay Shift anpassen
    $result = fann_set_sarprop_weight_decay_shift($ann, -6.644);

    if ($result) {
        echo "Weight Decay Shift erfolgreich gesetzt." . PHP_EOL;
        echo "Aktueller Wert: " . fann_get_sarprop_weight_decay_shift($ann) . PHP_EOL;
    } else {
        echo "Fehler beim Setzen des Weight Decay Shift." . PHP_EOL;
    }

    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des Netzwerks." . PHP_EOL;
}
?>
Weight Decay Shift erfolgreich gesetzt. Aktueller Wert: -6.644

Vergleich verschiedener Weight Decay Shift Werte

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

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

    $werte = [-3.0, -6.644, -10.0];

    foreach ($werte as $wert) {
        fann_set_sarprop_weight_decay_shift($ann, $wert);
        $gesetzt = fann_get_sarprop_weight_decay_shift($ann);
        echo "Gesetzter Wert: {$wert}, Gelesener Wert: {$gesetzt}" . PHP_EOL;
    }

    fann_destroy($ann);
}
?>
Gesetzter Wert: -3, Gelesener Wert: -3 Gesetzter Wert: -6.644, Gelesener Wert: -6.644 Gesetzter Wert: -10, Gelesener Wert: -10

// Wichtig · Fallstricke

Wichtig: Diese Funktion hat nur dann eine Wirkung, wenn der Trainingsalgorithmus tatsächlich auf FANN_TRAIN_SARPROP gesetzt ist. Bei anderen Algorithmen wie RPROP oder Backpropagation wird dieser Parameter ignoriert.

Die FANN-PHP-Erweiterung ist nicht in der Standard-PHP-Distribution enthalten und muss separat installiert werden. Ab PHP 8.0 ist die Verfügbarkeit dieser Erweiterung eingeschränkt — bitte die Kompatibilität der FANN-Erweiterung mit der verwendeten PHP-Version prüfen.