Signatur
Beschreibung
fann_set_activation_steepness_output legt den Steilheitswert (steepness) der Aktivierungsfunktion für sämtliche Neuronen der Ausgabeschicht eines Künstlichen Neuronalen Netzes fest, das mit der FANN-Bibliothek (Fast Artificial Neural Network) erstellt wurde. Die Steilheit beeinflusst, wie schnell die Aktivierungsfunktion im relevanten Wertebereich von einem Extrem zum anderen wechselt.
Ein höherer Steilheitswert führt zu einem steileren Kurvenverlauf der Aktivierungsfunktion, wodurch das Netz empfindlicher auf kleine Eingabeänderungen reagiert. Ein zu hoher Wert kann jedoch zu Instabilität beim Training führen. Typische Standardwerte liegen bei 0.5.
Diese Funktion ist besonders nützlich, wenn die Ausgabeschicht eine andere Steilheit als die versteckten Schichten verwenden soll – etwa um die Ausgabeempfindlichkeit gezielt zu steuern, ohne alle Schichten neu konfigurieren zu müssen. Soll die Steilheit für alle Schichten gleichzeitig gesetzt werden, kann fann_set_activation_steepness_layer oder fann_set_activation_steepness verwendet werden.
Die Funktion ist Teil der FANN-Erweiterung (php-fann) und setzt voraus, dass diese Erweiterung im PHP-Build aktiviert ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, die zuvor mit fann_create_standard oder einer ähnlichen Funktion erstellt wurde. |
|
| $activation_steepness Pflicht | float | Der Steilheitswert der Aktivierungsfunktion für alle Neuronen der Ausgabeschicht. Typischerweise ein positiver Wert, z. B. 0.5 (Standard) oder 1.0 für steilere Verläufe. |
Rückgabewert
true bei Erfolg zurück, oder false, wenn ein Fehler aufgetreten ist, z. B. wenn die übergebene Ressource kein gültiges FANN-Netz ist.Beispiele
Steilheit der Ausgabeschicht auf 1.0 setzen
<?php
// Netz mit 2 Eingaben, 3 versteckten Neuronen und 1 Ausgabe erstellen
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Aktivierungsfunktion für die Ausgabeschicht setzen
fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);
// Steilheit der Aktivierungsfunktion in der Ausgabeschicht auf 1.0 setzen
$result = fann_set_activation_steepness_output($ann, 1.0);
if ($result) {
echo "Steilheit der Ausgabeschicht erfolgreich auf 1.0 gesetzt." . PHP_EOL;
} else {
echo "Fehler beim Setzen der Steilheit." . PHP_EOL;
}
fann_destroy($ann);
} else {
echo "Fehler beim Erstellen des Netzes." . PHP_EOL;
}
Unterschiedliche Steilheiten für versteckte Schichten und Ausgabeschicht
<?php
// Netz mit 3 Schichten erstellen
$ann = fann_create_standard(3, 4, 5, 2);
if ($ann) {
// Aktivierungsfunktionen setzen
fann_set_activation_function_hidden($ann, FANN_SIGMOID);
fann_set_activation_function_output($ann, FANN_SIGMOID);
// Steilheit für versteckte Schichten: moderat
fann_set_activation_steepness_hidden($ann, 0.5);
// Steilheit für Ausgabeschicht: höher, um feinere Ausgabeunterschiede zu betonen
fann_set_activation_steepness_output($ann, 2.0);
echo "Netz konfiguriert: Steilheit Ausgabeschicht = 2.0" . PHP_EOL;
fann_destroy($ann);
}
// Wichtig · Fallstricke
Hinweis zur Steilheit: Sehr hohe Steilheitswerte können dazu führen, dass das Training instabil wird oder der Gradientenabstieg divergiert. Es wird empfohlen, mit dem Standardwert 0.5 zu beginnen und den Wert schrittweise anzupassen. Zu niedrige Werte können das Training verlangsamen.
Die FANN-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (pecl install fann). Ab PHP 8.x sollte die Kompatibilität der installierten FANN-Version geprüft werden, da die Erweiterung möglicherweise nicht für alle PHP-Versionen aktuell gepflegt wird.