Đọc công thức mean squared error (MSE)
Đọc công thức MSE: từ ký hiệu lạ về phép tính tay
Bài trước, ta đã coi hàm số như một cái máy: bỏ vào một biến số, nhận ra một giá trị. Mô hình ML cũng vậy, nó nhận dữ liệu vào và nhả ra dự đoán. Câu hỏi tự nhiên là: làm sao biết cái máy đó đoán tốt hay dở? Bài này ghép ý "hàm số cho ra output" với ký hiệu tổng $\Sigma$ học ở Module 1 để đọc trọn vẹn công thức mean squared error (MSE).
Sau bài này, bạn sẽ:
- Gọi đúng tên từng ký hiệu trong công thức MSE.
- Giải thích được vì sao có phép bình phương và vì sao chia cho $n$.
- Tính tay MSE cho vài cặp (dự đoán, giá trị thật).
- Dùng MSE để so sánh hai mô hình trên cùng một bộ dữ liệu.
MSE qua một tình huống đời thường
Ba bạn cùng dự đoán nhiệt độ ngày mai, thật ra là 30°C. An dự đoán 31°C, Bình dự đoán 28°C, Chi dự đoán 40°C. Ai đoán tốt nhất? Ai bị "phạt" nặng nhất?
Cách chấm đơn giản nhất là cộng các khoảng lệch, nhưng lệch +1 và lệch -2 sẽ triệt tiêu nhau, kết quả thành vô nghĩa. Cách chấm của MSE: lấy từng khoảng lệch, bình phương nó, rồi lấy trung bình. An bị phạt $1^2 = 1$; Bình bị phạt $(-2)^2 = 4$; Chi bị phạt $10^2 = 100$. Rõ ràng Chi sai nhiều nhất và bị phạt nặng hơn hẳn.
MSE là trung bình của các bình phương sai số. Tên gọi đã nói hết cách làm.
Bóc tách từng ký hiệu
$$ \text{MSE} = \frac{1}{n}\sum_{i=1}^{n}\left(\hat{y}_i - y_i\right)^2 $$
Nhìn thì dày đặc, nhưng chỉ có 8 mảnh ghép:
| Ký hiệu | Đọc là | Nghĩa đời thường |
|---|---|---|
| $n$ | n | Số điểm dữ liệu, tức số lần ta đem ra so |
| $i$ | chỉ số i | Nhãn đánh số từng điểm, chạy từ 1 đến $n$ |
| $y_i$ | y-i | Giá trị thật của điểm thứ $i$ |
| $\hat{y}_i$ | y-hat-i | Giá trị mô hình dự đoán cho điểm thứ $i$ (mũ hat nghĩa là "đoán") |
| $\hat{y}_i - y_i$ | sai số | Dự đoán lệch bao nhiêu so với thật |
| $(\hat{y}_i - y_i)^2$ | bình phương sai số | Mức phạt riêng cho điểm thứ $i$ |
| $\sum_{i=1}^{n}$ | sigma | Cộng toàn bộ mức phạt lại |
| $\frac{1}{n}$ | một chia n | Chia đều để ra trung bình |
Với $n$ là _____, $\hat{y}_i$ là _____ và $y_i$ là _____.
Đọc thành lời: "Lấy từng cặp, tính hiệu giữa dự đoán và thật, bình phương hiệu đó, cộng hết lại, rồi chia cho số cặp."
flowchart TD
A["📊 Cặp dự đoán và thật"] --> B["➖ Tính hiệu"]
B --> C["✖️ Bình phương"]
C --> D["Σ Cộng tất cả"]
D --> E["➗ Chia cho n"]
E --> F["🎯 MSE"]
Vì sao bình phương và vì sao chia cho n
Bình phương làm hai việc cùng lúc. Thứ nhất, nó xóa dấu: lệch -2 và lệch +2 đều thành 4, nên lỗi âm không _____ lỗi dương. Thứ hai, nó phạt nặng lỗi lớn: lệch 1 thì phạt 1, lệch 2 phạt 4, lệch 10 phạt 100. Trong đời sống, dự đoán sai 1°C thì bỏ qua được, sai 10°C thì phải cảnh báo, và MSE phản ánh đúng mức độ nghiêm trọng đó.
Chia cho $n$ để con số không phụ thuộc vào việc bạn có bao nhiêu điểm dữ liệu. Cộng 100 điểm sẽ ra số rất lớn, cộng 10 điểm ra số nhỏ, so sánh sẽ vô nghĩa. Chia đều biến tổng thành trung bình, giúp hai bộ dữ liệu khác kích thước vẫn so được với nhau.
Một lưu ý về đơn vị: MSE có đơn vị là _____ đơn vị của $y$. Nếu $y$ là nhiệt độ °C thì MSE có đơn vị °C², nghe hơi lạ. Vì vậy người ta hay lấy căn bậc hai của MSE, gọi là RMSE, để quay về đơn vị gốc.
Tính tay ba ví dụ
Ví dụ 1 (nhỏ, để làm quen). Nhiệt độ thật $y = [20, 22, 24]$, mô hình đoán $\hat{y} = [21, 21, 25]$.
Sai số: $1$, $-1$, $1$. Bình phương: $1, 1, 1$. Tổng: $3$. Chia cho $n = 3$: MSE = 1,0 (°C²).
Ví dụ 2 (có một lỗi lớn). Giá nhà thật (triệu đồng) $y = [100, 120, 140, 160]$, mô hình đoán $\hat{y} = [110, 118, 138, 200]$.
Sai số: $10$, $-2$, $-2$, $40$. Bình phương: $100$, $4$, $4$, $1600$. Tổng: $1708$. Chia cho $n = 4$: MSE = 427. Con số này bị chi phối gần như hoàn toàn bởi một điểm sai 40 triệu. Nếu lấy căn: $\sqrt{427} \approx 20{,}7$ triệu, dễ cảm nhận hơn nhiều.
Ví dụ 3 (so sánh hai mô hình). Cùng dữ liệu $y = [3, 5, 7, 9]$.
| Dự đoán | Sai số | Bình phương | MSE | |
|---|---|---|---|---|
| Mô hình A | 4, 5, 7, 9 | 1, 0, 0, 1 | 1, 0, 0, 1 | $2/4 = 0{,}5$ |
| Mô hình B | 3, 5, 7, 13 | 0, 0, 0, 4 | 0, 0, 0, 16 | $16/4 = 4{,}0$ |
Mô hình B đoán đúng 3 trên 4 điểm, nhưng vẫn thua A vì điểm sai cuối bị bình phương thành 16. Đây là bài học cốt lõi: MSE nhỏ nghĩa là mô hình sát thật, và một lỗi lớn có sức nặng hơn nhiều lỗi nhỏ cộng lại.
Tip: Khi tính MSE bằng tay, hãy kẻ bảng 5 cột: $y_i$, $\hat{y}_i$, sai số, bình phương, rồi mới cộng. Trình tự này giúp bạn không bỏ sót điểm nào và dễ dò lại khi ra số lạ.
Ba vấp ngã thường gặp khi tính MSE
- Trừ ngược thứ tự. Công thức là $\hat{y}_i - y_i$, nhưng đảo thành $y_i - \hat{y}_i$ cũng không sao, vì bình phương xóa dấu. Điều duy nhất không được làm là quên bình phương.
- Chia cho $n-1$ thay vì $n$. Với MSE trong học máy, mẫu số là $n$. Con số $n-1$ thuộc về một khái niệm khác (phương sai mẫu), bạn sẽ gặp ở bài sau.
- Quên rằng MSE phụ thuộc thang đo. MSE của giá nhà (triệu) và MSE của nhiệt độ (°C) không so sánh được với nhau. Chỉ so MSE giữa các mô hình trên cùng một bộ dữ liệu, cùng đơn vị.
Mẹo kiểm tra nhanh: nếu mọi dự đoán đều hoàn hảo, MSE phải bằng 0. Nếu MSE ra số âm, chắc chắn bạn đã bỏ mất bước bình phương.
Chốt lại và bước tiếp theo
- MSE = trung bình của bình phương sai số, đọc từ trong ra ngoài: hiệu, bình phương, cộng, chia cho $n$.
- Bình phương để phạt lỗi lớn và khử dấu; chia cho $n$ để so sánh công bằng.
- MSE càng nhỏ càng tốt, nhưng chỉ so trên cùng bộ dữ liệu và cùng đơn vị.
Bài kế tiếp, "Trung bình, độ lệch và tỉ lệ phần trăm trên dữ liệu thật", sẽ mở rộng đúng cái "chia cho $n$" mà bạn vừa dùng: trung bình là gì, độ lệch đo mức phân tán ra sao, và vì sao phần trăm lại dễ đọc hơn con số thô.
Front: MSE là viết tắt của gì? Back: Mean Squared Error, sai số bình phương trung bình.
Front: Trong công thức MSE, n là gì? Back: Số điểm dữ liệu, tức số cặp (dự đoán, thật) được đem ra so.
Front: Ký hiệu y_i nghĩa là gì? Back: Giá trị thật của điểm dữ liệu thứ i.
Front: Ký hiệu ŷ_i nghĩa là gì? Back: Giá trị mô hình dự đoán cho điểm thứ i; dấu mũ nghĩa là đoán.
Front: Vì sao bình phương sai số? Back: Để khử dấu và phạt nặng những lỗi lớn.
Front: Vì sao chia cho n? Back: Để lấy trung bình, nhờ đó so sánh được các bộ dữ liệu khác kích thước.
Front: MSE nhỏ cho biết điều gì? Back: Mô hình dự đoán càng sát giá trị thật.
Front: Đơn vị của MSE là gì? Back: Bình phương đơn vị của y, ví dụ °C² hoặc triệu².
Front: RMSE là gì? Back: Căn bậc hai của MSE, đưa sai số về đơn vị gốc của y.
Front: Một lỗi rất lớn ảnh hưởng thế nào tới MSE? Back: Ảnh hưởng rất mạnh vì bị bình phương, có thể lấn át nhiều lỗi nhỏ.
Front: Tính MSE khi y = [2, 4] và ŷ = [3, 3]. Back: Sai số 1 và -1, bình phương 1 + 1 = 2, chia 2 được MSE = 1.
Front: Nếu mọi dự đoán đều đúng hoàn hảo thì MSE bằng bao nhiêu? Back: Bằng 0.
Front: Bốn bước tính MSE theo thứ tự? Back: Tính hiệu, bình phương, cộng tất cả bằng Σ, chia cho n.
Front: Sai số ŷ_i - y_i dương nghĩa là gì? Back: Mô hình dự đoán cao hơn giá trị thật.
MSE có đơn vị là _____ đơn vị của y, nên người ta thường lấy căn bậc hai để được RMSE.