Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024
Bảng chú giải thuật ngữ

Softmax

Khám phá cách Softmax biến đổi điểm số thành xác suất cho các tác vụ phân loại trong AI, thúc đẩy sự thành công của nhận dạng hình ảnh và NLP.

Softmax là một hàm toán học chuyển đổi một vectơ các điểm số thô, có giá trị thực, thường được gọi là logits, thành một vectơ các xác suất. Trong bối cảnh của học máy (ML), Softmax chủ yếu được sử dụng như một hàm kích hoạt (activation function) trong lớp đầu ra của một mạng nơ-ron (neural network). Vai trò chính của nó là chuyển đổi các điểm số cuối cùng của mạng thành một phân phối xác suất có ý nghĩa trên nhiều lớp loại trừ lẫn nhau. Các xác suất kết quả cộng lại bằng một, giúp chúng dễ dàng được hiểu là độ tin cậy của mô hình cho mỗi kết quả có thể xảy ra.

Hàm Softmax Hoạt Động Như Thế Nào

Hãy tưởng tượng một mạng nơ-ron đang cố gắng quyết định hình ảnh thuộc danh mục nào. Lớp cuối cùng của mạng tạo ra một tập hợp các điểm số thô cho mỗi danh mục. Điểm số càng cao cho thấy mô hình nghiêng về danh mục đó hơn, nhưng những điểm số này không được chuẩn hóa và có thể khó làm việc trực tiếp.

Hàm Softmax lấy các điểm số này và thực hiện hai bước chính:

  1. Nó áp dụng hàm mũ cho mỗi điểm số. Điều này làm cho tất cả các giá trị dương và phóng đại sự khác biệt giữa chúng—điểm số lớn hơn trở nên lớn hơn nhiều theo tỷ lệ.
  2. Nó chuẩn hóa các điểm số lũy thừa này bằng cách chia mỗi điểm cho tổng của chúng. Bước này thu nhỏ các giá trị sao cho chúng cộng lại thành 1.0, tạo ra một phân phối xác suất một cách hiệu quả.

Đầu ra cuối cùng là một danh sách các xác suất, trong đó mỗi giá trị đại diện cho khả năng dự đoán của mô hình rằng đầu vào thuộc về một lớp cụ thể. Lớp có xác suất cao nhất sau đó được chọn làm dự đoán cuối cùng.

Các ứng dụng trong AI và Học máy

Softmax là nền tảng cho bất kỳ mô hình học sâu (deep learning) nào thực hiện phân loại đa lớp. Khả năng cung cấp một đầu ra rõ ràng, xác suất khiến nó trở nên vô giá trong nhiều lĩnh vực khác nhau.

  • Image Classification: This is the most common use case. A Convolutional Neural Network (CNN) trained on a dataset like ImageNet will use Softmax in its final layer. For an image of a pet, the model might output probabilities like {Dog: 0.9, Cat: 0.08, Rabbit: 0.02}, clearly indicating its prediction. Models like Ultralytics YOLO use this for classification tasks.
  • Xử Lý Ngôn Ngữ Tự Nhiên (Natural Language Processing - NLP): Trong mô hình hóa ngôn ngữ, Softmax được sử dụng để dự đoán từ tiếp theo trong một chuỗi. Một mô hình như Transformer sẽ tính toán điểm số cho mọi từ trong từ vựng của nó và sử dụng Softmax để chuyển đổi các điểm số này thành xác suất. Đây là một thành phần cốt lõi của Mô Hình Ngôn Ngữ Lớn (Large Language Models - LLMs) và cung cấp sức mạnh cho các ứng dụng từ dịch máy đến tạo văn bản.
  • Phân tích ảnh y tế: Khi phân tích ảnh chụp y tế để phân loại các loại mô khác nhau hoặc xác định các bệnh lý (ví dụ: lành tính, ác tính hoặc khỏe mạnh), một mô hình sẽ sử dụng Softmax để gán xác suất cho mỗi chẩn đoán, giúp các bác sĩ lâm sàng đưa ra quyết định sáng suốt hơn.
  • Học Tăng Cường (Reinforcement Learning): Trong học tăng cường (reinforcement learning) dựa trên chính sách, Softmax có thể được sử dụng để chuyển đổi các giá trị đã học của các hành động khác nhau thành một chính sách, là một phân phối xác suất trên các hành động có thể mà một tác nhân có thể thực hiện.

Softmax so với các hàm kích hoạt khác

Điều quan trọng là phải phân biệt Softmax với các hàm kích hoạt (activation functions) phổ biến khác, vì chúng phục vụ các mục đích khác nhau.

  • Sigmoid: Hàm Sigmoid cũng xuất ra các giá trị từ 0 đến 1, nhưng nó được sử dụng cho phân loại nhị phân (một lớp so với một lớp khác) hoặc phân loại đa nhãn, trong đó một đầu vào có thể thuộc về nhiều lớp cùng một lúc. Ví dụ: một bộ phim có thể được phân loại là cả "Hài" và "Hành động". Ngược lại, Softmax dành cho phân loại đa lớp, trong đó các lớp loại trừ lẫn nhau—một chữ số viết tay phải là 7 hoặc 8, nhưng không thể cả hai.
  • ReLU (Rectified Linear Unit): ReLU và các biến thể của nó như Leaky ReLUSiLU được sử dụng trong các lớp ẩn của mạng nơ-ron. Công việc chính của chúng là giới thiệu tính phi tuyến, cho phép mô hình học các mẫu phức tạp trong dữ liệu. Chúng không tạo ra xác suất và không được sử dụng làm hàm đầu ra cho phân loại.
  • Tanh (Hyperbolic Tangent): Tanh nén các giá trị vào khoảng từ -1 đến 1. Giống như ReLU, nó được sử dụng trong các lớp ẩn, đặc biệt là trong các kiến trúc Mạng Nơ-ron Tái Phát (RNN) cũ hơn. Nó không thích hợp để tạo ra các đầu ra xác suất cho các nhiệm vụ phân loại.

Những cân nhắc thực tế

Mặc dù mạnh mẽ, Softmax có thể nhạy cảm với các điểm số đầu vào rất lớn, đôi khi có thể dẫn đến sự không ổn định về số (tràn hoặc thiếu). Để giải quyết vấn đề này, các framework học sâu (deep learning frameworks) hiện đại như PyTorchTensorFlow triển khai các phiên bản ổn định về số của Softmax ở chế độ nền.

Softmax hầu như luôn được ghép nối với một hàm mất mát (loss function) cụ thể được gọi là Cross-Entropy Loss (hoặc Log Loss) trong quá trình huấn luyện mô hình (model training). Sự kết hợp này rất hiệu quả để huấn luyện các bộ phân loại đa lớp. Hiểu hành vi của Softmax là rất quan trọng để huấn luyện và giải thích mô hình hiệu quả, có thể được quản lý và theo dõi bằng các nền tảng như Ultralytics HUB để hợp lý hóa các thử nghiệm và triển khai (deployments).

Tham gia cộng đồng Ultralytics

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
Đã sao chép liên kết vào clipboard