AIToanHoc.comAI Toán Học
Toán đứng sau trí tuệ nhân tạo

Hàm mất mát là gì: MSE, MAE và entropy chéo tính tay, chọn đúng cho từng bài toán

Hàm mất mát đo mô hình sai bao nhiêu và là thứ thuật toán huấn luyện thật sự tối ưu. Tính tay MSE, MAE, entropy chéo và cách chọn theo bài toán.

Can Tho riverside market at dawn, a vendor seen from behind weighing fruit on an old balance scale, boats blurred in the background, golden side light

Hàm mất mát là một công thức biến khoảng cách giữa dự đoán của mô hình và đáp án đúng thành một con số duy nhất: càng nhỏ càng tốt. Thuật toán huấn luyện không biết “mô hình tốt” nghĩa là gì; nó chỉ biết làm cho con số này nhỏ đi. Vì vậy chọn hàm mất mát là quyết định trực tiếp mô hình sẽ học điều gì.

Ba hàm gặp nhiều nhất là sai số bình phương trung bình (MSE) và sai số tuyệt đối trung bình (MAE) cho bài toán dự đoán con số, và entropy chéo cho bài toán phân loại, kể cả mô hình ngôn ngữ đoán từ tiếp theo. Bài này tính tay cả ba trên ví dụ giả định, giải thích vì sao bình phương phạt nặng sai số lớn, vì sao entropy chéo dùng logarit, và vì sao không lấy thẳng độ chính xác làm hàm mất mát.

Hàm mất mát đứng ở đâu trong vòng huấn luyện

Mỗi vòng huấn luyện có bốn bước: đưa một lô dữ liệu qua mô hình để có dự đoán, so dự đoán với đáp án bằng hàm mất mát, tính đạo hàm của hàm mất mát theo từng tham số, rồi chỉnh tham số theo hướng làm hàm mất mát giảm. Hàm mất mát là điểm nối giữa dữ liệu và thuật toán tối ưu, và là nơi duy nhất mô hình “nghe” được ý muốn của người huấn luyện.

Một hàm mất mát dùng được phải có vài tính chất. Nó phải nhỏ nhất khi dự đoán trùng đáp án. Nó phải có đạo hàm, hoặc gần như ở mọi nơi, để thuật toán hạ dốc biết hướng đi. Và đạo hàm đó phải mang thông tin: dự đoán sai nhiều thì đạo hàm nên lớn để mô hình sửa mạnh, sai ít thì sửa nhẹ.

Cần phân biệt hàm mất mát với thước đo đánh giá. Hàm mất mát dùng trong lúc huấn luyện, cần trơn để tính đạo hàm. Thước đo đánh giá như độ chính xác, độ nhạy, sai số theo phần trăm dùng để báo cáo và ra quyết định, không cần trơn. Hai thứ thường liên quan nhưng không trùng nhau, và mô hình có hàm mất mát giảm vẫn có thể chưa đạt thước đo mà bạn quan tâm.

MSE và MAE: tính tay trên bốn dự đoán

Ví dụ giả định: một cửa hàng dự đoán số đơn hàng bốn ngày. Thực tế là 10, 12, 8, 15; mô hình dự đoán 11, 12, 10, 12. Sai số (dự đoán trừ thực tế) lần lượt là 1, 0, 2, −3.

NgàyThực tếDự đoánSai sốBình phương sai sốTrị tuyệt đối sai số
11011111
21212000
3810242
41512−393
Trung bìnhMSE = 14 : 4 = 3,5MAE = 6 : 4 = 1,5

MSE bằng 3,5 có đơn vị là “đơn hàng bình phương”, khó diễn giải, nên khi báo cáo người ta thường lấy căn bậc hai, gọi là RMSE: căn của 3,5 xấp xỉ 1,87 đơn hàng. MAE bằng 1,5 đơn hàng thì đọc thẳng được: trung bình mỗi ngày mô hình lệch một đơn rưỡi.

Đạo hàm của MSE theo dự đoán là 2 nhân sai số chia số mẫu, tỉ lệ với độ lệch, nên càng gần đúng thì bước sửa càng nhỏ, rất hợp với thuật toán hạ dốc. Đạo hàm của MAE chỉ là dấu của sai số, luôn có cùng độ lớn, không có đạo hàm tại 0, nên huấn luyện với MAE thường cần tốc độ học giảm dần cẩn thận hơn.

Bình phương phạt nặng sai số lớn: lợi hay hại tuỳ dữ liệu

Giả sử ngày thứ tư thực tế không phải 15 mà là 25 vì có một khách sỉ đặt bất ngờ, trong khi mô hình vẫn dự đoán 12. Sai số ngày đó thành −13. MSE trở thành (1 + 0 + 4 + 169) : 4 = 43,5, tăng hơn mười hai lần so với 3,5. MAE trở thành (1 + 0 + 2 + 13) : 4 = 4, chỉ tăng khoảng 2,7 lần. Một điểm bất thường đã chiếm gần hết MSE.

