SHAP: Giải Mã Hộp Đen AI Bằng Lý Thuyết Trò Chơi
Trong thế giới Trí tuệ Nhân tạo (AI), đặc biệt với sự phổ biến của các mô hình học sâu phức tạp, câu hỏi lớn nhất luôn là:
Tại sao mô hình lại đưa ra quyết định đó?
Đây là vấn đề của Explainable AI (XAI), và SHAP (SHapley Additive exPlanations) là một trong những giải pháp mạnh mẽ, có nền tảng toán học vững chắc nhất để giải quyết nó.

Hình 1: Mô tả XAI hỗ trợ công việc của bác sĩ từ chẩn đoán đến chẩn đoán với sự trợ giúp của ML [2].
1. Cơ sở Lý Thuyết của SHAP: Giá trị Shapley
SHAP thống nhất nhiều phương pháp giải thích thành một khuôn khổ duy nhất, dựa trên khái niệm Giá trị Shapley (Shapley Value) từ lý thuyết trò chơi hợp tác (1950s).
💡 Ý tưởng cốt lõi
Hãy tưởng tượng việc đưa ra một dự đoán của mô hình là một trò chơi:

Hình 2: Mô tả Shapley Value và Lý thuyết trò chơi (Game Theory)[2]
- Người chơi (Players): Các đặc trưng đầu vào (ví dụ: tuổi, thu nhập, huyết áp).
- Thù lao (Payout): Giá trị dự đoán cuối cùng của mô hình, so với một đường cơ sở (thường là giá trị dự đoán trung bình của tập dữ liệu).
Giá trị Shapley phân phối “thù lao” này công bằng giữa các người chơi, thể hiện đóng góp trung bình biên của một đặc trưng đối với kết quả dự đoán trên tất cả các tổ hợp có thể.
$$ \phi_i = \sum_{S \subseteq F \setminus \{i\}} \frac{|S|! \, (|F| - |S| - 1)!}{|F|!} [v(S \cup \{i\}) - v(S)] $$
Trong đó:
- $\phi_i$: giá trị SHAP của đặc trưng i.
- $F$: tập hợp tất cả các đặc trưng.
- $S$: tập hợp con của các đặc trưng không bao gồm i.
- $v(S)$: đầu ra mô hình với các đặc trưng trong S giữ nguyên và phần còn lại thay bằng giá trị nền (background value).
Tính chất Additive (Cộng tính)

