Signatur
Beschreibung
fann_set_sarprop_temperature legt die Temperatur für den SARPROP-Lernalgorithmus (Self-Adaptive RProp) fest. Dieser Temperaturwert beeinflusst das Lernverhalten des Netzwerks und steuert, wie stark Gewichtsänderungen bei der Optimierung berücksichtigt werden.
SARPROP ist eine Erweiterung des klassischen RProp-Algorithmus, der adaptiv die Lernraten für jede Verbindung im Netz anpasst. Der Temperaturparameter spielt dabei eine ähnliche Rolle wie in thermodynamischen Simulationsverfahren: Ein höherer Wert erlaubt größere Sprünge im Lösungsraum, während ein niedrigerer Wert zu einer feineren, stabileren Konvergenz führt.
Die Funktion gehört zur FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP. Um sie nutzen zu können, muss die fann-Erweiterung in PHP installiert und aktiviert sein. Der aktuelle Wert der Temperatur lässt sich mit fann_get_sarprop_temperature auslesen.
Diese Einstellung ist nur wirksam, wenn als Trainingsalgorithmus FANN_TRAIN_SARPROP verwendet wird. Bei anderen Trainingsalgorithmen hat dieser Parameter keine Auswirkung.
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. |
|
| $sarprop_temperature Pflicht | float | Die neue SARPROP-Temperatur. Der Standardwert laut FANN-Bibliothek beträgt 0.015. Ein höherer Wert erhöht die Toleranz gegenüber größeren Gewichtsänderungen. |
Rückgabewert
true zurück, wenn die Temperatur erfolgreich gesetzt wurde. Gibt false zurück, wenn ein Fehler aufgetreten ist, z. B. wenn ann keine gültige FANN-Ressource ist.Beispiele
SARPROP-Temperatur 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-Temperatur setzen
$result = fann_set_sarprop_temperature($ann, 0.02);
if ($result) {
echo "SARPROP-Temperatur erfolgreich gesetzt." . PHP_EOL;
echo "Aktuelle Temperatur: " . fann_get_sarprop_temperature($ann) . PHP_EOL;
} else {
echo "Fehler beim Setzen der SARPROP-Temperatur." . PHP_EOL;
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
SARPROP-Parameter konfigurieren und auf Datei anwenden
<?php
$ann = fann_create_from_file('mein_netz.net');
if ($ann) {
// Trainingsalgorithmus auf SARPROP setzen
fann_set_training_algorithm($ann, FANN_TRAIN_SARPROP);
// Temperatur auf niedrigen Wert für feinere Konvergenz setzen
fann_set_sarprop_temperature($ann, 0.005);
// Weitere SARPROP-Parameter konfigurieren
fann_set_sarprop_weight_decay_shift($ann, -6.644);
fann_set_sarprop_step_error_threshold_factor($ann, 0.1);
fann_set_sarprop_step_error_shift($ann, 1.385);
echo "Konfigurierte Temperatur: " . fann_get_sarprop_temperature($ann) . PHP_EOL;
// Training durchführen
fann_train_on_file($ann, 'trainingsdaten.data', 1000, 100, 0.001);
// Netz speichern
fann_save($ann, 'trainiertes_netz.net');
fann_destroy($ann);
} else {
echo "Fehler beim Laden des Netzes." . PHP_EOL;
}
?>
// Wichtig · Fallstricke
Hinweis zur Erweiterung: Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten. Sie muss separat über PECL installiert werden (pecl install fann) und in der php.ini mit extension=fann.so (Linux/macOS) bzw. extension=fann.dll (Windows) aktiviert werden.
Algorithmuspezifisch: Der Temperaturparameter hat nur Auswirkungen, wenn der Trainingsalgorithmus auf FANN_TRAIN_SARPROP gesetzt ist. Bei anderen Algorithmen wie FANN_TRAIN_RPROP oder FANN_TRAIN_BACKPROP wird dieser Wert ignoriert.
Experimentieren empfohlen: Der optimale Temperaturwert ist stark problemabhängig. Es wird empfohlen, verschiedene Werte auszuprobieren und die Konvergenzkurve des Trainings zu beobachten, um den besten Wert für die jeweilige Aufgabe zu ermitteln.