Khi huấn luyện bằng MSE, mô hình sẽ cố kéo dự đoán về phía điểm bất thường đó, vì giảm một sai số 13 có lợi hơn nhiều so với giảm vài sai số nhỏ. Nếu điểm bất thường là lỗi nhập liệu hay sự kiện không lặp lại, đây là tác hại: mô hình bị lệch vì một con số không đại diện. Nếu sai số lớn thật sự rất tốn kém trong thực tế, ví dụ thiếu hàng trầm trọng, thì phạt nặng lại đúng ý bạn.

Có một cách nhìn thống kê giúp chọn. Tối ưu MSE dẫn tới dự đoán gần giá trị trung bình, còn tối ưu MAE dẫn tới dự đoán gần trung vị. Dữ liệu lệch, nhiều ngoại lai thì trung vị thường đại diện tốt hơn. Ở giữa hai cực còn có hàm Huber: hành xử như bình phương khi sai số nhỏ và như trị tuyệt đối khi sai số lớn, giữ được đạo hàm trơn mà bớt nhạy với ngoại lai.

Entropy chéo cho bài toán phân loại

Với phân loại, mô hình trả về xác suất cho từng lớp. Entropy chéo của một mẫu bằng âm logarit tự nhiên của xác suất mà mô hình gán cho lớp đúng. Bảng dưới cho thấy giá trị đó thay đổi thế nào:

Xác suất mô hình gán cho lớp đúngEntropy chéo = −ln(xác suất)Diễn giải
0,99khoảng 0,01Đúng và rất tự tin, gần như không bị phạt
0,9khoảng 0,105Đúng và khá tự tin
0,5khoảng 0,693Phân vân như tung đồng xu
0,1khoảng 2,303Sai khá rõ
0,01khoảng 4,605Sai và rất tự tin, bị phạt nặng

Điểm mấu chốt nằm ở hai hàng cuối. Khi xác suất cho lớp đúng tiến về 0, logarit tiến về âm vô cùng nên mức phạt tăng không giới hạn. Entropy chéo vì thế trừng phạt rất nặng kiểu sai mà tự tin, đúng thứ ta muốn mô hình tránh.

Logarit còn có lợi về tính toán: xác suất của cả tập dữ liệu là tích của rất nhiều số nhỏ hơn 1, nhanh chóng nhỏ tới mức máy tính làm tròn về 0; lấy logarit biến tích thành tổng, ổn định hơn nhiều. Tối thiểu hoá entropy chéo trung bình tương đương với cực đại hoá hợp lý của dữ liệu, nên nó có nền tảng thống kê rõ ràng chứ không phải công thức chọn tuỳ tiện.

Vì sao không lấy thẳng độ chính xác làm hàm mất mát

Độ chính xác, tức tỉ lệ mẫu đoán đúng, là thước đo dễ hiểu nhất cho phân loại. Nhưng nó gần như vô dụng cho thuật toán hạ dốc. Lý do là độ chính xác chỉ đổi khi một mẫu chuyển từ sai sang đúng hoặc ngược lại. Nhích trọng số một chút, xác suất cho lớp đúng tăng từ 0,40 lên 0,41, mẫu vẫn sai, độ chính xác không đổi. Đạo hàm của nó bằng 0 ở gần như mọi nơi, nên thuật toán không biết đi hướng nào.

Entropy chéo thì nhạy với từng thay đổi nhỏ: xác suất từ 0,40 lên 0,41 làm entropy chéo giảm từ khoảng 0,916 xuống khoảng 0,892. Thuật toán nhận được tín hiệu “đi tiếp hướng này”, dù mẫu chưa chuyển sang đúng.

Thêm một lý do: độ chính xác không phân biệt mô hình đúng với xác suất 0,51 và mô hình đúng với xác suất 0,99. Trong thực tế, xác suất có ý nghĩa: hệ thống lọc thư rác có thể tự động chặn thư khi xác suất trên 0,99 nhưng chỉ đánh dấu nghi ngờ khi khoảng 0,6. Huấn luyện bằng entropy chéo khuyến khích mô hình cho ra xác suất có ý nghĩa hơn, dù chưa chắc đã khớp hoàn toàn với tần suất thật.

Chọn hàm mất mát theo loại bài toán

Phần lớn trường hợp, loại bài toán quyết định luôn hàm mất mát và hàm kích hoạt ở đầu ra. Bảng dưới là các cặp tiêu chuẩn:

