Share This Article
1. Giới Thiệu Về Bias & Fairness Trong AI
AI có thể bị thiên vị (Bias) nếu dữ liệu huấn luyện không cân bằng hoặc bị sai lệch. Điều này có thể dẫn đến quyết định không công bằng khi AI được sử dụng trong các lĩnh vực quan trọng như tài chính, y tế, tuyển dụng và tư pháp.
Tại sao AI có thể bị thiên vị?
- Dữ liệu huấn luyện không cân bằng → Nếu dữ liệu thiên về một nhóm, AI có thể ưu tiên nhóm đó.
- Thuật toán bị ảnh hưởng bởi bias trong dữ liệu → AI học từ dữ liệu sai lệch và tiếp tục duy trì sai lệch đó
- Thiết kế mô hình không xem xét fairness → Nếu không có cơ chế kiểm soát công bằng, AI có thể vô tình tạo ra kết quả không công bằng.
Ví dụ thực tế về AI bị thiên vị:
- AI tuyển dụng của Amazon (2018): Bị phát hiện ưu tiên nam giới vì dữ liệu huấn luyện chủ yếu từ hồ sơ nam.
- Hệ thống AI của COMPAS: Dự đoán phạm nhân có tái phạm hay không, nhưng bị thiên vị chống lại người da màu.
- AI nhận diện khuôn mặt của Google & Facebook: Phát hiện da trắng chính xác hơn da tối màu, do dữ liệu huấn luyện có tỷ lệ người da trắng cao hơn.
2. Các Loại Thiên vị Trong AI
Bias trong AI có thể đến từ nhiều nguồn khác nhau. Dưới đây là một số loại bias phổ biến:
2.1. Thiên vị chọn mẫu (Sampling Bias)
Khi dữ liệu huấn luyện không đại diện cho toàn bộ tập dữ liệu thực tế.
- Ví dụ: Nếu AI nhận diện khuôn mặt chỉ được huấn luyện trên ảnh của người châu Âu, nó sẽ không hoạt động tốt với người châu Á hoặc châu Phi.
2.2. Thiên vị trong gán nhãn (Label Bias )
Khi nhãn dữ liệu được gán một cách chủ quan, có thể vô tình đưa vào thiên vị.
- Ví dụ: Trong một hệ thống đánh giá năng lực nhân viên, nếu quá khứ công ty chỉ thăng chức cho đàn ông, AI có thể học rằng giới tính nam liên quan đến hiệu suất tốt.
2.3. Thiên vị lịch sử (Historical Bias )
Khi AI học từ dữ liệu quá khứ, nhưng dữ liệu đó chứa thiên vị xã hội.
- Ví dụ: AI xét duyệt khoản vay có thể từ chối phụ nữ nhiều hơn vì dữ liệu quá khứ ghi nhận phụ nữ ít được vay hơn.
2.4. Thiên vị đo lường (Measurement Bias)
Khi dữ liệu đo lường không chính xác hoặc khác biệt giữa các nhóm.
- Ví dụ: AI chẩn đoán bệnh có thể hoạt động kém hơn với phụ nữ nếu dữ liệu huấn luyện chủ yếu từ bệnh nhân nam.
3. Cách Giảm Thiểu Bias Trong AI
a. Làm sạch & cân bằng dữ liệu huấn luyện:
- Đảm bảo dữ liệu đại diện cho mọi nhóm đối tượng.
- Sử dụng kỹ thuật Oversampling/Undersampling để cân bằng tập dữ liệu.
b. Sử dụng phương pháp Fairness-Aware Machine Learning:
- Kiểm tra bias trong mô hình bằng Fairness Metrics như Demographic Parity, Equal Opportunity, Equalized Odds.
- Áp dụng Reweighting hoặc Adversarial Debiasing để giảm bias.
c. Đánh giá mô hình với các nhóm khác nhau:
- Kiểm tra hiệu suất AI trên các nhóm khác nhau (nam/nữ, sắc tộc, độ tuổi).
- Sử dụng Confusion Matrix để xem AI có hoạt động công bằng không.
4. Hướng Dẫn Code Kiểm Tra Bias Trong AI Bằng Python
Chúng ta sẽ kiểm tra bias trong một mô hình phân loại sử dụng dữ liệu COMPAS (dự đoán tái phạm tội).
4.1. Cài Đặt Thư Viện Cần Thiết
1 |
pip install numpy pandas scikit-learn aif360 matplotlib |
4.2. Import Thư Viện & Tải Dữ Liệu
1 2 3 4 5 6 7 8 |
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, confusion_matrix from aif360.datasets import BinaryLabelDataset from aif360.metrics import BinaryLabelDatasetMetric |
4.3. Tải Dữ Liệu COMPAS (Dự Đoán Phạm Nhân Tái Phạm)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Tải dữ liệu từ AI Fairness 360 url = "https://raw.githubusercontent.com/propublica/compas-analysis/master/compas-scores-two-years.csv" df = pd.read_csv(url) # Chọn các cột quan trọng df = df[['age', 'sex', 'race', 'priors_count', 'c_charge_degree', 'two_year_recid']] df = df.dropna() # Chuyển cột phân loại thành số df['sex'] = df['sex'].apply(lambda x: 1 if x == "Male" else 0) df['race'] = df['race'].apply(lambda x: 1 if x == "African-American" else 0) df['c_charge_degree'] = df['c_charge_degree'].apply(lambda x: 1 if x == "F" else 0) # Chia dữ liệu X = df.drop(columns=['two_year_recid']) y = df['two_year_recid'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Xây dựng mô hình Random Forest model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train) # Dự đoán y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"Độ chính xác mô hình: {accuracy:.2%}") |
4.4. Kiểm Tra Bias Trong AI
1 2 3 4 5 6 7 8 |
# Chuyển dữ liệu thành BinaryLabelDataset để kiểm tra fairness dataset = BinaryLabelDataset(df=pd.concat([X_test, y_test], axis=1), label_names=['two_year_recid'], protected_attribute_names=['race']) # Tính toán chỉ số fairness metric = BinaryLabelDatasetMetric(dataset, privileged_groups=[{'race': 0}], unprivileged_groups=[{'race': 1}]) print(f"Disparate Impact (Tác động bất bình đẳng): {metric.disparate_impact():.2f}") print(f"Mean Difference (Chênh lệch trung bình): {metric.mean_difference():.2f}") |
Kết quả:
1 2 3 |
Độ chính xác mô hình: 64.52% Disparate Impact (Tác động bất bình đẳng): 1.46 Mean Difference (Chênh lệch trung bình): 0.16 |
Nếu Disparate Impact < 0.8 hoặc Mean Difference > 0.1, AI có khả năng bị thiên vị chống lại nhóm nhất định.
Bạn có thể xem code mẫu tại đây! (Google Colab)
5. Kết Luận
- Bias trong AI là vấn đề nghiêm trọng, có thể gây ra hậu quả xã hội nếu không kiểm soát.
- Các kỹ thuật như Reweighting, Fairness Constraints có thể giúp giảm bias.