Signatur
Beschreibung
fann_set_cascade_activation_functions legt fest, welche Aktivierungsfunktionen beim Cascade-Correlation-Algorithmus (FANN) für die Kandidaten-Neuronen ausprobiert werden sollen. Der Algorithmus testet alle Kombinationen aus Aktivierungsfunktionen und Steilheitswerten, um das am besten geeignete Neuron zu finden, bevor es dem Netzwerk dauerhaft hinzugefügt wird.
Die Funktion erwartet ein Array aus ganzzahligen Konstanten, die den FANN-Aktivierungsfunktionen entsprechen (z. B. FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN usw.). Je mehr Aktivierungsfunktionen angegeben werden, desto länger dauert jede Trainingsphase, da mehr Kandidaten evaluiert werden müssen, desto besser kann jedoch das Netzwerk an die Problemstellung angepasst werden.
Diese Einstellung ist nur relevant, wenn das Netzwerk mit fann_cascadetrain_on_data oder fann_cascadetrain_on_file trainiert wird. Für Standard-Backpropagation-Training hat diese Funktion keine Auswirkung.
Um die aktuelle Einstellung auszulesen, kann fann_get_cascade_activation_functions verwendet werden.
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_functions Pflicht | array | Ein Array aus FANN-Aktivierungsfunktionskonstanten (z. B. FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_ELLIOT usw.), die als Kandidaten getestet werden sollen. |
Rückgabewert
true zurück, wenn die Aktivierungsfunktionen erfolgreich gesetzt wurden, andernfalls false (z. B. bei einer ungültigen Netzwerk-Ressource oder einem ungültigen Array).Beispiele
Cascade-Aktivierungsfunktionen für ein neuronales Netzwerk setzen
<?php
// Erstelle ein Cascade-Netzwerk mit 2 Eingabe- und 1 Ausgabe-Neuron
$ann = fann_create_shortcut(2, 1);
if ($ann) {
// Setze die gewünschten Aktivierungsfunktionen für Kandidaten-Neuronen
$aktivierungsfunktionen = [
FANN_SIGMOID,
FANN_SIGMOID_SYMMETRIC,
FANN_GAUSSIAN,
FANN_GAUSSIAN_SYMMETRIC,
FANN_ELLIOT,
FANN_ELLIOT_SYMMETRIC,
];
if (fann_set_cascade_activation_functions($ann, $aktivierungsfunktionen)) {
echo "Aktivierungsfunktionen erfolgreich gesetzt." . PHP_EOL;
// Zur Kontrolle auslesen
$gesetzt = fann_get_cascade_activation_functions($ann);
echo "Anzahl gesetzter Funktionen: " . count($gesetzt) . PHP_EOL;
} else {
echo "Fehler beim Setzen der Aktivierungsfunktionen." . PHP_EOL;
}
fann_destroy($ann);
}
Cascade-Training mit angepassten Aktivierungsfunktionen
<?php
$trainFile = 'xor.data';
if (file_exists($trainFile)) {
$ann = fann_create_shortcut(2, 1);
$trainingsDaten = fann_read_train_from_file($trainFile);
if ($ann && $trainingsDaten) {
// Nur symmetrische Aktivierungsfunktionen verwenden
fann_set_cascade_activation_functions($ann, [
FANN_SIGMOID_SYMMETRIC,
FANN_GAUSSIAN_SYMMETRIC,
FANN_ELLIOT_SYMMETRIC,
]);
// Cascade-Training durchführen
fann_cascadetrain_on_data(
$ann,
$trainingsDaten,
150, // max. Neuronen
1, // Neuronen zwischen Reports
0.001 // gewünschter Fehler
);
echo "Training abgeschlossen. MSE: " . fann_get_MSE($ann) . PHP_EOL;
fann_destroy($ann);
fann_destroy_train($trainingsDaten);
}
}
// Wichtig · Fallstricke
Hinweis zur FANN-Extension: Diese Funktion ist nur verfügbar, wenn die PHP-FANN-Erweiterung (php-fann) installiert und aktiviert ist. Sie ist nicht Teil der PHP-Standardinstallation.
Kombination mit Steilheitswerten: Die Kandidaten werden aus allen Kombinationen von Aktivierungsfunktionen (gesetzt über diese Funktion) und Steilheitswerten (gesetzt über fann_set_cascade_activation_steepnesses) gebildet. Eine große Anzahl von Kombinationen kann das Training erheblich verlangsamen.
Nur für Cascade-Training relevant: Diese Einstellung hat ausschließlich Auswirkung auf den Cascade-Correlation-Algorithmus. Bei normalen Netzwerken ohne Cascade-Training wird sie ignoriert.