Signatur
Beschreibung
Die Funktion fann_set_sarprop_step_error_shift legt den Wert der Schrittfehlerverschiebung (step error shift) für den SARPROP-Trainingsalgorithmus eines künstlichen neuronalen Netzes fest. SARPROP (Self-Adapting Resilient Propagation) ist eine Erweiterung des RPROP-Algorithmus und enthält zusätzliche Parameter, die das Lernverhalten steuern.
Die Schrittfehlerverschiebung beeinflusst, wie der Algorithmus den Fehler beim Anpassen der Gewichte zwischen zwei Epochen bewertet. Ein höherer Wert verschiebt den Referenzfehler nach oben, was die Reaktion des Algorithmus auf Fehleränderungen beeinflusst und das Training stabiler machen kann.
Diese Funktion ist nur relevant, wenn als Trainingsalgorithmus FANN_TRAIN_SARPROP gewählt wurde. Der aktuelle Wert kann mit fann_get_sarprop_step_error_shift abgefragt werden. Der Standard-Standardwert beträgt 0.1.
Die FANN-Erweiterung muss kompiliert und aktiviert sein, damit diese Funktion verfügbar ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit fann_create_standard oder ähnlichen Funktionen erstellt wurde. |
|
| $sarprop_step_error_shift Pflicht | float | Der neue Wert für die SARPROP-Schrittfehlerverschiebung. Typischerweise ein kleiner positiver Gleitkommawert (Standard: 0.1). |
Rückgabewert
true bei Erfolg zurück, oder false wenn ein Fehler aufgetreten ist (z. B. ungültige Netzwerk-Ressource).Beispiele
SARPROP-Schrittfehlerverschiebung setzen und trainieren
<?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);
// SARPROP-Schrittfehlerverschiebung auf 0.1 setzen
if (fann_set_sarprop_step_error_shift($ann, 0.1)) {
echo "Schrittfehlerverschiebung erfolgreich gesetzt.\n";
} else {
echo "Fehler beim Setzen der Schrittfehlerverschiebung.\n";
}
// Aktuellen Wert auslesen
$shift = fann_get_sarprop_step_error_shift($ann);
echo "Aktueller Wert: " . $shift . "\n";
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des neuronalen Netzes.\n";
}
?>
Verschiedene Werte vergleichen
<?php
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
fann_set_training_algorithm($ann, FANN_TRAIN_SARPROP);
// Verschiedene Verschiebungswerte testen
$testWerte = [0.01, 0.1, 0.5, 1.0];
foreach ($testWerte as $wert) {
fann_set_sarprop_step_error_shift($ann, $wert);
$gesetzt = fann_get_sarprop_step_error_shift($ann);
echo "Gesetzt: $wert → Gelesen: $gesetzt\n";
}
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Hinweis: Diese Funktion hat nur Auswirkung, wenn der Trainingsalgorithmus auf FANN_TRAIN_SARPROP gesetzt ist. Bei anderen Algorithmen wie FANN_TRAIN_RPROP oder FANN_TRAIN_BACKPROP wird dieser Parameter ignoriert.
Die FANN-PHP-Erweiterung befindet sich im PECL-Repository und wird nicht standardmäßig mit PHP ausgeliefert. Stellen Sie sicher, dass die Erweiterung korrekt installiert ist (extension=fann.so in der php.ini).