Start · Sprachen · PHP · Referenz · fann_set_rprop_delta_max

fann_set_rprop_delta_max

Funktion

Setzt die maximale Schrittweite (Delta-Max) für den RPROP-Trainingsalgorithmus eines neuronalen Netzes.

seit PHP 5.3.0 Kategorie: misc

Signatur

fann_set_rprop_delta_max(resource $ann, float $rprop_delta_max): bool

Beschreibung

fann_set_rprop_delta_max legt den maximalen Wert fest, den die Gewichtsanpassungsschritte (Deltas) beim RPROP-Algorithmus (Resilient Backpropagation) annehmen dürfen. RPROP passt die Schrittweiten individuell pro Gewicht an – ohne diese Begrenzung könnten die Deltas unbegrenzt wachsen und das Training instabil machen.

Der Parameter rprop_delta_max begrenzt also, wie groß ein einzelner Anpassungsschritt maximal werden darf. Ein typischer Standardwert ist 50.0. Zu kleine Werte verlangsamen das Training bei flachen Gradienten, zu große Werte können dazu führen, dass das Netz über Minima hinausspringt.

Diese Funktion ist nur relevant, wenn als Trainingsalgorithmus FANN_TRAIN_RPROP verwendet wird. Sie gehört zur FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP.

Zur Feinabstimmung des RPROP-Algorithmus stehen weitere Funktionen bereit, wie fann_set_rprop_delta_min, fann_set_rprop_delta_zero, fann_set_rprop_increase_factor und fann_set_rprop_decrease_factor.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine FANN-Netz-Ressource, wie sie von fann_create_standard oder ähnlichen Funktionen erzeugt wird.
$rprop_delta_max Pflicht float Die maximale Schrittweite für den RPROP-Algorithmus. Typischer Standardwert ist 50.0. Muss größer als rprop_delta_min sein.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false wenn ein Fehler auftritt (z. B. ungültige Ressource oder ungültiger Parameterwert).

Beispiele

Maximale RPROP-Schrittweite setzen und Training starten

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

if ($ann) {
    // RPROP als Trainingsalgorithmus setzen
    fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);

    // Maximale Schrittweite auf 50.0 setzen (Standardwert)
    if (fann_set_rprop_delta_max($ann, 50.0)) {
        echo "rprop_delta_max erfolgreich gesetzt: " . fann_get_rprop_delta_max($ann) . PHP_EOL;
    } else {
        echo "Fehler beim Setzen von rprop_delta_max." . PHP_EOL;
    }

    // Training mit XOR-Daten
    $train_data = fann_read_train_from_file('xor.data');
    if ($train_data) {
        fann_train_on_data($ann, $train_data, 1000, 100, 0.001);
        fann_save($ann, 'xor_trained.net');
        fann_destroy_train($train_data);
    }

    fann_destroy($ann);
}
rprop_delta_max erfolgreich gesetzt: 50

Angepasste Delta-Grenzen für konservativeres Training

<?php
// Netz erstellen
$ann = fann_create_standard(3, 4, 5, 2);

if ($ann) {
    fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);

    // Konservativere Grenzen: kleinere maximale Schrittweite
    fann_set_rprop_delta_min($ann, 0.0);
    fann_set_rprop_delta_max($ann, 10.0); // deutlich kleiner als Standard (50.0)
    fann_set_rprop_delta_zero($ann, 0.1);

    echo "Delta Min:  " . fann_get_rprop_delta_min($ann) . PHP_EOL;
    echo "Delta Max:  " . fann_get_rprop_delta_max($ann) . PHP_EOL;
    echo "Delta Zero: " . fann_get_rprop_delta_zero($ann) . PHP_EOL;

    fann_destroy($ann);
}
Delta Min: 0 Delta Max: 10 Delta Zero: 0.1

// Wichtig · Fallstricke

Achtung: Der Wert für rprop_delta_max muss stets größer als der Wert für rprop_delta_min sein, da andernfalls das Trainingsverhalten undefiniert oder instabil werden kann.

Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (pecl install fann). Ab PHP 8.0 ist die Unterstützung eingeschränkt – prüfe die Kompatibilität deiner FANN-Version.

Diese Funktion hat nur Wirkung, wenn der Trainingsalgorithmus auf FANN_TRAIN_RPROP eingestellt ist. Bei anderen Algorithmen wie FANN_TRAIN_BACKPROP oder FANN_TRAIN_QUICKPROP wird der Parameter ignoriert.