Hình 3: Mô tả nguyên tắc hoạt động của các phương pháp giải thích địa phương (local explanation) như SHAP [2].
Hình ảnh này minh họa trực quan cho Tính chất Cộng tính Đặc trưng (Additive Feature Attribution), nền tảng của SHAP. Nó cho thấy mô hình phức tạp (Black Box Model, $f(x)$) được xấp xỉ bởi một mô hình đơn giản, giải thích được ($g(x')$) trong không gian cục bộ.
Theo công thức cộng tính, đầu ra dự đoán của mô hình giải thích ($g(x')$) là tổng của Giá trị cơ sở ($\varphi_{0}$) và đóng góp ($\varphi_{i}$) của từng đặc trưng đơn giản $x'_{i}$. Điều này đảm bảo rằng sự thay đổi từ giá trị trung bình đến dự đoán cuối cùng được phân chia công bằng và nhất quán cho mọi đặc trưng. Trong SHAP, $\varphi_{i}$ chính là Giá trị SHAP."
Cụm từ “Additive Explanations” nghĩa là lời giải thích luôn có dạng tuyến tính:
$$ f(x) \approx \phi_0 + \sum_{i=1}^{M} \phi_i $$
Trong đó:
- $f(x)$: dự đoán của mô hình cho cá thể x.
- $\phi_0$: giá trị cơ sở (baseline), thường là $E[f(X)]$.
- $\phi_i$: đóng góp của đặc trưng i.
Tổng các giá trị SHAP của tất cả đặc trưng bằng đúng sự khác biệt giữa dự đoán mô hình và giá trị cơ sở.
Điều này cho phép trực quan hóa bằng biểu đồ thác nước (Waterfall Plot).
2. Các Thuật toán SHAP Chính: Kernel SHAP và DeepSHAP
Tính toán Giá trị Shapley chính xác rất tốn kém — số tổ hợp tăng theo $2^M$ (với M đặc trưng).
SHAP cung cấp các xấp xỉ hiệu quả hơn.
2.1. Kernel SHAP (Model-Agnostic)
Kernel SHAP là phương pháp độc lập mô hình, áp dụng được cho mọi loại học máy.
Cách hoạt động:
Bước 1. Tạo Bộ Dữ liệu Nền (Background Set)
- Lấy một tập hợp ngẫu nhiên các mẫu từ tập huấn luyện để tạo bộ dữ liệu nền.
- Số lượng mẫu nền khuyến nghị: 100–1000.
- Bộ dữ liệu nền cung cấp giá trị cho các đặc trưng bị “ẩn” hoặc không được đưa vào tổ hợp.
Bước 2. Tạo Tổ hợp Đặc trưng Giả (Synthetic Feature Combinations)
- Các hoán vị (subsets) được tạo ra bằng cách kết hợp:
- Các đặc trưng thực tế của mẫu đang được giải thích ($x$).
- Các giá trị từ bộ nền ($B$) để “ẩn” hoặc thay thế các đặc trưng không được chọn.
- Đầu ra từ mô hình hộp đen khi áp dụng các hoán vị này được dùng làm nhãn giả ($\overline{y}_i$) cho mô hình giải thích.
Bước 3. Gán Trọng số Kernel SHAP ($w_C$)
- Mỗi tập con ($C$) được gán một trọng số nhằm mô phỏng tính toán Giá trị Shapley.
- Trọng số đảm bảo các đóng góp biên (marginal contribution) được phân bổ công bằng cho các tập con có cùng kích thước.
- Các trường hợp ranh giới (không có đặc trưng hoặc tất cả đặc trưng được chọn) có trọng số đặc biệt lớn hoặc bị loại trừ để giữ tính công bằng của thuật toán.
Bước 4. Huấn luyện Hồi quy Tuyến tính có Trọng số (Weighted Linear Regression)
- Biểu diễn đầu vào của các tổ hợp đặc trưng ở dạng nhị phân (0 hoặc 1):
- 1: đặc trưng là của mẫu thật ($x$).
- 0: đặc trưng được thay thế bởi giá trị nền ($B$).
- Huấn luyện mô hình hồi quy tuyến tính có trọng số:
$$ g(x') = \phi_0 + \sum_{i=1}^{N} \phi_i x'_i $$
Bước 5. Xác định Giá trị Shapley ($\phi_i$)
- Hệ số ($\phi_i$) trong mô hình tuyến tính chính là Giá trị Shapley của đặc trưng $i$.
- $\phi_i$ thể hiện mức độ đóng góp của đặc trưng $i$ vào sự thay đổi từ giá trị nền ($\phi_0$) đến đầu ra dự đoán cuối cùng ($f(x)$).
2.2. DeepSHAP (Model-Specific)
DeepSHAP tối ưu cho mạng nơ-ron sâu (Deep Neural Networks).
Thay vì gọi mô hình nhiều lần, DeepSHAP lan truyền đóng góp qua các lớp bằng quy tắc chuỗi (chain rule).
Cách hoạt động: Thay vì chạy mô hình hộp đen nhiều lần với các tổ hợp đặc trưng giả (như Kernel SHAP), DeepSHAP ước tính Giá trị Shapley bằng cách sử dụng nguyên tắc của DeepLIFT kết hợp với quy tắc chuỗi (chain rule) để lan truyền đóng góp (multipliers) qua các lớp của mạng nơ-ron.
Bước 1. Linearizing Components (Tuyến tính hóa các thành phần)
- DeepSHAP tuyến tính hóa từng thành phần trong mạng (node, activation function, layer).
- Mục tiêu là biểu diễn mối quan hệ phi tuyến thành các thành phần tuyến tính có thể phân tích đóng góp.
Bước 2. Lan truyền Đóng góp (Contribution Propagation)
- DeepSHAP tính đóng góp (Shapley Value) của một đặc trưng đầu vào ($X_1$) tới một nút bất kỳ trong mạng ($B_1$).
- Hệ số nhân (multiplier) biểu diễn ảnh hưởng của đặc trưng $X_1$ đến $B_1$ trên thang đo nền:
$$ m_{x_{1}b_{1}} = \frac{\varphi(x_{1} \rightarrow b_{1})}{x_{1} - E[x_{1}]} $$
Bước 3. Áp dụng Quy tắc Chuỗi (Chain Rule)
- Các hệ số nhân được kết hợp theo quy tắc chuỗi để lan truyền đóng góp từ đầu vào đến đầu ra cuối cùng.
- Kết quả là xác định được tầm quan trọng của từng đặc trưng (feature importance) trong toàn bộ mạng nơ-ron.
Ưu điểm của DeepSHAP
- Tốc độ nhanh hơn: DeepSHAP yêu cầu số lần gọi mô hình ít hơn đáng kể so với Kernel SHAP, giúp tiết kiệm thời gian và tài nguyên khi áp dụng cho mạng học sâu phức tạp.
- Giải thích chi tiết cấp độ Pixel (Pixel-level Attribution): DeepSHAP có thể cung cấp giải thích trực quan, chi tiết cho các mô hình thị giác máy tính — ví dụ như xác định vùng ảnh ảnh hưởng nhiều nhất đến dự đoán.
3. Trực quan hóa SHAP và Code Minh Họa (Dữ liệu Dạng Bảng)
SHAP cung cấp nhiều công cụ trực quan hóa giúp hiểu rõ tác động của đặc trưng.
Trực quan hóa cục bộ (Local Explanation)

Hình 4: Mô tả trực quan Local Explanation.
Waterfall Plot:
Giải thích một dự đoán $f(x)$, hiển thị cách mỗi đặc trưng kéo giá trị dự đoán lên/xuống từ giá trị cơ sở $\phi_0$.
- 🔴 Thanh đỏ: đặc trưng tăng dự đoán.
- 🔵 Thanh xanh: đặc trưng giảm dự đoán.
Trực quan hóa toàn cục (Global Explanation)

Hình 5: Mô tả cho Global Explanation.
Biểu đồ Beeswarm tổng hợp các giải thích cục bộ (SHAP values cho từng cá thể) để thể hiện tầm quan trọng và hướng tác động của mỗi đặc trưng trên toàn bộ tập dữ liệu.
- Trục dọc (Vertical Axis): Liệt kê các đặc trưng (Features), thường được sắp xếp theo mức độ quan trọng toàn cục (trung bình của giá trị SHAP tuyệt đối), với đặc trưng quan trọng nhất nằm ở trên cùng (ví dụ: Age là đặc trưng quan trọng nhất trong hình).
- Trục ngang (Horizontal Axis): Biểu thị Giá trị SHAP (SHAP value), tức là tác động của đặc trưng lên đầu ra mô hình.
- Vị trí của mỗi chấm trên trục này được xác định bởi Giá trị SHAP của đặc trưng đó cho một cá thể cụ thể.
-Màu sắc (Color): Được sử dụng để hiển thị giá trị thực của đặc trưng (Feature Value). - Màu đỏ (High): Thường đại diện cho giá trị cao của đặc trưng (ví dụ: tuổi cao).
- Màu xanh (Low): Thường đại diện cho giá trị thấp của đặc trưng (ví dụ: tuổi thấp).
- Các chấm (Dots): Mỗi chấm đại diện cho một cá thể (một dự đoán) trong tập dữ liệu.
- Các chấm "xếp chồng" lên nhau dọc theo mỗi hàng đặc trưng để hiển thị mật độ (density) của các Giá trị SHAP.
Code minh họa (Python) so sánh Global Explanation và Local Explanation
Bước 1: Cài thư viện
import shap
import xgboost
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Bước 2: Tải dử liệu và mô hình đã huấn luyện ví dụ XGBoost
# 1. Tải dữ liệu mẫu (Census)
X, y = shap.datasets.adult()
# 2. Huấn luyện mô hình XGBoost
model = xgboost.XGBClassifier(n_estimators=100, use_label_encoder=False, eval_metric='logloss')
model.fit(X, y)
Bước 3: Khởi tạo các trọng số
# 3. Khởi tạo Explainer
# Model-agnostic: explainer = shap.KernelExplainer(model.predict, X_summary)
explainer = shap.TreeExplainer(model)
# 4. Tính giá trị SHAP
shap_values = explainer.shap_values(X.iloc[:50,:])
Bước 4: Kết quả Global Explanation
# 5. Trực quan hóa toàn cục
shap.summary_plot(shap_values, X.iloc[:50,:])

Hình 6: Kết quả trực quan Global Explanation.
- Biểu đồ Beeswarm SHAP – Giải thích Toàn cục (Global Explanation)
- Phần trên của hình ảnh (từ “Relationship” đến “Country”) minh họa Biểu đồ Beeswarm – một công cụ trực quan mạnh mẽ để giải thích hành vi toàn cục của mô hình (Global Explanation).
| Thành phần | Ý nghĩa |
|---|---|
| Trục dọc (Y-axis) | Liệt kê các đặc trưng (Features), được sắp xếp theo mức độ quan trọng toàn cục, dựa trên trung bình độ lớn của Giá trị SHAP. Ví dụ: Relationship, Age, và Education-Num là các đặc trưng có ảnh hưởng lớn nhất. |
| Trục ngang (X-axis) | Biểu thị Giá trị SHAP, thể hiện mức độ và hướng tác động của đặc trưng lên đầu ra mô hình. |
| Màu sắc (Color Bar) | Thể hiện giá trị thực của đặc trưng (Feature Value): 🔴 Đỏ → giá trị cao 🔵 Xanh dương → giá trị thấp. |
| Các chấm (Dots) | Mỗi chấm đại diện cho một cá thể (một dự đoán) trong tập dữ liệu. Việc các chấm xếp chồng lên nhau cho thấy mật độ phân bố của các giá trị SHAP cho đặc trưng đó. |
Ý nghĩa tổng quan: Biểu đồ Beeswarm giúp ta nhận biết đặc trưng nào có tác động lớn nhất đến mô hình và giá trị cao hay thấp của đặc trưng đó ảnh hưởng tăng hay giảm đầu ra dự đoán.
Bước 5: Kết quả Local Explanation
# 6. Trực quan hóa cục bộ
shap.initjs()
shap.force_plot(explainer.expected_value, shap_values[0,:], X.iloc[0,:])

Hình 7: Kết quả trực quan Local Explanation.
Tóm Tắt: SHAP (SHapley Additive exPlanations)
SHAP là một khuôn khổ XAI (Explainable AI) có nền tảng toán học vững chắc, giúp giải mã “hộp đen” của các mô hình học máy bằng cách giải thích công bằng đóng góp của từng đặc trưng vào kết quả dự đoán.
- Lý thuyết trò chơi:
SHAP dựa trên Giá trị Shapley để phân phối đóng góp của dự đoán (thù lao) một cách công bằng cho từng đặc trưng (người chơi) trên mọi tổ hợp có thể.
- Tính chất Cộng tính (Additivity): Lời giải thích luôn tuân theo công thức tuyến tính:
$$ f(x) = \phi_0 + \sum_i \phi_i $$
Trong đó:
- $f(x)$: Dự đoán cuối cùng.
- $\phi_0$: Giá trị cơ sở (baseline).
- $\phi_i$: Giá trị SHAP của đặc trưng i.
Các Thuật toán Chính
| Thuật toán | Loại | Ưu điểm / Cơ chế |
|---|---|---|
| Kernel SHAP | Model-Agnostic (Độc lập mô hình) | Xấp xỉ mô hình hộp đen bằng hồi quy tuyến tính có trọng số trong không gian cục bộ. Phù hợp với mọi loại mô hình. |
| DeepSHAP | Model-Specific (Cụ thể cho mô hình) | Tối ưu cho Mạng nơ-ron sâu (DNNs). Sử dụng quy tắc chuỗi (chain rule) để lan truyền đóng góp qua các lớp mạng, nhanh hơn đáng kể so với Kernel SHAP. |
Công cụ Trực quan hóa
| Trực quan hóa | Mục đích | Cách đọc hiểu |
|---|---|---|
| Waterfall Plot / Force Plot | Cục bộ (Local Explanation) | Giải thích một dự đoán cá thể duy nhất. 🔴 Thanh đỏ ($\phi_i > 0$): làm tăng dự đoán. 🔵 Thanh xanh ($\phi_i < 0$): làm giảm dự đoán. |
| Beeswarm Plot | Toàn cục (Global Explanation) | Tổng hợp các giải thích trên toàn tập dữ liệu. Hiển thị tầm quan trọng (trục Y) và hướng tác động (trục X và màu sắc) của từng đặc trưng. |
SHAP không chỉ tăng cường niềm tin vào các hệ thống AI, mà còn là công cụ mạnh mẽ để gỡ lỗi, phát hiện sai lệch, và hiểu sâu hơn về hành vi của mô hình.
Refernces
[1] DeepMind, "Gemini," Large language model, 2025. [Online]. Available: https://gemini.ai/. [Accessed: Oct. 19, 2025].
[2] Ảnh được lấy từ tài liệu khóa học AIO Module 05 Tuần 03
Chưa có bình luận nào. Hãy là người đầu tiên!