Signatur
Beschreibung
fann_set_cascade_candidate_limit legt den Schwellenwert fest, der bestimmt, wie stark die Korrelation eines Kandidaten-Neurons sein muss, damit es als geeigneter Kandidat für das Hinzufügen in das Netz gilt. Beim Cascade-Korrelations-Algorithmus (Cascade2) werden während des Trainings neue Neuronen schrittweise hinzugefügt, und dieser Grenzwert steuert, wann ein Kandidat akzeptiert wird.
Ein höherer Kandidaten-Grenzwert bedeutet, dass ein Kandidat-Neuron eine stärkere Korrelation mit dem Fehler aufweisen muss, bevor es dem Netz hinzugefügt wird. Dies kann zu einem genaueren, aber langsameren Trainingsprozess führen. Ein niedrigerer Wert akzeptiert Kandidaten schneller, was zu einem weniger optimalen, aber schnelleren Ergebnis führen kann.
Diese Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP und wird in Verbindung mit Cascade-Training-Funktionen wie fann_cascadetrain_on_data verwendet. Der Standardwert kann mit fann_get_cascade_candidate_limit abgerufen werden.
Die FANN-Erweiterung muss dafür installiert und aktiviert sein. Sie eignet sich besonders für Szenarien, bei denen die Netzarchitektur nicht im Voraus bekannt ist und adaptiv aufgebaut werden soll.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Ressource, die mit einer der fann_create_*-Funktionen erstellt wurde. |
|
| $cascade_candidate_limit Pflicht | float | Der neue Kandidaten-Grenzwert als Gleitkommazahl. Bestimmt die Mindeskorrelation, die ein Kandidaten-Neuron aufweisen muss, um in das Netz aufgenommen zu werden. Typische Standardwerte liegen bei 1000.0. |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false (z. B. wenn ann keine gültige FANN-Ressource ist).Beispiele
Kandidaten-Grenzwert setzen und Cascade-Training starten
<?php
// Neuronales Netz erstellen (2 Eingaben, 1 Ausgabe)
$ann = fann_create_shortcut(2, 2, 1);
if ($ann) {
// Kandidaten-Grenzwert auf 500.0 setzen
if (fann_set_cascade_candidate_limit($ann, 500.0)) {
echo "Kandidaten-Grenzwert erfolgreich gesetzt." . PHP_EOL;
echo "Aktueller Wert: " . fann_get_cascade_candidate_limit($ann) . PHP_EOL;
} else {
echo "Fehler beim Setzen des Kandidaten-Grenzwerts." . PHP_EOL;
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des neuronalen Netzes." . PHP_EOL;
}
?>
Cascade-Training mit angepasstem Kandidaten-Grenzwert
<?php
$ann = fann_create_shortcut(2, 2, 1);
$train_data = fann_read_train_from_file('xor.data');
if ($ann && $train_data) {
// Grenzwert anpassen, um strengere Kandidaten-Auswahl zu erzwingen
fann_set_cascade_candidate_limit($ann, 1500.0);
echo "Starte Cascade-Training mit Kandidaten-Grenzwert: "
. fann_get_cascade_candidate_limit($ann) . PHP_EOL;
// Cascade-Training mit maximal 30 Neuronen und 300 Epochen
fann_cascadetrain_on_data($ann, $train_data, 30, 1, 0.01);
fann_save($ann, 'trained_net.net');
fann_destroy($ann);
fann_destroy_train($train_data);
} else {
echo "Fehler beim Erstellen des Netzes oder Laden der Trainingsdaten." . PHP_EOL;
}
?>
// Wichtig · Fallstricke
Hinweis zur FANN-Erweiterung: Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (z. B. via PECL: pecl install fann). Ab PHP 8.0 wird die Erweiterung möglicherweise nicht mehr aktiv gepflegt – prüfen Sie die Kompatibilität vor dem Einsatz in neuen Projekten.
Ressourcen vs. Objekte: In neueren Versionen der FANN-Erweiterung können anstelle von Ressourcen auch Objekte verwendet werden. Achten Sie darauf, die zur installierten Version passende API zu verwenden.
Der Kandidaten-Grenzwert interagiert eng mit anderen Cascade-Parametern wie fann_set_cascade_candidate_change_fraction und fann_set_cascade_num_candidate_groups. Passen Sie alle Parameter aufeinander ab, um optimale Trainingsergebnisse zu erzielen.