Start · Sprachen · PHP · Referenz · fann_get_cascade_num_candidates

fann_get_cascade_num_candidates

Funktion

Gibt die Anzahl der Kandidaten-Neuronen zurück, die während des Cascade-Correlation-Trainings ausgewertet werden.

seit PHP 5.2.0 Kategorie: misc

Signatur

fann_get_cascade_num_candidates(resource $ann): int

Beschreibung

fann_get_cascade_num_candidates() liefert die Gesamtanzahl der Kandidaten-Neuronen, die beim Cascade-Correlation-Algorithmus in jedem Trainingszyklus ausprobiert werden. Diese Zahl ergibt sich aus dem Produkt der Anzahl der Kandidaten-Aktivierungsfunktionen (fann_get_cascade_activation_functions_count()), der Kandidaten-Steilheiten (fann_get_cascade_activation_steepnesses_count()) und der Anzahl der Kandidaten-Neuronen je Kombination (fann_get_cascade_num_candidate_groups()).

Beim Cascade-Correlation-Training wird das neuronale Netz schrittweise aufgebaut: In jeder Runde werden mehrere Kandidaten-Neuronen mit verschiedenen Aktivierungsfunktionen und Steilheiten parallel trainiert. Das Neuron, das den Fehler am stärksten reduziert, wird in das Netz aufgenommen. Die Anzahl der Kandidaten bestimmt dabei, wie breit dieser Suchraum ist.

Diese Funktion ist rein lesend und verändert das Netz nicht. Sie eignet sich zur Diagnose und zur Protokollierung der Trainingsparameter, um die Trainingszeit und Netzqualität besser einschätzen zu können.

Hinweis: Diese Funktion steht nur zur Verfügung, wenn PHP mit der FANN-Bibliothek kompiliert wurde (--with-fann).

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Netz-Ressource, die zuvor mit fann_create_standard() oder einer ähnlichen Funktion erstellt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt die Anzahl der Kandidaten-Neuronen als nicht-negative ganze Zahl zurück. Der Wert ergibt sich aus: Anzahl Aktivierungsfunktionen × Anzahl Steilheiten × Anzahl Kandidatengruppen.

Beispiele

Kandidatenanzahl eines neuen Netzes abfragen

<?php
// Einfaches vorwärtsgerichtetes Netz erstellen
$ann = fann_create_standard(3, 2, 4, 1);

if ($ann) {
    // Anzahl der Kandidaten ausgeben
    $numCandidates = fann_get_cascade_num_candidates($ann);
    echo "Anzahl der Cascade-Kandidaten: " . $numCandidates . PHP_EOL;

    // Einzelne Faktoren zur Nachvollziehbarkeit ausgeben
    $functions = fann_get_cascade_activation_functions_count($ann);
    $steepnesses = fann_get_cascade_activation_steepnesses_count($ann);
    $groups = fann_get_cascade_num_candidate_groups($ann);

    echo "Aktivierungsfunktionen: " . $functions . PHP_EOL;
    echo "Steilheiten:            " . $steepnesses . PHP_EOL;
    echo "Kandidatengruppen:      " . $groups . PHP_EOL;
    echo "Produkt (Kandidaten):   " . ($functions * $steepnesses * $groups) . PHP_EOL;

    fann_destroy($ann);
} else {
    echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
Anzahl der Cascade-Kandidaten: 12 Aktivierungsfunktionen: 4 Steilheiten: 3 Kandidatengruppen: 1 Produkt (Kandidaten): 12

Kandidatenanzahl vor und nach Parameteranpassung vergleichen

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

if ($ann) {
    echo "Standard-Kandidatenanzahl: " . fann_get_cascade_num_candidates($ann) . PHP_EOL;

    // Kandidatengruppen erhöhen, um breiteren Suchraum zu nutzen
    fann_set_cascade_num_candidate_groups($ann, 3);

    echo "Nach Erhöhung der Gruppen: " . fann_get_cascade_num_candidates($ann) . PHP_EOL;

    fann_destroy($ann);
} else {
    echo "Netz konnte nicht erstellt werden." . PHP_EOL;
}
?>
Standard-Kandidatenanzahl: 12 Nach Erhöhung der Gruppen: 36

// Wichtig · Fallstricke

Trainingszeit: Eine höhere Kandidatenanzahl verbessert potenziell die Netzqualität, verlängert aber die Trainingszeit proportional. Bei ressourcenbeschränkten Umgebungen sollte die Anzahl sorgfältig gewählt werden.

Erweiterung erforderlich: Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert bzw. kompiliert werden. Ab PHP 8.0 ist die Verfügbarkeit eingeschränkt; stattdessen kann die objektorientierte Wrapper-Klasse FANNConnection und verwandte Klassen verwendet werden.