Explainability: hộp trắng, hộp đen và giảm bias
Thất bại Tay 2016, giải thích được thuật toán, hộp trắng hộp đen, đạo đức bằng chứng và giảm thiên lệch.
Trung bìnhThuật toán ~60 phút
Ôn lại trước khi học
Giới thiệu
Bài này học giải thích mô hình và giảm thiên lệch. Bạn dùng nó để tránh bot học bậy như Tay.
Kiến thức cần nhớ
Bài học từ bot Tay 2016
- Tay là bot học từ mọi câu chat của cộng đồng.
- Kẻ xấu mớm lời độc hại, bot phun lại sau 1 ngày.
- Lỗi ở thiết kế: học mở không lọc, không phanh.
- Ví dụ đời thường: như trẻ nhỏ nghe gì nói nấy, phải có người lớn lọc.
Hộp trắng và hộp đen
- Hộp trắng: đọc được luật, ví dụ cây quyết định.
- Hộp đen: hàng triệu tham số, ví dụ mạng sâu.
- Kỹ sư cần giải thích để debug, người dùng cần để tin.
- Ví dụ đời thường: hộp trắng như công thức nấu ăn, hộp đen như món ăn không rõ nguyên liệu.
| Mô hình | Loại | Giải thích |
|---|---|---|
| Cây quyết định | Hộp trắng | Đọc luật trực tiếp |
| Hồi quy tuyến tính | Hộp trắng | Đọc trọng số |
| Mạng sâu | Hộp đen | Cần công cụ thêm |
Ba bệnh bằng chứng
- Bằng chứng mù mờ: tương quan yếu nhưng nói như chắc chắn.
- Thiếu truy xuất: không biết dữ liệu nào ra quyết định.
- Kết quả bất công: đúng trung bình nhưng sai trên nhóm thiểu số.
- Ví dụ đời thường: như chấm cả lớp giỏi mà giấu điểm kém của 1 nhóm.
Giảm bias
- Làm sạch và cân bằng dữ liệu đầu vào.
- Đo riêng độ đúng theo từng nhóm.
- Kiểm toán độc lập trước khi tung ra.
- Luôn có nút dừng con người cho quyết định nhạy.
Khi nào không nên dùng thuật toán
- Sự kiện thiên nga đen: hiếm, tác động lớn, không có trong dữ liệu quá khứ (khủng hoảng tài chính, đại dịch).
- Mô hình học từ quá khứ nên không dự báo được thiên nga đen, và có thể sai rất tự tin khi nó xảy ra.
- Quyết định có hậu quả lớn cần kịch bản dự phòng và người duyệt, không giao trọn cho thuật toán.
Ví dụ
- Input: bot học trực tiếp mọi câu user không lọc. Output: cảnh báo lặp lại Tay.
- Giải thích: phải có lọc và kiểm duyệt trước khi học.
- Input: mô hình từ chối vay không giải thích được. Output: rủi ro pháp lý, cần lớp giải thích.
- Giải thích: người bị từ chối cần biết lý do cụ thể.
💻 Bài tập
Ngôn ngữ: Python 3 với sklearn, pandas. Nộp vào day-063/. Bài này có code và có báo cáo.
Bài 1: Hộp trắng và hộp đen
Dùng bộ Adult Income (UCI, công khai): đoán thu nhập > 50K.
- Huấn luyện cây quyết định
max_depth=4. In toàn bộ luật (hộp trắng). - Huấn luyện random forest 200 cây (hộp đen). So accuracy 2 mô hình.
- Tự cài permutation importance: xáo trộn 1 cột trong tập test, đo accuracy giảm bao nhiêu. Lặp 10 lần mỗi cột. In bảng xếp hạng đặc trưng cho cả 2 mô hình.
Bài 2: Giải thích từng quyết định
Viết explain_one(model, x, X_train) theo cách đơn giản: với mỗi đặc trưng, thay giá trị của x bằng giá trị phổ biến nhất (hoặc trung vị) của tập train, đo xác suất dự đoán đổi bao nhiêu.
In cho 3 người bị đoán <= 50K: 3 đặc trưng đẩy kết quả xuống mạnh nhất
Bài 3: Đo thiên lệch (nâng cao)
- Tính theo từng nhóm giới tính: accuracy, tỉ lệ dự đoán dương, TPR, FPR.
- Tính demographic parity difference và equal opportunity difference.
- Thử một cách giảm lệch: chọn ngưỡng riêng cho từng nhóm để TPR bằng nhau. In lại các chỉ số và accuracy tổng.
- Viết
AUDIT.md1 trang: dữ liệu có lệch gì, mô hình lệch bao nhiêu, cách giảm đã thử, đánh đổi, và khi nào cần con người duyệt quyết định.
✅ Tiêu chí hoàn thành
- Có bảng permutation importance cho 2 mô hình.
-
explain_onein lý do đọc hiểu được. - Bảng chỉ số theo nhóm trước và sau giảm lệch có số thật.
-
AUDIT.mdđủ 5 mục.
❓ Câu hỏi ôn tập
- Bài học lớn nhất từ Tay là gì?
- Hộp trắng và hộp đen khác nhau thế nào?
- Ba bệnh bằng chứng gồm những gì?
- Nêu 2 cách giảm bias đơn giản nhất?
🌕 Bạn đã hoàn thành ngày 63. Làm hết bài tập phía trên rồi sang ngày tiếp theo.