Signatur
Beschreibung
Die Funktion fann_set_cascade_activation_steepnesses legt die Steilheitswerte (Steepnesses) fest, die beim Cascade-Correlation-Training für Kandidatenneuronen verwendet werden. Diese Werte bestimmen, wie stark die Aktivierungsfunktion eines Kandidatenneurons gekrümmt ist.
Beim Cascade-Correlation-Algorithmus werden Kandidatenneuronen mit verschiedenen Kombinationen aus Aktivierungsfunktionen und Steilheitswerten trainiert. Das Neuron, das die Netzwerkleistung am stärksten verbessert, wird in das Netzwerk übernommen. Je mehr unterschiedliche Steilheitswerte angegeben werden, desto mehr Kombinationen werden getestet, was die Qualität des resultierenden Netzes verbessern kann, aber auch die Trainingszeit erhöht.
Typische Steilheitswerte liegen im Bereich zwischen 0,25 und 8,0. Der Standardwert ist üblicherweise ein Array mit den Werten 0,25, 0,5, 0,75 und 1,0. Diese Werte können je nach Problemstellung angepasst werden, um bessere Ergebnisse zu erzielen.
Diese Funktion setzt voraus, dass das FANN-Netzwerk mit fann_create_shortcut oder einem anderen geeigneten Konstruktor erstellt wurde und für das Cascade-Training vorgesehen ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit einer der fann_create_*-Funktionen erstellt wurde. |
|
| $cascade_activation_steepnesses Pflicht | array | Ein numerisches Array mit Gleitkommazahlen, das die gewünschten Steilheitswerte für die Aktivierungsfunktionen der Kandidatenneuronen enthält. Typische Werte liegen zwischen 0,25 und 8,0, z. B. [0.25, 0.5, 0.75, 1.0]. |
Rückgabewert
true zurück, wenn die Steilheitswerte erfolgreich gesetzt wurden. Bei einem Fehler, z. B. ungültiger Netzwerk-Ressource oder leerem Array, wird false zurückgegeben.Beispiele
Steilheitswerte für Cascade-Training setzen
<?php
// FANN-Shortcut-Netzwerk erstellen (für Cascade-Training geeignet)
$ann = fann_create_shortcut(2, 2, 1);
if ($ann) {
// Aktivierungssteilheiten für Kandidatenneuronen festlegen
$steepnesses = [0.25, 0.5, 0.75, 1.0, 2.0];
if (fann_set_cascade_activation_steepnesses($ann, $steepnesses)) {
echo "Aktivierungssteilheiten erfolgreich gesetzt." . PHP_EOL;
// Zur Kontrolle die gesetzten Werte auslesen
$current = fann_get_cascade_activation_steepnesses($ann);
echo "Aktuelle Steilheitswerte: " . implode(', ', $current) . PHP_EOL;
} else {
echo "Fehler beim Setzen der Steilheitswerte." . PHP_EOL;
}
fann_destroy($ann);
}
Feinabgestimmtes Cascade-Training mit angepassten Steilheitswerten
<?php
// Netzwerk für Cascade-Correlation erstellen
$ann = fann_create_shortcut(2, 2, 1);
if ($ann) {
// Aktivierungsfunktionen für Kandidaten setzen
fann_set_cascade_activation_functions($ann, [
FANN_SIGMOID,
FANN_SIGMOID_SYMMETRIC,
FANN_GAUSSIAN
]);
// Steilheitswerte für bessere Abdeckung des Lösungsraums
$steepnesses = [0.5, 1.0, 2.0, 4.0];
fann_set_cascade_activation_steepnesses($ann, $steepnesses);
// Maximale Anzahl an Neuronen und Ausgabe-Epochen konfigurieren
fann_set_cascade_max_out_epochs($ann, 150);
fann_set_cascade_max_cand_epochs($ann, 150);
echo "Cascade-Netzwerk konfiguriert mit " . count($steepnesses) . " Steilheitswerten." . PHP_EOL;
echo "Anzahl Kandidatenkombinationen: " .
(count(fann_get_cascade_activation_functions($ann)) * count($steepnesses)) .
PHP_EOL;
fann_destroy($ann);
}
// Wichtig · Fallstricke
Hinweis zur FANN-Erweiterung: Die FANN-Funktionen (Fast Artificial Neural Network) erfordern die PHP-Erweiterung fann, die separat installiert werden muss. Sie ist nicht standardmäßig in PHP enthalten.
Leeres Array: Übergabe eines leeren Arrays kann zu unerwartetem Verhalten führen, da das Cascade-Training mindestens einen Steilheitswert benötigt. Prüfen Sie das Array vor dem Aufruf auf Gültigkeit.
Zusammenspiel mit Aktivierungsfunktionen: Die Steilheitswerte werden zusammen mit den Aktivierungsfunktionen aus fann_set_cascade_activation_functions kombiniert. Jede Kombination ergibt einen eigenen Kandidaten – bei vielen Werten steigt die Trainingszeit entsprechend.