Bài toánĐầu ra mô hìnhHàm mất mát thường dùng
Dự đoán một con số, sai số phân bố đềuMột số thực, không qua hàm kích hoạtMSE
Dự đoán con số, dữ liệu nhiều ngoại laiMột số thựcMAE hoặc Huber
Phân loại hai lớpMột xác suất qua sigmoidEntropy chéo nhị phân
Phân loại nhiều lớp, mỗi mẫu một nhãnVector xác suất qua softmaxEntropy chéo
Mỗi mẫu có thể nhiều nhãn cùng lúcMỗi nhãn một sigmoid riêngTổng entropy chéo nhị phân theo từng nhãn
Mô hình ngôn ngữ đoán từ tiếp theoVector xác suất trên toàn bộ từ vựngEntropy chéo trung bình theo từng vị trí

Với mô hình ngôn ngữ, người ta hay báo cáo thêm độ bối rối (perplexity), bằng e mũ entropy chéo trung bình. Ví dụ giả định: entropy chéo trung bình là 2 thì độ bối rối là e², xấp xỉ 7,39, đọc nôm na là mô hình phân vân như đang chọn đều giữa khoảng bảy lựa chọn ở mỗi vị trí. Con số này chỉ so được giữa các mô hình dùng cùng cách tách từ và cùng tập đánh giá.

Khi hàm mất mát không đo đúng điều bạn muốn

Mất cân bằng lớp. Nếu chỉ 1% giao dịch là gian lận, mô hình đoán “không gian lận” cho mọi thứ vẫn có entropy chéo khá thấp và độ chính xác 99%. Cách xử lý thường gặp là gán trọng số lớn hơn cho lớp hiếm trong hàm mất mát, hoặc lấy mẫu lại dữ liệu.

Chi phí sai lệch không đối xứng. Đoán thiếu hàng và đoán dư hàng gây thiệt hại khác nhau. MSE coi hai chiều như nhau. Khi chiều sai nào đắt hơn rõ rệt, có thể dùng hàm mất mát lệch, phạt chiều đó nặng hơn.

Mục tiêu kinh doanh không trơn. Doanh thu, tỉ lệ khách quay lại, mức hài lòng không tính đạo hàm theo trọng số được. Người ta tối ưu một hàm mất mát thay thế, rồi đánh giá bằng mục tiêu thật trên dữ liệu kiểm định. Khoảng cách giữa hai thứ này cần được theo dõi chứ không được giả định là bằng 0.

Mất mát giảm nhưng mô hình không tốt lên. Nếu hàm mất mát trên tập huấn luyện giảm mãi còn trên tập kiểm định đi lên, mô hình đang học thuộc dữ liệu. Hàm mất mát chỉ phản ánh dữ liệu nó được tính trên đó, nên luôn phải nhìn cả hai đường.

Câu hỏi thường gặp

Hàm mất mát và hàm chi phí khác nhau thế nào?

Nhiều tài liệu dùng lẫn hai từ. Khi phân biệt, hàm mất mát thường chỉ mức phạt cho một mẫu, còn hàm chi phí hay hàm mục tiêu là trung bình hoặc tổng trên cả tập dữ liệu, có khi cộng thêm số hạng chính quy hoá. Đọc tài liệu nào thì xem định nghĩa của chính tài liệu đó.

Vì sao entropy chéo dùng logarit tự nhiên mà không dùng logarit cơ số 2?

Đổi cơ số chỉ nhân hàm mất mát với một hằng số, không đổi vị trí cực tiểu. Logarit tự nhiên được dùng vì đạo hàm gọn hơn, đặc biệt khi kết hợp với softmax. Khi đo theo đơn vị bit trong lý thuyết thông tin thì dùng cơ số 2, nên các con số báo cáo cần ghi rõ cơ số.

Hàm mất mát bằng 0 có phải mô hình hoàn hảo không?

Chỉ có nghĩa là mô hình khớp hoàn toàn với dữ liệu nó được tính trên đó. Nếu đó là tập huấn luyện, giá trị 0 thường là dấu hiệu học thuộc hơn là hoàn hảo. Điều cần biết là sai số trên dữ liệu mới mà mô hình chưa từng thấy.

Có thể tự thiết kế hàm mất mát riêng không?

Có, và trong nhiều bài toán thực tế người ta làm vậy, ví dụ cộng thêm mức phạt khi dự đoán vi phạm một ràng buộc nghiệp vụ. Hàm tự thiết kế cần có đạo hàm, cần nhỏ nhất ở đúng chỗ bạn muốn, và nên được thử trên dữ liệu giả lập trước để chắc nó không dẫn mô hình tới một lời giải lách luật.

Tại sao mô hình phân loại hay dùng softmax đi kèm entropy chéo?

Softmax biến các điểm số thô thành một vector xác suất có tổng bằng 1, còn entropy chéo đo xác suất của lớp đúng. Khi ghép hai thứ, đạo hàm theo điểm số thô có dạng rất gọn là xác suất dự đoán trừ nhãn đúng, vừa dễ tính vừa ổn định, nên thư viện thường gộp chúng thành một hàm.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138