Signatur
Beschreibung
fann_set_train_stop_function legt fest, nach welchem Kriterium das Training eines neuronalen Netzes abgebrochen wird. Die gewählte Stoppfunktion bestimmt, ob das Training auf Basis des mittleren quadratischen Fehlers (MSE) oder des Bit-Fehlers beendet wird.
Typischerweise wird das Training gestoppt, wenn der berechnete Fehler einen definierten Schwellenwert unterschreitet. Die zwei gebräuchlichsten Konstanten für die Stoppfunktion sind FANN_STOPFUNC_MSE (stoppt basierend auf dem mittleren quadratischen Fehler) und FANN_STOPFUNC_BIT (stoppt basierend auf der Anzahl falsch klassifizierter Bits).
Diese Funktion ist Teil der FANN-Erweiterung (Fast Artificial Neural Network) und wird zusammen mit Funktionen wie fann_train_on_file oder fann_train_on_data eingesetzt. Sie sollte vor Beginn des eigentlichen Trainings aufgerufen werden, um das gewünschte Abbruchverhalten zu konfigurieren.
Die Auswahl der passenden Stoppfunktion hängt vom konkreten Anwendungsfall ab: FANN_STOPFUNC_MSE eignet sich gut für Regressionsprobleme, während FANN_STOPFUNC_BIT bei Klassifikationsaufgaben bevorzugt wird, bei denen eine binäre Ausgabe erwartet wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ann Pflicht | resource | Eine gültige FANN-Netzwerk-Ressource, wie sie von fann_create_standard oder ähnlichen Funktionen zurückgegeben wird. |
|
| $stop_function Pflicht | int | Die zu verwendende Stoppfunktion. Mögliche Werte: FANN_STOPFUNC_MSE (0) für den mittleren quadratischen Fehler oder FANN_STOPFUNC_BIT (1) für den Bit-Fehler. |
Rückgabewert
true bei Erfolg zurück, oder false, wenn ein Fehler aufgetreten ist (z. B. wenn die übergebene Ressource ungültig ist).Beispiele
Training mit MSE-Stoppfunktion konfigurieren
<?php
// Neuronales Netz erstellen: 2 Eingaben, 1 versteckte Schicht mit 3 Neuronen, 1 Ausgabe
$ann = fann_create_standard(3, 2, 3, 1);
if ($ann) {
// Stoppfunktion auf mittleren quadratischen Fehler setzen
fann_set_train_stop_function($ann, FANN_STOPFUNC_MSE);
// Gewünschten maximalen MSE festlegen
fann_set_train_error_function($ann, FANN_ERRORFUNC_TANH);
fann_set_training_algorithm($ann, FANN_TRAIN_RPROP);
// Training starten
fann_train_on_file($ann, 'trainingsdaten.data', 1000, 10, 0.001);
// Netz speichern
fann_save($ann, 'netz.net');
fann_destroy($ann);
} else {
echo 'Fehler beim Erstellen des neuronalen Netzes.';
}
?>
Training mit Bit-Fehler-Stoppfunktion für Klassifikation
<?php
// Neuronales Netz für binäre Klassifikation erstellen
$ann = fann_create_standard(3, 2, 4, 1);
if ($ann) {
// Stoppfunktion auf Bit-Fehler setzen (ideal für Klassifikation)
$result = fann_set_train_stop_function($ann, FANN_STOPFUNC_BIT);
if ($result) {
echo 'Stoppfunktion erfolgreich gesetzt: FANN_STOPFUNC_BIT' . PHP_EOL;
// Bit-Fehler-Schwellenwert setzen (Anzahl erlaubter Fehlklassifikationen)
fann_set_bit_fail_limit($ann, 0.35);
// Training durchführen
fann_train_on_file($ann, 'klassifikation.data', 500, 50, 0.0);
} else {
echo 'Fehler beim Setzen der Stoppfunktion.' . PHP_EOL;
}
fann_destroy($ann);
}
?>
// Wichtig · Fallstricke
Erweiterung erforderlich: Diese Funktion ist nur verfügbar, wenn die fann-Erweiterung in PHP kompiliert und aktiviert ist. Überprüfen Sie die Verfügbarkeit mit extension_loaded('fann').
Bei der Verwendung von FANN_STOPFUNC_BIT muss zusätzlich ein Schwellenwert mit fann_set_bit_fail_limit definiert werden, da sonst der Standard-Schwellenwert verwendet wird, was möglicherweise nicht dem gewünschten Verhalten entspricht.
Die aktuell gesetzte Stoppfunktion kann mit fann_get_train_stop_function abgefragt werden.