Start · Sprachen · PHP · Referenz · fann_set_activation_function_output

fann_set_activation_function_output

Funktion

Setzt die Aktivierungsfunktion für alle Neuronen der Ausgabeschicht eines FANN-Neuronalen Netzes.

seit PHP 5.6.0 Kategorie: misc

Signatur

fann_set_activation_function_output(resource $ann, int $activation_function): bool

Beschreibung

fann_set_activation_function_output() legt die Aktivierungsfunktion fest, die für alle Neuronen der Ausgabeschicht des angegebenen neuronalen Netzes verwendet werden soll. Die Aktivierungsfunktion bestimmt, wie die gewichtete Summe der Eingaben eines Neurons in einen Ausgabewert umgewandelt wird.

Diese Funktion ist besonders nützlich, wenn man die Ausgabeschicht separat von den versteckten Schichten konfigurieren möchte — beispielsweise wenn man in den versteckten Schichten eine sigmoidale Funktion verwendet, aber in der Ausgabeschicht eine lineare Funktion für Regressionsprobleme benötigt.

Die verfügbaren Aktivierungsfunktionen sind als FANN-Konstanten definiert, z. B. FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_LINEAR, FANN_RELU u. v. m. Die Wahl der richtigen Aktivierungsfunktion für die Ausgabeschicht hängt stark vom jeweiligen Problem ab: Bei Klassifikation ist FANN_SIGMOID oder FANN_SIGMOID_SYMMETRIC üblich, bei Regression hingegen FANN_LINEAR.

Die Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network Library) für PHP und erfordert, dass diese Erweiterung kompiliert und aktiviert ist.

Parameter

Name Typ Default Beschreibung
$ann Pflicht resource Eine gültige FANN-Ressource, die mit Funktionen wie fann_create_standard() oder fann_create_from_file() erzeugt wurde.
$activation_function Pflicht int Die zu setzende Aktivierungsfunktion als FANN-Konstante, z. B. FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_LINEAR oder FANN_RELU.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Aktivierungsfunktion erfolgreich gesetzt wurde, andernfalls false (z. B. wenn $ann keine gültige FANN-Ressource ist oder eine unbekannte Aktivierungsfunktion angegeben wurde).

Beispiele

Ausgabeschicht mit Sigmoid-Funktion konfigurieren

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

if ($ann) {
    // Versteckte Schichten mit symmetrischer Sigmoid-Funktion konfigurieren
    fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);

    // Ausgabeschicht mit Standard-Sigmoid konfigurieren (Ausgabewerte zwischen 0 und 1)
    $result = fann_set_activation_function_output($ann, FANN_SIGMOID);

    if ($result) {
        echo "Aktivierungsfunktion der Ausgabeschicht erfolgreich gesetzt.\n";
    } else {
        echo "Fehler beim Setzen der Aktivierungsfunktion.\n";
    }

    fann_destroy($ann);
}
Aktivierungsfunktion der Ausgabeschicht erfolgreich gesetzt.

Regressionsnetz mit linearer Ausgabefunktion

<?php
// Netz für ein Regressionsproblem: 3 Eingaben, 5 versteckte Neuronen, 1 Ausgabe
$ann = fann_create_standard(3, 3, 5, 1);

if ($ann) {
    // Versteckte Schichten: ReLU-ähnliche Aktivierung
    fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);

    // Ausgabeschicht: Lineare Funktion für unbegrenzte Ausgabewerte (Regression)
    if (fann_set_activation_function_output($ann, FANN_LINEAR)) {
        echo "Linearer Ausgabe-Layer gesetzt — geeignet für Regressionsprobleme.\n";
    }

    // Netz auf Trainingsdaten trainieren (hier vereinfacht dargestellt)
    // fann_train_on_file($ann, 'training_data.data', 1000, 10, 0.0001);

    fann_destroy($ann);
}
Linearer Ausgabe-Layer gesetzt — geeignet für Regressionsprobleme.

// Wichtig · Fallstricke

Achtung: Die FANN-Erweiterung für PHP ist nicht standardmäßig aktiviert und muss separat installiert werden. Sie wird ab PHP 7.x kaum noch gepflegt; für moderne Projekte sollten Alternativen wie TensorFlow-Bindings oder andere ML-Bibliotheken in Betracht gezogen werden.

Die Wahl der Aktivierungsfunktion der Ausgabeschicht muss zum verwendeten Fehlerfunktionstyp passen: Bei FANN_ERRORFUNC_TANH sollte die Ausgabefunktion FANN_SIGMOID_SYMMETRIC liefern (Werte zwischen -1 und 1), bei binärer Klassifikation ist FANN_SIGMOID (0 bis 1) sinnvoll. Eine falsch gewählte Ausgabe-Aktivierungsfunktion kann das Training erheblich verschlechtern oder sogar unmöglich machen.