Temperature Scaling Là Gì?

Temperature Scaling là một kỹ thuật hiệu chỉnh (calibration) mô hình học máy, giúp điều chỉnh độ tin cậy của các dự đoán mà không làm thay đổi kết quả phân loại. Nói đơn giản hơn, nó giống như việc bạn chỉnh lại đồng hồ đo nhiệt độ cho chính xác hơn, chứ không phải thay đổi nhiệt độ thực tế trong phòng.
Trong phân loại, một mô hình thường xuất ra xác suất cho mỗi lớp. Ví dụ, mô hình nói “90% chắc chắn đây là ảnh mèo”. Nhưng thực tế, nếu bạn lấy 100 ảnh mà mô hình dự đoán 90% là mèo, có thể chỉ 70 ảnh thật sự là mèo. Đó gọi là mô hình quá tự tin (overconfident). Temperature Scaling giúp sửa vấn đề này.
Tại Sao Mô Hình AI Thường “Tự Tin Quá Mức”?
Hầu hết các mạng nơ-ron sâu (deep neural networks) đều mắc bệnh tự tin thái quá. Một mô hình đạt 95% độ chính xác (accuracy) nhưng xác suất dự đoán trung bình luôn ở mức 99%+. Nghĩa là mô hình đoán đúng thì quá tự tin, đoán sai cũng… tự tin không kém.
Đây là vấn đề nghiêm trọng trong thực tế. Trong y khoa, nếu AI nói “99% chắc chắn khối u này lành tính” mà thực tế chỉ 85% lành tính, bác sĩ có thể bỏ qua trường hợp ác tính. Trong xe tự lái, nếu hệ thống đoán “95% không có người đi bộ phía trước” nhưng thực tế chỉ 80%, hậu quả có thể nghiêm trọng.
Nguyên nhân chính là hàm loss function (như cross-entropy) chỉ tối ưu hóa cho việc đoán đúng lớp, không tối ưu hóa cho việc ước lượng xác suất chính xác. Mô hình học cách đưa ra dự đoán đúng, nhưng không học cách đưa ra mức độ tin cậy chính xác.
Temperature Scaling Hoạt Động Thế Nào?
Ý tưởng rất đơn giản. Thay vì dùng trực tiếp logits (đầu ra thô của mô hình trước khi qua softmax), ta chia tất cả logits cho một tham số T (temperature – nhiệt độ), rồi mới qua hàm softmax.
Công thức softmax bình thường: p_i = exp(z_i) / Σexp(z_j)
Công thức softmax có temperature: p_i = exp(z_i / T) / Σexp(z_j / T)
Khi T = 1: không thay đổi gì, kết quả như cũ.
Khi T > 1: phân phối xác suất “mềm” hơn. Ví dụ thay vì [0.95, 0.04, 0.01], kết quả thành [0.70, 0.20, 0.10]. Mô hình bớt tự tin.
Khi T < 1: phân phối “sắc” hơn, mô hình tự tin hơn. Nhưng trong thực tế, người ta hầu như chỉ dùng T > 1 vì mô hình deep learning thường bị overconfident.
Điểm hay nhất: vì T là một số dương duy nhất, việc nhân tất cả logits với cùng 1/T không làm thay đổi thứ tự các lớp. Kết quả phân loại (class prediction) vẫn y như cũ. Chỉ xác suất thay đổi.
Cách Tìm Tham Số T Optimal
Quá trình tìm T rất đơn giản và nhanh chóng. Bạn cần một tập dữ liệu validation (không dùng để train). Các bước như sau:
Bước 1: Cho mô hình dự đoán trên tập validation, thu thập tất cả logits.
Bước 2: Khởi tạo T = 1, sau đó tối ưu hóa để giảm NLL Loss (Negative Log-Likelihood) trên tập validation. NLL đo xem xác suất mô hình gán cho nhãn đúng có cao không.
Bước 3: Vì T chỉ là 1 tham số duy nhất, quá trình hội tụ rất nhanh, thường chỉ mất vài giây. Không cần retrain mô hình.
Đây chính là điểm mạnh nhất của Temperature Scaling: post-hoc calibration. Bạn train mô hình bình thường, xong rồi mới hiệu chỉnh. Không ảnh hưởng đến quá trình training, không cần đổi kiến trúc mô hình.
Đo Lường Calibration Bằng Cách Nào?
Metrics phổ biến nhất để đánh giá calibration là ECE (Expected Calibration Error). ECE chia xác suất thành các bin (như 0-10%, 10-20%, …, 90-100%), rồi tính độ lệch giữa confidence trung bình và accuracy thực tế trong mỗi bin.
Ví dụ: trong bin 90-100%, nếu confidence trung bình là 95% nhưng accuracy thực tế chỉ 82%, độ lỗi của bin đó là 13%. ECE là tổng có trọng số của tất cả các bin.
Ngoài ECE, còn có Brier Score và Reliability Diagram (biểu đồ trực quan cho thấy calibration tốt hay xấu). Nhiều nghiên cứu cho thấy Temperature Scaling giảm ECE đáng kể trên các bộ dataset phổ biến như CIFAR-100, ImageNet.
Temperature Scaling vs Temperature Trong LLM
Nhiều người nhầm lẫn hai khái niệm này. Temperature trong LLM (như GPT, Claude) là tham số điều chỉnh tính ngẫu nhiên khi sinh văn bản. T cao = văn bản đa dạng hơn, T thấp = văn bản deterministic hơn.
Temperature Scaling trong calibration là kỹ thuật hậu xử lý trên mô hình phân loại, mục đích làm cho xác suất dự đoán phản ánh đúng khả năng thực tế. Hai khái niệm dùng chung công thức toán học (chia logit cho T) nhưng mục đích và ngữ cảnh hoàn toàn khác.
Nếu bạn quan tâm đến Temperature trong LLM, mình có viết riêng bài về Temperature trong AI rồi, bạn có thể tham khảo thêm.
Ưu Điểm Và Hạn Chế
Ưu điểm: Đơn giản, nhanh, không cần retrain. Chỉ học 1 tham số duy nhất. Không thay đổi accuracy. Hoạt động tốt trên nhiều loại mô hình và dataset. Dễ implement, chỉ vài dòng code.
Hạn chế: Temperature Scaling chỉ hiệu chỉnh calibration toàn cục, không xử lý được miscalibration cục bộ. Nghĩa là nếu mô hình overconfident ở lớp A nhưng underconfident ở lớp B, một T duy nhất không thể sửa cả hai. Trong trường hợp đó, cần các phương pháp phức tạp hơn như Vector Scaling hoặc Matrix Scaling.
Ngoài ra, Temperature Scaling giả định rằng logit cao = tự tin đúng, nhưng nếu mô hình có systematic bias (thiên kiến có hệ thống), việc chỉ chia cho T không đủ để sửa.
Ứng Dụng Thực Tế
Temperature Scaling được dùng rộng rãi trong các hệ thống AI mà độ tin cậy của dự đoán quan trọng không kém việc dự đoán đúng:
Trong y tế, AI chẩn đoán ung thư cần biết chính xác mình tự tin bao nhiêu, để bác sĩ quyết định có cần sinh thiết thêm hay không.
Trong tài chính, AI chấm điểm tín dụng cần đưa ra xác suất vỡ nợ chính xác, không chỉ phân loại “được vay” hay “từ chối”.
Trong xe tự lái, hệ thống phát hiện chướng ngại vật cần biết khi nào chắc chắn, khi nào không chắc, để chuyển quyền điều khiển cho người lái.
Nói chung, bất cứ ứng dụng nào mà quyết định dựa trên xác suất chứ không chỉ class label, Temperature Scaling đều đáng để áp dụng.
Kết Luận
Temperature Scaling là một trong những kỹ thuật “ngắn gọn nhưng hiệu quả” nhất trong ML. Chỉ với 1 tham số, bạn có thể cải thiện đáng kể độ tin cậy của xác suất dự đoán. Nếu bạn đang xây dựng mô hình phân loại và cần output xác suất đáng tin cậy, đừng bỏ qua kỹ thuật này. Nó gần như không tốn chi phí, chỉ vài dòng code và vài giây tối ưu.
Cá nhân mình thấy Temperature Scaling là ví dụ điển hình cho triết lý: không phải cứ phức tạp mới tốt. Đôi khi một ý tưởng đơn giản, được áp dụng đúng chỗ, lại tạo ra giá trị lớn.