Signatur
Beschreibung
fann_set_rprop_increase_factor legt den Faktor fest, mit dem die Gewichtsänderungsschrittweite beim RPROP-Algorithmus (Resilient Backpropagation) erhöht wird, wenn das Vorzeichen des Gradienten in aufeinanderfolgenden Iterationen gleich bleibt. Ein höherer Wert führt zu schnelleren, aber möglicherweise instabileren Schrittweitenanpassungen.
RPROP ist ein adaptiver Trainingsalgorithmus, der die tatsächlichen Gradientenwerte ignoriert und lediglich deren Vorzeichen auswertet. Ist das Vorzeichen des Gradienten für einen Gewichtsparameter in zwei aufeinanderfolgenden Epochen gleich, wird die lokale Schrittweite mit dem Erhöhungsfaktor multipliziert. Auf diese Weise wird die Konvergenz beschleunigt.
Der Standardwert für den Erhöhungsfaktor beträgt 1.2. Werte zwischen 1.1 und 1.5 sind in der Praxis gebräuchlich. Ein zu hoher Faktor kann dazu führen, dass das Netzwerk über das Minimum hinausschießt und die Konvergenz verschlechtert.
Diese Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP und wird zusammen mit fann_train oder fann_train_on_data verwendet, wenn als Trainingsalgorithmus RPROP eingestellt ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit fann_create_standard oder einer ähnlichen Funktion erstellt wurde. |
|
| $rprop_increase_factor Pflicht | float | Der Erhöhungsfaktor für die Schrittweite beim RPROP-Training. Typischerweise ein Wert größer als 1.0, z. B. 1.2. |
Rückgabewert
true zurück, wenn der Erhöhungsfaktor erfolgreich gesetzt wurde, oder false im Fehlerfall (z. B. wenn die übergebene Ressource ungültig ist).Beispiele
RPROP-Erhöhungsfaktor 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) {
// Trainingsalgorithmus auf RPROP setzen
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Erhöhungsfaktor für RPROP auf 1.3 setzen (Standard: 1.2)
if (fann_set_rprop_increase_factor($ann, 1.3)) {
echo "RPROP-Erhöhungsfaktor erfolgreich gesetzt." . PHP_EOL;
} else {
echo "Fehler beim Setzen des Erhöhungsfaktors." . PHP_EOL;
}
// Aktuellen Wert auslesen zur Überprüfung
$factor = fann_get_rprop_increase_factor($ann);
echo "Aktueller Erhöhungsfaktor: " . $factor . PHP_EOL;
fann_destroy($ann);
}
Netzwerk mit angepassten RPROP-Parametern auf Datei trainieren
<?php
$ann = fann_create_standard(3, 2, 4, 1);
$train_data = fann_read_train_from_file('xor.data');
if ($ann && $train_data) {
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Erhöhungsfaktor und Verringerungsfaktor fein abstimmen
fann_set_rprop_increase_factor($ann, 1.25);
fann_set_rprop_decrease_factor($ann, 0.5);
// Training durchführen
fann_train_on_data($ann, $train_data, 1000, 10, 0.001);
fann_save($ann, 'xor_trained.net');
fann_destroy($ann);
fann_destroy_train($train_data);
echo "Training abgeschlossen." . PHP_EOL;
}
// Wichtig · Fallstricke
Hinweis: Diese Funktion hat nur eine Wirkung, wenn der aktive Trainingsalgorithmus auf FANN_TRAIN_RPROP gesetzt ist. Bei anderen Algorithmen wie FANN_TRAIN_BACKPROP oder FANN_TRAIN_QUICKPROP wird der Wert intern gespeichert, aber nicht verwendet.
Wählen Sie den Erhöhungsfaktor mit Bedacht: Ein zu großer Wert (z. B. über 1.5) kann dazu führen, dass die Schrittweiten schnell zu groß werden und das Training divergiert. Der empfohlene Standardwert von 1.2 hat sich in der Praxis für viele Anwendungsfälle bewährt.
Die FANN-Erweiterung muss in PHP aktiviert sein (extension=fann in der php.ini). Die Verfügbarkeit hängt von der jeweiligen PHP-Installation ab.