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 nén" (squashing function), nó 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ị nằm trong khoảng từ 0 đến 1. Đường cong hình chữ "S" đặc trưng này làm cho nó cực kỳ hữu ích trong việc chuyển đổi các đầu ra thô của model thành các xác suất có thể diễn giải đượ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ác mô hình 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 lớp ẩn sâu, nhưng nó vẫn là lựa chọn tiêu chuẩn cho các lớp đầu ra trong các tác vụ phân loại nhị phân.
Link to this sectionCơ 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 thống kê truyền thống, Sigmoid là động cơ đằng sau 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ư liệu 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 lớp (ví dụ: "mèo" vs. "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 thường là 0.5), model sẽ dự đoán là lớp dương tính.
- Multi-Label Classification: Không giống như các bài toán đa lớp nơi các lớp 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 danh mục cùng một lúc. Tại đây, Sigmoid được áp dụng độc lập cho từng node đầu ra, cho phép model phát hiện một chiếc "ô tô" và một "người" trong cùng một cảnh mà không gây xung đột.
Link to this sectionSự 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 lớp, 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 trọng số hiệu quả trong các mạng sâu. Điều này dẫn đến việc áp dụng các phương án thay thế cho các lớp ẩn.
- Sigmoid so với ReLU (Rectified Linear Unit): ReLU có tốc độ tính toán nhanh hơn và tránh được vanishing gradient bằng cách xuất trực tiếp đầu vào nếu là số dương và bằng 0 nếu ngược lại. Đây là lựa chọn ưu tiên cho các lớp ẩn trong các kiến trúc hiện đại như YOLO26, trong khi Sigmoid được dành riêng cho lớp đầu ra cuối cùng trong các tác vụ cụ thể.
- Sigmoid so với Softmax: Cả hai đều ánh xạ đầu ra vào dải 0-1, nhưng chúng phục vụ các mục đích khác nhau. Sigmoid xử lý từng đầu ra một cách độc lập, làm cho nó trở nên lý tưởng cho các tác vụ nhị phân hoặc đa nhãn. Softmax buộc tất cả các đầu ra phải 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 lớp đúng.
Link to this sectionCá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 model AI được sử dụng trong medical image analysis thường sử dụng đầu ra Sigmoid để dự đoán xác suất có mặt của bệnh trong một 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 85% là có khối u, hỗ trợ các bác sĩ trong việc phát hiện sớm.
-
Phát hiện thư rác: Các hệ thống lọc email sử 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 gửi đến là "thư rác" hay "không phải thư rác". 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 việc email đó sẽ nằm trong hộp thư đến hay thư mục rác.
Link to this sectionTriể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 huấn luyện các model sử dụng các khái niệm này mà không cần viết code cấp thấp, Ultralytics Platform cung cấp một giao diện trực quan để quản lý các tập dữ liệu và huấn luyện các model hiện đại như YOLO26. Bằng cách tự động xử lý các sự phức tạp về kiến trúc, nó cho phép người dùng tập trung vào việc thu thập training data chất lượng cao cho các ứng dụng computer vision cụ thể của họ.






