Sigmoid
Khám phá vai trò của hàm Sigmoid trong học máy. Tìm hiểu cách hàm kích hoạt này cho phép phân loại nhị phân trong các mô hình như Ultralytics YOLO26.
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 các lĩnh vực machine learning (ML) và deep learning (DL). Thường được gọi là "hàm ép" (squashing function), hàm này nhận bất kỳ số thực nào làm đầu vào và ánh xạ nó thành một giá trị trong khoảng từ 0 đến 1. Đường cong hình chữ "S" đặc trưng này giúp nó trở nên cực kỳ hữu ích trong việc chuyển đổi các đầu ra thô của model thành xác suất có thể giải thích được. Trong bối cảnh của một neural network (NN), hàm Sigmoid đóng vai trò là một activation function, đưa vào tính phi tuyến tính cho phép các model học các pattern 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ó đã phần lớn được thay thế bằng các hàm khác trong các hidden layer sâu, nó vẫn là một lựa chọn tiêu chuẩn cho các output layer trong các tác vụ phân loại nhị phân.
Cơ chế của Sigmoid trong AI#
Về cốt lõi, hàm Sigmoid biến đổi dữ liệu đầu vào—thường được gọi là logits—thành một dải chuẩn hóa. Sự biến đổi này rất quan trọng đối với các tác vụ có mục tiêu dự đoán khả năng xảy ra của một sự kiện. Bằng cách giới hạn đầu ra trong khoảng từ 0 đến 1, hàm này cung cấp một điểm số xác suất rõ ràng.
- Logistic Regression: Trong mô hình hóa thống kê truyền thống, Sigmoid là động lực đằngក្រោយ hồi quy logistic. Nó cho phép các nhà khoa học dữ liệu ước tính xác suất của một kết quả nhị phân, chẳng hạn như việc một khách hàng sẽ rời đi hay ở lại.
- Binary Classification: Đối với các neural network được thiết kế để phân biệt giữa hai class (ví dụ: "mèo" so với "chó"), lớp cuối cùng thường sử dụng một activation Sigmoid. Nếu đầu ra lớn hơn một ngưỡng (thường là 0.5), model sẽ dự đoán class dương tính.
- Multi-Label Classification: Không giống như các bài toán đa class nơi các class loại trừ lẫn nhau, các tác vụ đa nhãn cho phép một hình ảnh hoặc văn bản thuộc về nhiều category đồng thời. Ở đây, Sigmoid được áp dụng độc lập cho từng node đầu ra, cho phép một model phát hiện "xe hơi" và "người" trong cùng một cảnh mà không có xung đột.
Sự khác biệt chính so với các Activation Function khác#
Mặc dù Sigmoid từng là mặc định cho tất cả các layer, các nhà nghiên cứu đã phát hiện ra những hạn chế như vấn đề vanishing gradient, nơi các gradient trở nên quá nhỏ để cập nhật weight một cách hiệu quả trong các network sâu. Điều này dẫn đến việc áp dụng các phương án thay thế cho các hidden layer.
- Sigmoid vs. ReLU (Rectified Linear Unit): ReLU is computationally faster and avoids vanishing gradients by outputting the input directly if positive, and zero otherwise. It is the preferred choice for hidden layers in modern architectures like YOLO26, whereas Sigmoid is reserved for the final output layer in specific tasks.
- Sigmoid so với Softmax: Cả hai đều ánh xạ đầu ra về dải 0-1, nhưng chúng phục vụ các mục đích khác nhau. Sigmoid xử lý mỗi đầu ra một cách độc lập, làm cho nó lý tưởng cho các tác vụ nhị phân hoặc đa nhãn. Softmax ép tất cả các đầu ra có tổng bằng 1, tạo ra một phân phối xác suất được sử dụng cho multi-class classification nơi chỉ có một class là chính xác.
Các ứng dụng trong thực tế#
Tính hữu dụng của hàm Sigmoid mở rộng trên nhiều ngành công nghiệp nơi cần ước tính xác suất.
-
Chẩn đoán y tế: Các AI model được sử dụng trong medical image analysis thường sử dụng đầu ra Sigmoid để dự đoán xác suất xuất hiện bệnh trong bản chụp X-quang hoặc MRI. Ví dụ, một model có thể xuất ra 0.85, cho thấy khả năng có khối u là 85%, giúp các bác sĩ phát hiện sớm.
-
Phát hiện thư rác: Các hệ thống lọc email tận dụng các model natural language processing (NLP) với bộ phân loại Sigmoid để xác định xem một tin nhắn đến là "spam" hay "không phải spam". Model phân tích các từ khóa và siêu dữ liệu, xuất ra một điểm số quyết định xem email đó vào hộp thư đến hay thư rác.
Triển khai thực tế#
Bạn có thể quan sát cách Sigmoid biến đổi dữ liệu bằng cách sử dụng PyTorch, một thư viện phổ biến để xây dựng các model deep learning. Ví dụ đơn giản này minh họa hiệu ứng "nén" trên một phạm vi các giá trị đầu vào.
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Đối với những người muốn train model tận dụng các khái niệm này mà không cần viết mã cấp thấp, Ultralytics Platform cung cấp một giao diện trực quan để quản lý dataset và train các model tiên tiến như YOLO26. Bằng cách xử lý các độ phức tạp của kiến trúc một cách tự động, nó cho phép người dùng tập trung thu thập training data chất lượng cao cho các ứng dụng computer vision cụ thể của họ.






