Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Sigmoid

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 hàm kích hoạt cơ bản được sử dụng rộng rãi trong lĩnh vực học máy (ML)học sâu (DL) . Được biểu diễn dưới dạng toán học là một hàm logistic , hàm này được đặc trưng bởi đường cong hình chữ "S" riêng biệt, được gọi là đường cong sigmoid. Chức năng chính của Sigmoid là biến đổi bất kỳ số đầu vào có giá trị thực nào thành một giá trị trong khoảng từ 0 đến 1. Tính chất nén này khiến nó cực kỳ hữu ích cho các mô hình cần dự đoán xác suất , vì kết quả đầu ra có thể được diễn giải trực tiếp là khả năng xảy ra của một sự kiện cụ thể. Bằng cách đưa tính phi tuyến tính vào mạng nơ-ron (NN) , hàm Sigmoid cho phép các mô hình học các mẫu dữ liệu phức tạp vượt ra ngoài hồi quy tuyến tính đơn giản.

Ứng dụng cốt lõi trong trí tuệ nhân tạo

Hàm Sigmoid đóng vai trò quan trọng trong các kiến trúc và tác vụ mạng cụ thể, đặc biệt là khi đầu ra cần được diễn giải dưới dạng xác suất độc lập. Mặc dù các hàm mới hơn đã thay thế nó trong các lớp ẩn của mạng sâu, nó vẫn là một tiêu chuẩn trong các lớp đầu ra cho một số ứng dụng chính.

  • Phân loại nhị phân : Trong các tác vụ có mục tiêu là phân loại dữ liệu đầu vào thành một trong hai lớp loại trừ lẫn nhau—chẳng hạn như xác định xem một email là "thư rác" hay "không phải thư rác"—hàm Sigmoid là lựa chọn lý tưởng cho lớp cuối cùng. Hàm này đưa ra một giá trị vô hướng duy nhất giữa 0 và 1, biểu thị xác suất của lớp dương. Ví dụ, trong phân tích hình ảnh y tế , một mô hình có thể đưa ra giá trị 0,95, biểu thị độ tin cậy 95% rằng một bất thường được phát hiện là ác tính.
  • Phân loại đa nhãn : Không giống như các tác vụ đa lớp, trong đó đầu vào chỉ thuộc một danh mục, các tác vụ đa nhãn cho phép đầu vào có nhiều thẻ cùng lúc. Ví dụ, một mô hình phát hiện đối tượng như Ultralytics YOLO11 có thể cần detect "người", "xe đạp" và "mũ bảo hiểm" trong một hình ảnh duy nhất. Ở đây, Sigmoid được áp dụng độc lập cho từng nút đầu ra, cho phép mô hình dự đoán sự hiện diện hoặc vắng mặt của từng lớp mà không buộc tổng xác suất phải bằng một.
  • Cổng Mạng Nơ-ron Hồi quy (RNN) : Sigmoid là một thành phần quan trọng trong cơ chế cổng của các mô hình chuỗi nâng cao như mạng Bộ nhớ Dài Ngắn Hạn (LSTM) . Trong các kiến trúc này, "cổng quên" và "cổng nhập" sử dụng Sigmoid để đưa ra các giá trị từ 0 (hoàn toàn quên/chặn) đến 1 (hoàn toàn nhớ/truyền), điều chỉnh hiệu quả luồng thông tin theo thời gian. Cơ chế này được giải thích chi tiết trong các nghiên cứu kinh điển về LSTM .

So sánh với các hàm kích hoạt liên quan

Để thiết kế kiến trúc nơ-ron hiệu quả, điều quan trọng là phải phân biệt Sigmoid với các hàm kích hoạt khác, vì mỗi hàm có mục đích riêng biệt.

  • Softmax : Mặc dù cả hai hàm đều liên quan đến xác suất, Softmax được sử dụng cho phân loại đa lớp trong đó các lớp loại trừ lẫn nhau. Softmax đảm bảo tổng đầu ra của tất cả các lớp bằng chính xác 1, tạo ra một phân phối xác suất. Ngược lại, Sigmoid xử lý từng đầu ra một cách độc lập, phù hợp cho các tác vụ nhị phân hoặc đa nhãn.
  • ReLU (Đơn vị Tuyến tính Chỉnh lưu) : ReLU là hàm kích hoạt được ưu tiên cho các lớp ẩn trong mạng sâu hiện đại. Không giống như Sigmoid, vốn bão hòa ở 0 và 1, gây ra vấn đề gradient biến mất trong quá trình lan truyền ngược , ReLU cho phép gradient chảy tự do hơn đối với các đầu vào dương. Điều này giúp tăng tốc độ huấn luyện và hội tụ, như đã được ghi chú trong ghi chú khóa học Stanford CS231n .
  • Tanh (Hyperbolic Tangent) : Hàm Tanh tương tự như hàm Sigmoid nhưng ánh xạ đầu vào vào phạm vi từ -1 đến 1. Vì đầu ra của hàm này có tâm là số 0 nên Tanh thường được ưu tiên hơn Sigmoid trong các lớp ẩn của các kiến trúc cũ hơn và một số RNN nhất định, vì hàm này giúp tập trung dữ liệu cho các lớp tiếp theo.

Ví dụ triển khai

Sau đây là Python Đoạn mã minh họa cách áp dụng hàm Sigmoid bằng PyTorch . Đây là một thao tác phổ biến được sử dụng để chuyển đổi đầu ra mô hình thô (logit) thành xác suất có thể diễn giải được.

import torch
import torch.nn as nn

# Raw outputs (logits) from a model for a binary or multi-label task
logits = torch.tensor([0.1, -2.5, 4.0])

# Apply the Sigmoid activation function
sigmoid = nn.Sigmoid()
probabilities = sigmoid(logits)

# Output values are squashed between 0 and 1
print(probabilities)
# Output: tensor([0.5250, 0.0759, 0.9820])

Hiểu rõ thời điểm sử dụng Sigmoid là chìa khóa để xây dựng các hệ thống AI hiệu quả. Mặc dù Sigmoid có những hạn chế ở các lớp ẩn sâu do độ bão hòa gradient, khả năng mô hình hóa các xác suất độc lập vẫn giúp nó phù hợp trong các phép tính hàm mất mát và các lớp đầu ra cuối cùng cho nhiều tác vụ khác nhau.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay