Signatur
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
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;
}
?>
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);
}
?>
// 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.