Softmax
Khám phá hàm Softmax trong AI. Tìm hiểu cách hàm này chuyển logits thành xác suất cho bài toán phân loại đa lớp bằng Ultralytics YOLO26 và neural network.
Softmax là một hàm toán học đóng vai trò then chốt trong lĩnh vực trí tuệ nhân tạo, cụ thể là bước cuối trong nhiều thuật toán phân loại. Hàm này chuyển đổi một vector gồm các số thô, thường được gọi là logits, thành một vector xác suất. Phép biến đổi này đảm bảo tất cả giá trị đầu ra đều dương và có tổng chính xác bằng một, qua đó tạo ra một phân phối xác suất hợp lệ. Nhờ đặc tính này, Softmax là hàm kích hoạt tiêu chuẩn được sử dụng trong lớp đầu ra của các mạng nơ-ron được thiết kế cho bài toán phân loại đa lớp, trong đó hệ thống phải chọn một danh mục duy nhất từ hơn hai tùy chọn loại trừ lẫn nhau.
Cơ chế của Softmax#
Trong một quy trình học sâu (DL) điển hình, các lớp của mạng thực hiện những phép nhân ma trận và phép cộng phức tạp. Đầu ra của lớp cuối cùng, trước khi kích hoạt, gồm các điểm số thô được gọi là logits. Các giá trị này có thể nằm trong khoảng từ âm vô cùng đến dương vô cùng, khiến việc diễn giải trực tiếp chúng dưới dạng mức độ tin cậy trở nên khó khăn.
Softmax giải quyết vấn đề này bằng cách thực hiện hai phép toán chính:
-
Lũy thừa: Hàm tính lũy thừa của từng số đầu vào. Bước này đảm bảo tất cả giá trị đều không âm (vì $e^x$ luôn dương) và làm giảm ảnh hưởng của các giá trị thấp hơn đáng kể so với giá trị lớn nhất, đồng thời làm nổi bật các điểm số lớn nhất.
-
Chuẩn hóa: Hàm cộng các giá trị sau khi lũy thừa rồi chia từng giá trị lũy thừa riêng lẻ cho tổng này. Quy trình chuẩn hóa này thu phóng các số để chúng biểu thị các phần của một tổng thể, cho phép nhà phát triển diễn giải chúng dưới dạng điểm số phần trăm thể hiện độ tin cậy.
Các ứng dụng trong thực tế#
Khả năng xuất ra các xác suất rõ ràng khiến Softmax trở nên không thể thiếu trong nhiều ngành và tác vụ học máy (ML) khác nhau.
- Phân loại ảnh: Trong thị giác máy tính, các model sử dụng Softmax để phân loại ảnh. Ví dụ, khi model phân loại Ultralytics YOLO26 phân tích một bức ảnh, model có thể tạo ra các điểm số cho những lớp như "Golden Retriever", "German Shepherd" và "Poodle". Softmax chuyển đổi các điểm số này thành xác suất (ví dụ: 0.85, 0.10, 0.05), cho thấy độ tin cậy cao rằng ảnh có chứa một chú Golden Retriever. Điều này rất quan trọng đối với các ứng dụng từ tự động sắp xếp ảnh đến chẩn đoán y khoa trong lĩnh vực AI trong chăm sóc sức khỏe.
- Xử lý ngôn ngữ tự nhiên (NLP): Softmax là nền tảng của hoạt động tạo văn bản trong các Mô hình ngôn ngữ lớn (LLMs). Khi một model như Transformer tạo câu, model dự đoán từ (token) tiếp theo bằng cách tính điểm số cho từng từ trong từ vựng của nó. Softmax chuyển đổi các điểm số này thành xác suất, cho phép model chọn từ tiếp theo có khả năng xuất hiện cao nhất, qua đó hỗ trợ dịch máy tự nhiên và AI hội thoại.
- Học tăng cường: Các tác tử trong học tăng cường thường sử dụng Softmax để lựa chọn hành động. Thay vì luôn chọn hành động có giá trị cao nhất, tác tử có thể sử dụng các xác suất này để khám phá nhiều chiến lược khác nhau, cân bằng giữa khám phá và khai thác trong những môi trường như điều khiển robot hoặc chơi game.
Ví dụ mã Python#
Ví dụ sau đây minh họa cách tải một model phân loại YOLO26 đã được huấn luyện trước và truy cập các điểm số xác suất được tạo thông qua Softmax.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]
print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")Phân biệt Softmax với các khái niệm liên quan#
Mặc dù Softmax chiếm ưu thế trong các kịch bản đa lớp, điều quan trọng là phải phân biệt nó với những hàm toán học khác được sử dụng trong huấn luyện model và thiết kế kiến trúc:
- Sigmoid: Hàm Sigmoid cũng thu phóng các giá trị về khoảng từ 0 đến 1, nhưng xử lý từng đầu ra một cách độc lập. Điều này khiến Sigmoid trở nên lý tưởng cho phân loại nhị phân (có/không) hoặc phân loại đa nhãn, trong đó các lớp không loại trừ lẫn nhau (ví dụ: một ảnh có thể chứa cả "Person" và "Backpack"). Softmax buộc tổng các xác suất bằng một, khiến các lớp cạnh tranh với nhau.
- ReLU (Đơn vị tuyến tính chỉnh lưu): ReLU chủ yếu được sử dụng trong các lớp ẩn của mạng để tạo tính phi tuyến. Không giống Softmax, ReLU không giới hạn đầu ra trong một khoảng cụ thể (hàm chỉ cho đầu ra bằng 0 đối với đầu vào âm và chính giá trị đầu vào đối với đầu vào dương) và không tạo ra phân phối xác suất.
- Argmax: Trong khi Softmax cung cấp xác suất cho tất cả các lớp, hàm Argmax thường được sử dụng kết hợp để chọn chỉ số duy nhất có xác suất cao nhất. Softmax cung cấp độ tin cậy "mềm", còn Argmax đưa ra quyết định cuối cùng "cứng".
Tích hợp nâng cao#
Trong các pipeline ML hiện đại, Softmax thường được tính ngầm bên trong các hàm loss. Ví dụ, Cross-Entropy Loss kết hợp Softmax và log-likelihood âm thành một bước toán học duy nhất để cải thiện độ ổn định số trong quá trình huấn luyện. Các nền tảng như Ultralytics Platform tự động xử lý những vấn đề phức tạp này, cho phép người dùng huấn luyện các model mạnh mà không cần tự triển khai các phép toán này.









