Đo coverage cho mạng nơ-ron
🎯 Mục tiêu học (LO AI-3.4.3 · mức K2 – Hiểu): giải thích các thước đo coverage cho mạng nơ-ron.
💡 Ý cốt lõi: mạng nơ-ron không có nhánh code để phủ — hành vi nằm ở weights/bias/activation → cần coverage riêng đo xem test đã "chạm" tới các phần nào của mạng.
Ba thước đo coverage tiêu biểu
| Thước đo | Đo gì |
|---|---|
| Neuron Coverage | Tỷ lệ nơ-ron có đầu ra vượt một ngưỡng cho trước trong khi test. |
| k-Multisection Neuron Coverage (kMNC) | Chia khoảng đầu ra của mỗi nơ-ron thành k phần; đo tỷ lệ các phần được kích hoạt khi test. |
| Neuron Boundary Coverage (NBC) | Tỷ lệ nơ-ron có đầu ra vượt mức tối đa (hoặc dưới mức tối thiểu) từng đạt trong huấn luyện. |
💡 Hình dung dễ hơn: coi mạng nơ-ron như một tòa nhà nhiều phòng, mỗi phòng (nơ-ron) có một đèn chỉnh sáng được (từ mờ tới chói). Mỗi ca test là một "lượt đi" qua tòa nhà.
Neuron Coverage — bao nhiêu phòng có đèn sáng (vượt ngưỡng) khi test? Vd mạng có 10 nơ-ron, test làm 6 nơ-ron sáng → coverage = 60%; 4 phòng chưa bao giờ sáng = chưa được test, có thể ẩn lỗi.
kMNC — chia độ sáng mỗi đèn thành k nấc (mờ → chói). Test đã làm đèn chạy qua bao nhiêu nấc? Nếu đèn chỉ luôn ở mức mờ, các nấc sáng hơn chưa được kiểm.
NBC — có đèn nào sáng hơn mức chói nhất (hoặc tối hơn mức tối nhất) từng thấy lúc học không? Nếu có → mạng đang ở tình huống lạ, vượt vùng quen thuộc → đáng soi kỹ.
Ích lợi & giới hạn
Ích lợi: lộ ra vùng chưa được test — nếu một số nơ-ron/lớp không bao giờ kích hoạt khi test, hiệu năng ở các ranh giới quyết định liên quan đáng ngờ → giúp tester thiết kế thêm ca test cho phần ít được khám phá. (Công cụ thương mại hỗ trợ các thước đo này hiện còn hạn chế.)
Giới hạn: coverage cấu trúc một mình không bảo đảm mạng khái quát tốt hay xử lý được biến thể thực tế. Mạng có thể học tương quan giả → kích hoạt đúng nhưng vì lý do sai. Nên phải dùng kèm adversarial testing và metamorphic testing (Chương 5, 6, 7).
📝 Bẫy hay gặp
Đề hay cho một phát biểu nghe hợp lý nhưng sai — nhớ mấy chỗ gài sau:
- "Đạt 100% neuron coverage là mạng chắc chắn tốt" → SAI: coverage cấu trúc không bảo đảm khái quát tốt (có thể học tương quan giả).
- "Coverage mạng nơ-ron giống hệt phủ nhánh code" → SAI: mạng không có nhánh code, coverage đo mức kích hoạt nơ-ron.
- Nhầm định nghĩa: NBC xét vượt biên min/max từng đạt khi huấn luyện; kMNC chia khoảng thành k phần.
📌 Ghi nhớ
3 thước đo: Neuron Coverage (vượt ngưỡng) · kMNC (k phần) · NBC (vượt biên min/max)
Nhớ: coverage cao ≠ mạng tốt
Với tester: dùng coverage để phát hiện vùng mạng chưa được test, nhưng đừng coi là bằng chứng đủ. Luôn kết hợp với adversarial & metamorphic testing để bắt lỗi "đúng vì lý do sai".
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
| Thuật ngữ (EN) | Nghĩa & ghi nhớ nhanh |
|---|---|
| Structural coverage | Coverage cấu trúc — đo mức test chạm tới bên trong |
| Neuron coverage | Coverage nơ-ron — tỷ lệ nơ-ron vượt ngưỡng |
| k-Multisection Neuron Coverage (kMNC) | Chia khoảng đầu ra thành k phần, đo phần được kích hoạt |
| Neuron Boundary Coverage (NBC) | Tỷ lệ nơ-ron vượt biên min/max từng đạt khi train |
| Threshold | Ngưỡng — mốc để coi nơ-ron là 'kích hoạt' |
| Activation | Kích hoạt — đầu ra nơ-ron khi có đầu vào test |
| Decision boundary | Ranh giới quyết định — nơi mô hình đổi kết luận |
| Spurious correlation | Tương quan giả — mối liên hệ vô nghĩa mà mô hình học nhầm |
| Adversarial testing | Kiểm thử đối kháng — đầu vào cố tình gây sai |
| Metamorphic testing | Kiểm thử biến hình — dùng quan hệ giữa các đầu vào/ra |
| Generalization | Khả năng khái quát — chạy đúng trên dữ liệu mới |
🎯 Câu hỏi minh họa (phong cách đề CT-AI · K2)
Which statement about neural network structural coverage is correct?
- a) Achieving high coverage guarantees the network generalises well.
- b) It can reveal parts of the network never activated by tests, but does not on its own guarantee good generalisation.
- c) It replaces the need for adversarial and metamorphic testing.
- d) Neural networks follow explicit code paths, so branch coverage is enough.
Xem bản dịch tiếng Việt
Phát biểu nào về coverage cấu trúc mạng nơ-ron là đúng?
a) Coverage cao bảo đảm mạng khái quát tốt.
b) Lộ ra phần mạng chưa được test kích hoạt, nhưng một mình không bảo đảm khái quát tốt.
c) Nó thay thế được adversarial & metamorphic testing.
d) Mạng nơ-ron theo nhánh code tường minh nên phủ nhánh là đủ.
Xem đáp án & giải thích
✅ Đáp án đúng: b — Coverage lộ vùng chưa test nhưng không bảo đảm khái quát tốt.
a sai — coverage cao ≠ khái quát tốt (có tương quan giả).
c sai — vẫn cần adversarial & metamorphic testing.
d sai — mạng không theo nhánh code tường minh.
Đề để tiếng Anh cho sát đề thi thật; phần giải thích để tiếng Việt cho dễ hiểu. Câu hỏi do maiqai.com tự soạn theo phong cách đề.
📎 Nguồn: Chương 3 – Machine Learning, mục 3.4.3 "Coverage Measures for Neural Networks", trang 37 — ISTQB® Certified Tester AI Testing Syllabus v2.0 (© International Software Testing Qualifications Board). Nội dung biên soạn/dịch ý lại bằng tiếng Việt, không sao chép nguyên văn.