Learn how the Sigmoid function acts as a squashing activation function in deep learning. Explore its role in binary classification and [YOLO26](https://docs.ultralytics.com/models/yolo26/) models.
Die Sigmoid-Funktion ist eine grundlegende mathematische Komponente, die in den Bereichen maschinelles Lernen (ML) und Deep Learning (DL) häufig verwendet wird. Sie wird oft als „Quetschfunktion“ bezeichnet und nimmt jede reelle Zahl als Eingabe und ordnet ihr einen Wert zwischen 0 und 1 zu. Diese charakteristische S-förmige Kurve macht sie unglaublich nützlich für die Umwandlung von rohen Modellausgaben in interpretierbare Wahrscheinlichkeiten. Im Kontext eines neuronalen Netzes (NN) fungiert die Sigmoid-Funktion als Aktivierungsfunktion und führt eine Nichtlinearität ein, die es Modellen ermöglicht, komplexe Muster jenseits einfacher linearer Beziehungen zu lernen. Obwohl sie in tiefen versteckten Schichten weitgehend durch andere Funktionen ersetzt wurde, bleibt sie eine Standardwahl für Ausgabeschichten in binären Klassifizierungsaufgaben.
Im Kern transformiert die Sigmoid-Funktion Eingabedaten – oft als Logits bezeichnet – in einen normalisierten Bereich. Diese Transformation ist entscheidend für Aufgaben, bei denen das Ziel darin besteht, die Wahrscheinlichkeit eines Ereignisses vorherzusagen. Durch die Begrenzung der Ausgabe zwischen 0 und 1 liefert die Funktion einen eindeutigen Wahrscheinlichkeitswert.
While Sigmoid was once the default for all layers, researchers discovered limitations like the vanishing gradient problem, where gradients become too small to update weights effectively in deep networks. This led to the adoption of alternatives for hidden layers.
The utility of the Sigmoid function extends across various industries where probability estimation is required.
You can observe how Sigmoid transforms data using PyTorch, a popular library for building deep learning models. This simple example demonstrates the "squashing" effect on a range of input values.
import torch
import torch.nn as nn
# Create a Sigmoid layer
sigmoid = nn.Sigmoid()
# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])
# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)
print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs
For those looking to train models that utilize these concepts without writing low-level code, the Ultralytics Platform offers an intuitive interface to manage datasets and train state-of-the-art models like YOLO26. By handling the architectural complexities automatically, it allows users to focus on gathering high-quality training data for their specific computer vision applications.