Start · Sprachen · PHP · Referenz · fann_set_quickprop_mu

fann_set_quickprop_mu

Funktion

Setzt den Quickprop-Mu-Faktor (Schrittweiten-Begrenzungsfaktor) für ein FANN-Neuronales-Netz.

seit PHP 5.6.0 Kategorie: misc

Signatur

fann_set_quickprop_mu(resource $ann, float $quickprop_mu): bool

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

Typ
bool
Beschreibung
Gibt 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);
}
?>
Quickprop-Mu erfolgreich auf 1.75 gesetzt. Aktueller Mu-Faktor: 1.75

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);
}
?>
Mu-Faktor auf 1.2 gesetzt (konservativ).

// 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.