Start · Sprachen · PHP · Referenz · fann_get_activation_steepness

fann_get_activation_steepness

Funktion

Gibt die Aktivierungssteilheit (Steepness) für ein bestimmtes Neuron in einer bestimmten Schicht eines FANN-Netzes zurück.

Kategorie: misc

Signatur

fann_get_activation_steepness(resource $ann, int $layer, int $neuron): float|false

Beschreibung

fann_get_activation_steepness liest die Aktivierungssteilheit des angegebenen Neurons in der angegebenen Schicht eines künstlichen neuronalen Netzes aus, das mit der FANN-Bibliothek (Fast Artificial Neural Network) erstellt wurde. Die Aktivierungssteilheit beeinflusst, wie stark die Aktivierungsfunktion auf Eingabeänderungen reagiert – ein höherer Wert führt zu steileren Übergängen in der Aktivierungsfunktion.

Diese Funktion ist nützlich, wenn man die aktuellen Einstellungen eines trainierten Netzes auslesen, speichern oder zur Fehlersuche überprüfen möchte. Die Steilheit wird typischerweise mit fann_set_activation_steepness oder verwandten Funktionen gesetzt und kann schicht- oder neuronenweise variieren.

Die Schichten werden ab 1 gezählt (Schicht 0 ist die Eingabeschicht, die keine Aktivierungsfunktion hat). Neuronen werden ebenfalls ab 0 gezählt. Ungültige Kombinationen aus Schicht und Neuron führen dazu, dass false zurückgegeben wird.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine FANN-Netz-Ressource, wie sie von fann_create_standard oder ähnlichen Funktionen erzeugt wird.
$layer Pflicht int Index der Schicht, deren Neuron abgefragt werden soll. Die Eingabeschicht hat den Index 0; versteckte Schichten und Ausgabeschicht folgen aufsteigend.
$neuron Pflicht int Index des Neurons innerhalb der angegebenen Schicht, beginnend bei 0.

Rückgabewert

Typ
float|false
Beschreibung
Gibt die Aktivierungssteilheit als float zurück. Ist die Kombination aus layer und neuron ungültig oder tritt ein Fehler auf, wird false zurückgegeben.

Beispiele

Aktivierungssteilheit eines Neurons auslesen

<?php
// Netz mit 2 Eingaben, einer versteckten Schicht (3 Neuronen) und 1 Ausgabe erstellen
$ann = fann_create_standard(3, 2, 3, 1);

if ($ann) {
    // Aktivierungssteilheit für alle Schichten auf 0.5 setzen
    fann_set_activation_steepness_hidden($ann, 0.5);
    fann_set_activation_steepness_output($ann, 0.5);

    // Steilheit des ersten Neurons in der ersten versteckten Schicht (Schicht 1) auslesen
    $steepness = fann_get_activation_steepness($ann, 1, 0);

    if ($steepness !== false) {
        echo "Aktivierungssteilheit (Schicht 1, Neuron 0): " . $steepness . PHP_EOL;
    } else {
        echo "Ungültige Schicht- oder Neuron-Angabe." . PHP_EOL;
    }

    fann_destroy($ann);
}
Aktivierungssteilheit (Schicht 1, Neuron 0): 0.5

Steilheiten aller Neuronen einer Schicht ausgeben

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

if ($ann) {
    fann_set_activation_steepness_hidden($ann, 0.7);

    $layer = 1; // Erste versteckte Schicht
    $numNeurons = 4;

    echo "Aktivierungssteilheiten in Schicht $layer:" . PHP_EOL;
    for ($neuron = 0; $neuron < $numNeurons; $neuron++) {
        $steepness = fann_get_activation_steepness($ann, $layer, $neuron);
        if ($steepness !== false) {
            echo "  Neuron $neuron: $steepness" . PHP_EOL;
        } else {
            echo "  Neuron $neuron: nicht verfügbar" . PHP_EOL;
        }
    }

    fann_destroy($ann);
}
Aktivierungssteilheiten in Schicht 1: Neuron 0: 0.7 Neuron 1: 0.7 Neuron 2: 0.7 Neuron 3: 0.7

// Wichtig · Fallstricke

Die FANN-Erweiterung muss kompiliert und aktiviert sein (--with-fann). Ab PHP 8.0 werden FANN-Ressourcen möglicherweise nicht mehr offiziell unterstützt – prüfen Sie die Verfügbarkeit der Erweiterung in Ihrer PHP-Version.

Beachten Sie, dass die Eingabeschicht (Index 0) keine Aktivierungsfunktion besitzt. Der Aufruf mit layer = 0 liefert daher in der Regel false.