Signatur
Beschreibung
fann_set_quickprop_mu legt den sogenannten Mu-Faktor für den Quickprop-Trainingsalgorithmus fest. Quickprop ist ein beschleunigtes Backpropagation-Verfahren, das auf der Annahme einer parabolischen Fehlerfläche basiert und Gewichtsänderungen schneller konvergieren lässt als klassisches Gradientenabstiegsverfahren.
Der Mu-Faktor begrenzt, wie groß der nächste Gewichts-Schritt im Verhältnis zum vorherigen Schritt sein darf. Ein typischer Standardwert ist 1.75. Zu hohe Werte können zu instabilem Training (Divergenz) führen, zu niedrige Werte verlangsamen die Konvergenz.
Diese Funktion wird verwendet, wenn das Netz mit FANN_TRAIN_QUICKPROP trainiert wird und das Trainingsverhalten durch eine präzisere Schrittkontrolle optimiert werden soll. Sie gibt true zurück, wenn das Setzen erfolgreich war, andernfalls false.
Die FANN-Erweiterung (Fast Artificial Neural Network) muss kompiliert und aktiviert sein, damit diese Funktion verfügbar ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Ein gültiges FANN-Netzwerk-Resource-Handle, das zuvor mit fann_create_standard() oder einer ähnlichen Funktion erstellt wurde. |
|
| $quickprop_mu Pflicht | float | Der neue Mu-Faktor für Quickprop. Bestimmt die maximale Vergrößerung eines Gewichts-Schritts relativ zum vorherigen Schritt. Typischer Standardwert ist 1.75. |
Rückgabewert
true zurück, wenn der Mu-Faktor erfolgreich gesetzt wurde. Gibt false zurück, wenn ein Fehler auftrat, z. B. wenn das übergebene Handle kein gültiges FANN-Netz ist.Beispiele
Quickprop-Mu-Faktor setzen und Netz trainieren
<?php
// Neuronales Netz erstellen: 2 Eingabe-, 3 versteckte und 1 Ausgabe-Neuron
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Trainingsalgorithmus auf Quickprop setzen
fann_set_training_algorithm($ann, FANN_TRAIN_QUICKPROP);
// Mu-Faktor auf den Standardwert setzen
if (fann_set_quickprop_mu($ann, 1.75)) {
echo "Quickprop-Mu erfolgreich auf 1.75 gesetzt." . PHP_EOL;
} else {
echo "Fehler beim Setzen des Quickprop-Mu-Faktors." . PHP_EOL;
}
// Aktuellen Mu-Faktor auslesen zur Überprüfung
echo "Aktueller Mu-Faktor: " . fann_get_quickprop_mu($ann) . PHP_EOL;
fann_destroy($ann);
}
?>
Mu-Faktor konservativ reduzieren für stabileres Training
<?php
// Netz mit mehreren Schichten erstellen
$ann = fann_create_standard(4, 4, 8, 4, 1);
if ($ann) {
fann_set_training_algorithm($ann, FANN_TRAIN_QUICKPROP);
// Reduzierten Mu-Faktor setzen, um Überschwingen zu vermeiden
$mu = 1.2;
if (fann_set_quickprop_mu($ann, $mu)) {
echo "Mu-Faktor auf {$mu} gesetzt (konservativ)." . PHP_EOL;
}
// Trainingsdaten laden und Netz trainieren
$train_data = fann_read_train_from_file('training.data');
if ($train_data) {
fann_train_on_data($ann, $train_data, 1000, 10, 0.001);
fann_destroy_train($train_data);
}
fann_save($ann, 'mein_netz.net');
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Hinweis: Diese Funktion ist nur verfügbar, wenn die FANN-Erweiterung (Fast Artificial Neural Network Library) installiert und in PHP aktiviert ist. Sie ist Teil der fann-Extension (PECL).
Der Mu-Faktor wirkt sich ausschließlich auf den Quickprop-Algorithmus aus (FANN_TRAIN_QUICKPROP). Bei anderen Trainingsalgorithmen wie Rprop oder Backpropagation hat er keine Wirkung.
Ein Mu-Wert deutlich über 2.0 kann zu numerischer Instabilität führen. Es empfiehlt sich, Werte im Bereich 1.0 bis 2.0 zu testen und die Konvergenz des Trainingsverlusts zu beobachten.