Signatur
Beschreibung
fann_set_rprop_delta_zero legt den Startwert der Schrittweite für den RPROP-Algorithmus (Resilient Backpropagation) fest. Dieser Wert bestimmt, wie groß die Gewichtsänderungen zu Beginn des Trainings sind, bevor die adaptiven Anpassungen des RPROP-Algorithmus greifen.
Der RPROP-Algorithmus passt die Schrittweite während des Trainings dynamisch an, indem er sie erhöht oder verringert, abhängig davon, ob der Gradient sein Vorzeichen beibehält oder wechselt. Der Delta Zero-Wert gibt dabei die initiale Schrittweite vor, von der aus diese Anpassung startet.
Ein zu kleiner Startwert kann das Training verlangsamen, da mehr Iterationen benötigt werden, um eine effektive Schrittweite zu erreichen. Ein zu großer Wert kann anfänglich zu Instabilität führen. Der Standardwert in der FANN-Bibliothek beträgt typischerweise 0.1.
Diese Funktion ist nur relevant, wenn als Trainingsalgorithmus FANN_TRAIN_RPROP verwendet wird. Sie sollte vor dem eigentlichen Training mit fann_train_on_data oder fann_train_on_file aufgerufen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Ressource, die mit fann_create_standard, fann_create_sparse oder fann_create_shortcut erzeugt wurde. |
|
| $rprop_delta_zero Pflicht | float | Die anfängliche Schrittweite (Delta Zero) für den RPROP-Algorithmus. Muss ein positiver Gleitkommawert sein. Typischer Standardwert ist 0.1. |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, oder false im Fehlerfall (z. B. wenn eine ungültige FANN-Ressource übergeben wurde).Beispiele
Anfängliche RPROP-Schrittweite vor dem Training 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) {
// RPROP als Trainingsalgorithmus festlegen
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Anfängliche Schrittweite auf 0.05 setzen (kleiner als Standard)
$result = fann_set_rprop_delta_zero($ann, 0.05);
if ($result) {
echo "Delta Zero erfolgreich gesetzt: " . fann_get_rprop_delta_zero($ann) . PHP_EOL;
} else {
echo "Fehler beim Setzen von Delta Zero." . PHP_EOL;
}
// Training starten
fann_train_on_file($ann, 'trainingsdaten.data', 1000, 10, 0.001);
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
RPROP-Parameter vergleichen und anpassen
<?php
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Aktuelle Werte ausgeben
echo "Standard Delta Zero: " . fann_get_rprop_delta_zero($ann) . PHP_EOL;
echo "Standard Delta Min: " . fann_get_rprop_delta_min($ann) . PHP_EOL;
echo "Standard Delta Max: " . fann_get_rprop_delta_max($ann) . PHP_EOL;
// Angepasste Werte setzen
fann_set_rprop_delta_zero($ann, 0.2);
fann_set_rprop_delta_min($ann, 0.0);
fann_set_rprop_delta_max($ann, 50.0);
echo "Neuer Delta Zero: " . fann_get_rprop_delta_zero($ann) . PHP_EOL;
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Hinweis: Diese Funktion steht nur zur Verfügung, wenn die FANN-Bibliothek (Fast Artificial Neural Network) installiert und die PHP-FANN-Erweiterung aktiviert ist. Sie ist nicht Teil der Standard-PHP-Distribution.
Der Wert für rprop_delta_zero muss positiv sein und sollte zwischen rprop_delta_min und rprop_delta_max liegen, um ein sinnvolles Trainingsverhalten zu gewährleisten. Werte außerhalb dieses Bereichs können zu unerwartetem Trainingsverhalten führen.
Die FANN-PHP-Erweiterung gilt als weitgehend nicht mehr aktiv gepflegt. Für neue Projekte sollte geprüft werden, ob alternative Bibliotheken (z. B. über FFI oder andere ML-Pakete) besser geeignet sind.