Signatur
Beschreibung
fann_set_rprop_delta_min legt die untere Grenze für die Schrittweite (Delta) fest, die beim RPROP-Algorithmus (Resilient Backpropagation) verwendet wird. Diese minimale Schrittweite verhindert, dass die Gewichtsanpassungen im Laufe des Trainings zu klein werden und das Netz praktisch aufhört zu lernen.
Der RPROP-Algorithmus passt die Gewichte eines neuronalen Netzes anhand des Vorzeichens des Gradienten an. Die Schrittweite wird dabei dynamisch vergrößert oder verkleinert, jedoch niemals unter den durch diese Funktion gesetzten Minimalwert. Ein typischer Standardwert liegt bei 0.0 (kein unteres Limit) oder sehr kleinen positiven Zahlen wie 1.0e-6.
Diese Einstellung ist besonders relevant, wenn das Netz mit FANN_TRAIN_RPROP oder FANN_TRAIN_IRPROP_PLUS trainiert wird. Für andere Trainingsalgorithmen hat diese Einstellung keine Auswirkung. Die Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP.
Um den aktuellen Wert abzurufen, kann fann_get_rprop_delta_min verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Ressource, die mit fann_create_standard, fann_create_sparse oder einer ähnlichen Funktion erstellt wurde. |
|
| $rprop_delta_min Pflicht | float | Der neue Minimalwert für die RPROP-Schrittweite. Typischerweise ein sehr kleiner positiver Wert wie 1.0e-6. Muss größer oder gleich 0.0 sein. |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. bei einer ungültigen FANN-Ressource).Beispiele
Minimale RPROP-Schrittweite vor dem Training setzen
<?php
// Neuronales Netz erstellen: 2 Eingaben, 1 versteckte Schicht mit 4 Neuronen, 1 Ausgabe
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
// Trainingsalgorithmus auf RPROP setzen
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Minimale Schrittweite setzen, um zu kleine Gewichtsanpassungen zu vermeiden
$result = fann_set_rprop_delta_min($ann, 1.0e-6);
if ($result) {
echo "rprop_delta_min erfolgreich gesetzt.\n";
echo "Aktueller Wert: " . fann_get_rprop_delta_min($ann) . "\n";
} else {
echo "Fehler beim Setzen von rprop_delta_min.\n";
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des neuronalen Netzes.\n";
}
?>
RPROP-Parameter konfigurieren und Netz auf XOR trainieren
<?php
$train_file = __DIR__ . '/xor.data';
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Schrittweiten-Grenzen konfigurieren
fann_set_rprop_delta_min($ann, 1.0e-6); // Untere Grenze
fann_set_rprop_delta_max($ann, 50.0); // Obere Grenze
fann_set_rprop_delta_zero($ann, 0.1); // Startwert
echo "Delta-min: " . fann_get_rprop_delta_min($ann) . "\n";
echo "Delta-max: " . fann_get_rprop_delta_max($ann) . "\n";
echo "Delta-zero: " . fann_get_rprop_delta_zero($ann) . "\n";
if (file_exists($train_file)) {
fann_train_on_file($ann, $train_file, 500, 10, 0.001);
fann_save($ann, __DIR__ . '/xor_trained.net');
echo "Training abgeschlossen.\n";
}
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Erweiterung erforderlich: Diese Funktion ist nur verfügbar, wenn die PHP-FANN-Erweiterung installiert und aktiviert ist (extension=fann in der php.ini). Die Erweiterung ist nicht standardmäßig enthalten und muss über PECL installiert werden.
Nur für RPROP relevant: Diese Einstellung hat ausschließlich Auswirkungen, wenn als Trainingsalgorithmus FANN_TRAIN_RPROP oder FANN_TRAIN_IRPROP_PLUS verwendet wird. Bei anderen Algorithmen wie FANN_TRAIN_BACKPROP oder FANN_TRAIN_QUICKPROP wird der Wert ignoriert.
Zu hohe Minimalwerte vermeiden: Ein zu hoher Wert für rprop_delta_min kann dazu führen, dass das Netz nicht konvergiert, da die Gewichtsanpassungen nie klein genug werden, um ein Minimum zu erreichen. Empfohlen werden Werte im Bereich 1.0e-9 bis 1.0e-5.