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ìnhLoạiGiải thích
Cây quyết địnhHộp trắngĐọc luật trực tiếp
Hồi quy tuyến tínhHộp trắngĐọc trọng số
Mạng sâuHộp đenCầ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.

  1. Huấn luyện cây quyết định max_depth=4. In toàn bộ luật (hộp trắng).
  2. Huấn luyện random forest 200 cây (hộp đen). So accuracy 2 mô hình.
  3. 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)

  1. Tính theo từng nhóm giới tính: accuracy, tỉ lệ dự đoán dương, TPR, FPR.
  2. Tính demographic parity difference và equal opportunity difference.
  3. 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.
  4. Viết AUDIT.md 1 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_one in 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.

Bớt paste mù, hiểu sâu từng dòng mình viết.

180 Days Challenge. 180 ngày cai nghiện vibe code.