Khám phá sức mạnh của hàm Sigmoid trong AI. Tìm hiểu cách nó cho phép tính phi tuyến tính, hỗ trợ phân loại nhị phân và thúc đẩy sự tiến bộ của ML!
Hàm Sigmoid là một thành phần toán học cơ bản được sử dụng rộng rãi trong lĩnh vực học máy (ML) và học sâu (DL) . Thường được gọi là "hàm nén", nó nhận bất kỳ số thực nào làm đầu vào và ánh xạ nó đến một giá trị nằm giữa 0 và 1. Đường cong hình chữ "S" đặc trưng này làm cho nó cực kỳ hữu ích để chuyển đổi đầu ra thô của mô hình thành các xác suất có thể diễn giải được. Trong bối cảnh của mạng nơ-ron (NN) , hàm Sigmoid hoạt động như một hàm kích hoạt , đưa vào tính phi tuyến tính cho phép các mô hình học được các mẫu phức tạp vượt ra ngoài các mối quan hệ tuyến tính đơn giản. Mặc dù nó đã được thay thế phần lớn bởi các hàm khác trong các lớp ẩn sâu, nhưng nó vẫn là một lựa chọn tiêu chuẩn cho các lớp đầu ra trong các nhiệm vụ phân loại nhị phân.
Về bản chất, hàm Sigmoid biến đổi dữ liệu đầu vào—thường được gọi là logit—thành một phạm vi chuẩn hóa. Phép biến đổi này rất quan trọng đối với các nhiệm vụ mà mục tiêu là dự đoán xác suất xảy ra của một sự kiện. Bằng cách giới hạn đầu ra giữa 0 và 1, hàm này cung cấp một điểm số xác suất rõ ràng.
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.