Start · Sprachen · PHP · Referenz · fann_get_learning_momentum

fann_get_learning_momentum

Funktion

Gibt das aktuell eingestellte Lern-Momentum eines FANN-Neuronalen-Netzes zurück.

seit PHP 5.6.0 Kategorie: misc

Signatur

fann_get_learning_momentum(resource $ann): float

Beschreibung

fann_get_learning_momentum liest das sogenannte Lern-Momentum eines mit der FANN-Bibliothek (Fast Artificial Neural Network) erstellten neuronalen Netzes aus. Das Lern-Momentum ist ein Hyperparameter, der beim Training mit dem Backpropagation-Verfahren eingesetzt wird und steuert, wie stark die Gewichtsänderung des vorherigen Trainingsschritts die aktuelle Anpassung beeinflusst.

Ein höheres Momentum beschleunigt das Lernen in konsistenten Richtungen und dämpft Schwingungen, kann aber bei ungünstigem Wert dazu führen, dass das Netz lokale Minima überspringt. Typische Werte liegen im Bereich von 0.0 (kein Momentum) bis unter 1.0. Der Standardwert in FANN ist 0.0.

Die Funktion ist nützlich, wenn man den aktuellen Trainingszustand eines Netzes überprüfen oder protokollieren möchte, bevor Änderungen mit fann_set_learning_momentum vorgenommen werden. Sie gehört zur PHP-FANN-Erweiterung, die separat installiert werden muss.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Ressource, die zuvor mit fann_create_standard, fann_create_sparse oder einer ähnlichen FANN-Erstellungsfunktion erzeugt wurde.

Rückgabewert

Typ
float
Beschreibung
Gibt das aktuelle Lern-Momentum als Gleitkommazahl zurück. Bei einem ungültigen ann-Parameter wird false zurückgegeben.

Beispiele

Lern-Momentum eines neuen Netzes auslesen

<?php
// Neuronales Netz erstellen: 2 Eingaben, 1 versteckte Schicht mit 3 Neuronen, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);

if ($ann) {
    $momentum = fann_get_learning_momentum($ann);
    echo "Aktuelles Lern-Momentum: " . $momentum . PHP_EOL;

    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
Aktuelles Lern-Momentum: 0

Momentum lesen, ändern und erneut prüfen

<?php
$ann = fann_create_standard(3, 2, 4, 1);

if ($ann) {
    echo "Momentum vor Änderung: " . fann_get_learning_momentum($ann) . PHP_EOL;

    // Momentum auf einen typischen Trainingswert setzen
    fann_set_learning_momentum($ann, 0.9);

    echo "Momentum nach Änderung: " . fann_get_learning_momentum($ann) . PHP_EOL;

    fann_destroy($ann);
}
Momentum vor Änderung: 0 Momentum nach Änderung: 0.9

// Wichtig · Fallstricke

Hinweis zur Erweiterung: Die FANN-PHP-Erweiterung ist nicht standardmäßig in PHP enthalten und muss über PECL (pecl install fann) installiert werden. Stellen Sie sicher, dass die native FANN-Bibliothek auf dem System vorhanden ist.

Das Lern-Momentum wird nur beim Training mit dem Incremental-Backpropagation-Algorithmus (FANN_TRAIN_INCREMENTAL) berücksichtigt. Bei anderen Trainingsalgorithmen wie RPROP hat dieser Parameter keine Auswirkung.

Ein zu hoch gewähltes Momentum (nahe oder gleich 1.0) kann die Konvergenz des Trainings negativ beeinflussen oder das Netz instabil machen.