Hàm Sigmoid là một hàm kích hoạt được công nhận rộng rãi được sử dụng trong học máy (ML) và đặc biệt là trong mạng nơ-ron (NN) . Nó được đặc trưng bởi đường cong hình chữ "S", ánh xạ toán học bất kỳ giá trị đầu vào nào thành đầu ra giữa 0 và 1. Thuộc tính này làm cho nó đặc biệt hữu ích để chuyển đổi đầu ra thô (logit) từ mô hình thành xác suất, dễ diễn giải hơn. Theo truyền thống, Sigmoid là lựa chọn phổ biến cho các lớp ẩn trong NN, mặc dù nó đã phần lớn được thay thế bằng các hàm như ReLU cho mục đích đó trong các kiến trúc học sâu (DL) hiện đại do một số hạn chế nhất định.
Sigmoid hoạt động như thế nào
Hàm Sigmoid lấy bất kỳ số thực nào và nén nó vào phạm vi (0, 1). Các đầu vào âm lớn dẫn đến các đầu ra gần bằng 0, các đầu vào dương lớn dẫn đến các đầu ra gần bằng 1 và đầu vào bằng 0 dẫn đến đầu ra là 0,5. Đây là một hàm phi tuyến tính, điều này rất quan trọng vì việc xếp chồng nhiều lớp tuyến tính trong một mạng nơ-ron mà không có tính phi tuyến tính sẽ chỉ dẫn đến một hàm tuyến tính khác, hạn chế khả năng của mô hình trong việc học các mẫu phức tạp có trong dữ liệu như hình ảnh hoặc văn bản. Sigmoid cũng có thể phân biệt được, một thuộc tính cần thiết để đào tạo các mạng nơ-ron bằng các phương pháp tối ưu hóa dựa trên gradient như truyền ngược và giảm gradient .
Ứng dụng của Sigmoid
Ứng dụng chính của Sigmoid hiện nay là ở lớp đầu ra của các mô hình phân loại nhị phân. Vì đầu ra của nó tự nhiên nằm giữa 0 và 1, nên nó lý tưởng để biểu diễn xác suất của đầu vào thuộc về lớp dương.
- Chẩn đoán y khoa: Trong phân tích hình ảnh y khoa , một mô hình có thể phân tích các đặc điểm từ bản quét (ví dụ: tập dữ liệu khối u não ) và sử dụng lớp đầu ra Sigmoid để dự đoán khả năng xuất hiện một tình trạng cụ thể (ví dụ: ác tính). Đầu ra trên ngưỡng nhất định (thường là 0,5) cho biết dự đoán tích cực. Đầu ra xác suất này giúp các bác sĩ lâm sàng hiểu được độ tin cậy của mô hình. Xem các ví dụ trong nghiên cứu AI về X quang .
- Phát hiện thư rác: Trong Xử lý ngôn ngữ tự nhiên (NLP) , hàm Sigmoid có thể được sử dụng ở lớp cuối cùng của mô hình được thiết kế để phân loại văn bản , chẳng hạn như xác định email có phải là thư rác hay không. Mô hình xử lý nội dung email và đưa ra xác suất (thông qua Sigmoid) rằng email là thư rác. Đây là một bài toán phân loại nhị phân cổ điển thường gặp trong các ứng dụng NLP .
Sigmoid cũng có thể được sử dụng trong các tác vụ phân loại đa nhãn, trong đó đầu vào có thể thuộc về nhiều danh mục cùng lúc (ví dụ: bài báo được gắn nhãn là 'chính trị', 'kinh tế' và 'Châu Âu'). Trong trường hợp này, một nơ-ron đầu ra Sigmoid riêng biệt được sử dụng cho mỗi nhãn tiềm năng, ước tính xác suất nhãn cụ thể đó có liên quan, độc lập với các nhãn khác. Điều này trái ngược với phân loại đa lớp (trong đó chỉ áp dụng một nhãn, như phân loại hình ảnh là 'mèo', 'chó' hoặc 'chim'), thường sử dụng hàm Softmax .
Hàm kích hoạt Sigmoid so với các hàm kích hoạt liên quan
Để hiểu về Sigmoid, chúng ta thường so sánh nó với các hàm kích hoạt khác:
- ReLU (Đơn vị tuyến tính chỉnh lưu) : ReLU đưa ra đầu vào trực tiếp nếu là số dương và bằng không nếu là số không. Nó đơn giản hơn về mặt tính toán và tránh được vấn đề độ dốc biến mất đối với các đầu vào dương, khiến nó trở thành lựa chọn ưu tiên cho các lớp ẩn trong hầu hết các NN hiện đại, bao gồm nhiều mô hình YOLO Ultralytics như YOLOv8 . Các biến thể như Leaky ReLU giải quyết vấn đề "nơ-ron chết" của ReLU.
- Tanh (Tăng Hyperbolic) : Tanh có liên quan về mặt toán học với Sigmoid nhưng nén các đầu vào vào phạm vi (-1, 1). Đầu ra của nó có tâm là số không, đôi khi có thể giúp tối ưu hóa so với đầu ra không có tâm là số không của Sigmoid (0 đến 1). Tuy nhiên, giống như Sigmoid, nó gặp phải vấn đề về độ dốc biến mất.
- Softmax : Được sử dụng trong lớp đầu ra cho các vấn đề phân loại đa lớp. Không giống như Sigmoid (cung cấp xác suất độc lập cho các tác vụ nhị phân hoặc đa nhãn), Softmax đưa ra phân phối xác suất trên tất cả các lớp, đảm bảo tổng xác suất bằng 1. Điều này làm cho nó phù hợp khi các lớp loại trừ lẫn nhau.
- SiLU (Đơn vị tuyến tính Sigmoid) / Swish : Một hàm kích hoạt mới hơn nhân đầu vào với Sigmoid của đầu vào. Nó thường hoạt động tốt hơn ReLU trong các mô hình sâu hơn và được sử dụng trong các kiến trúc như EfficientNet và một số YOLO biến thể. Nó chứng minh Sigmoid vẫn tiếp tục có liên quan như một thành phần trong các chức năng mới hơn. Kiểm tra PyTorch tài liệu hướng dẫn thực hiện SiLU .
Ưu điểm và hạn chế
Thuận lợi:
- Diễn giải xác suất: Phạm vi đầu ra (0, 1) rất trực quan để biểu diễn xác suất trong phân loại nhị phân.
- Độ dốc mượt mà: Không giống như các hàm có sự thay đổi đột ngột (như hàm bậc thang), Sigmoid có đạo hàm mượt mà, được xác định rõ ràng, tạo điều kiện thuận lợi cho việc học dựa trên độ dốc.
Hạn chế:
- Độ dốc biến mất: Đối với các giá trị đầu vào rất cao hoặc rất thấp, độ dốc của hàm Sigmoid trở nên cực kỳ nhỏ (gần bằng không). Trong quá trình truyền ngược , các độ dốc nhỏ này có thể được nhân lên qua nhiều lớp, khiến độ dốc cho các lớp trước đó biến mất, về cơ bản là dừng việc học. Đây là lý do chính khiến nó ít được ưa chuộng đối với các lớp ẩn sâu.
- Đầu ra không tập trung vào số 0: Phạm vi đầu ra (0, 1) không tập trung vào số 0. Điều này đôi khi có thể làm chậm quá trình hội tụ của các thuật toán giảm dần độ dốc so với các hàm tập trung vào số 0 như Tanh.
- Chi phí tính toán: Phép toán hàm mũ liên quan khiến chi phí tính toán đắt hơn một chút so với các hàm đơn giản hơn như ReLU.
Sử dụng và khả dụng hiện đại
Mặc dù ít phổ biến hơn trong các lớp ẩn của mạng sâu ngày nay, Sigmoid vẫn là lựa chọn tiêu chuẩn cho các lớp đầu ra trong phân loại nhị phân và các tác vụ phân loại đa nhãn. Nó cũng tạo thành một thành phần cốt lõi trong các cơ chế gating trong Mạng nơ-ron hồi quy (RNN) như LSTM và GRU , kiểm soát luồng thông tin.
Sigmoid có sẵn ở tất cả các nơi chính khuôn khổ học tập sâu, bao gồm PyTorch (BẰNG torch.sigmoid
) Và TensorFlow (BẰNG tf.keras.activations.sigmoid
). Các nền tảng như Ultralytics HUB hỗ trợ các mô hình sử dụng nhiều chức năng kích hoạt khác nhau, cho phép người dùng xe lửa và triển khai cầu kì tầm nhìn máy tính giải pháp.