Start · Sprachen · PHP · Referenz · fann_set_cascade_num_candidate_groups

fann_set_cascade_num_candidate_groups

Funktion

Setzt die Anzahl der Kandidatengruppen, die beim Cascade-Correlation-Training verwendet werden.

seit PHP 5.2.0 Kategorie: misc

Signatur

fann_set_cascade_num_candidate_groups(resource $ann, int $cascade_num_candidate_groups): bool

Beschreibung

fann_set_cascade_num_candidate_groups legt fest, wie viele Kandidatengruppen beim Cascade-Correlation-Algorithmus erzeugt werden. Jede Kandidatengruppe enthält eine Reihe von Kandidaten-Neuronen, die während des Trainings bewertet werden, um das am besten geeignete Neuron für das Netzwerk auszuwählen.

Beim Cascade-Correlation-Training wird das neuronale Netz schrittweise aufgebaut, indem neue Neuronen hinzugefügt werden. Die Anzahl der Kandidatengruppen beeinflusst, wie breit die Suche nach dem optimalen neuen Neuron ist: Eine größere Anzahl erhöht die Chancen, ein besseres Neuron zu finden, verlängert aber auch die Trainingszeit.

Die Gesamtzahl der Kandidaten ergibt sich als Produkt aus cascade_num_candidate_groups und der Anzahl der Aktivierungsfunktionen multipliziert mit der Anzahl der Steigungen (cascade_num_candidates = cascade_activation_functions_count * cascade_activation_steepnesses_count * cascade_num_candidate_groups). Eine sorgfältige Abstimmung dieses Wertes kann die Qualität des trainierten Netzwerks deutlich verbessern.

Die Funktion gehört zur FANN-Erweiterung (Fast Artificial Neural Network) und erfordert, dass diese Erweiterung in der PHP-Installation aktiviert ist.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netzwerk-Ressource, die zuvor mit Funktionen wie fann_create_standard() erstellt wurde.
$cascade_num_candidate_groups Pflicht int Die Anzahl der Kandidatengruppen, die beim Cascade-Correlation-Training verwendet werden sollen. Muss eine positive ganze Zahl sein. Der Standardwert im FANN-Framework beträgt 2.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. wenn die Netzwerk-Ressource ungültig ist).

Beispiele

Kandidatengruppen für Cascade-Training setzen

<?php
// Netzwerk erstellen: 2 Eingänge, keine versteckten Schichten, 1 Ausgang
$ann = fann_create_standard(2, 2, 1);

if ($ann) {
    // Anzahl der Kandidatengruppen auf 4 erhöhen
    if (fann_set_cascade_num_candidate_groups($ann, 4)) {
        echo "Kandidatengruppen erfolgreich gesetzt: " . fann_get_cascade_num_candidate_groups($ann) . PHP_EOL;
    } else {
        echo "Fehler beim Setzen der Kandidatengruppen." . PHP_EOL;
    }
    fann_destroy($ann);
}
Kandidatengruppen erfolgreich gesetzt: 4

Cascade-Training mit angepasster Kandidatenzahl

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

if ($ann) {
    // Mehr Kandidatengruppen für eine breitere Kandidatensuche
    fann_set_cascade_num_candidate_groups($ann, 6);

    // Anzahl der Trainingsepochen und maximale Neuronen festlegen
    fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);

    $train_data = fann_read_train_from_file('xor.data');
    if ($train_data) {
        // Cascade-Training starten: max. 30 Neuronen, 1000 Epochen pro Neuron, 0.001 Fehler
        fann_cascadetrain_on_data($ann, $train_data, 30, 1000, 0.001);
        fann_save($ann, 'xor_cascade.net');
        fann_destroy_train($train_data);
        echo "Training abgeschlossen." . PHP_EOL;
    }
    fann_destroy($ann);
}
Training abgeschlossen.

// Wichtig · Fallstricke

Hinweis zur FANN-Erweiterung: Diese Funktion ist nur verfügbar, wenn die PHP-FANN-Erweiterung installiert und aktiviert ist. Sie kann über PECL installiert werden (pecl install fann).

Leistungsabwägung: Ein höherer Wert für cascade_num_candidate_groups führt zu einer größeren Kandidatenmenge und damit zu einer längeren Trainingszeit, kann aber die Netzwerkqualität verbessern. Ein zu niedriger Wert kann dazu führen, dass suboptimale Neuronen hinzugefügt werden. Der Standardwert von 2 ist für viele Anwendungsfälle ein guter Ausgangspunkt.

Gesamtkandidaten: Die tatsächliche Anzahl der Kandidaten ergibt sich aus: cascade_activation_functions_count × cascade_activation_steepnesses_count × cascade_num_candidate_groups.