Skip to content
Published on

AI 治理与负责任的 AI:从 EU AI Act、XAI、偏见检测到 AI 安全技术

分享
Authors

目录

  1. AI 治理框架概览
  2. EU AI Act: 风险等级分类体系
  3. NIST AI RMF & ISO 42001
  4. 负责任 AI 开发原则
  5. 偏见检测与缓解技术
  6. 可解释 AI (XAI)
  7. AI 安全技术
  8. 数据隐私技术
  9. AI 监管实务
  10. 测验

AI 治理框架概览

随着 AI 系统在整个社会中铺开,治理体系的必要性正在迅速凸显。AI 治理(AI Governance)是指在 AI 系统的开发、部署、运营全过程中管理风险,使其符合社会价值与法律要求的一整套政策、流程与技术的总称。

主要的全球性框架:

框架主体核心特征
EU AI Act欧盟具有法律约束力,风险导向方法
NIST AI RMF美国 NIST自愿性指南,风险管理
ISO 42001ISO/IEC可认证的 AI 管理体系
G7 AI 原则G7 国家国际合作,非约束性原则
UNESCO AI 伦理建议UNESCO以人权为中心,全球适用

EU AI Act: 风险等级分类体系

2024 年生效的 EU AI Act 是全球首部全面的 AI 法律。它采用风险导向(risk-based)方法,将 AI 系统分为四个风险等级。

风险等级分类

1. 不可接受风险 (Unacceptable Risk) — 禁止

  • 公共场所的实时远程生物识别(例如 CCTV 人脸识别)
  • 社会评分(Social Scoring)系统
  • 针对弱势群体的潜意识操纵技术
  • 个人层面的预测性警务

2. 高风险 (High-Risk) — 严格义务

  • 医疗诊断辅助、医疗器械软件
  • 自动驾驶及关键基础设施
  • 招聘、人事评估系统
  • 信用评分、保险核保
  • 司法、执法辅助工具
  • 教育评估系统

3. 有限风险 (Limited Risk) — 透明度义务

  • 聊天机器人:必须告知用户正在与 AI 交互
  • 深度伪造内容:必须标注为合成内容
  • 情绪识别系统:必须告知使用事实

4. 最小风险 (Minimal Risk) — 自律监管

  • 垃圾邮件过滤器、游戏 AI
  • 基于 AI 的库存管理等

EU AI Act 风险分类器实现

from dataclasses import dataclass
from enum import Enum
from typing import List

class RiskLevel(Enum):
    UNACCEPTABLE = "不可接受 (禁止)"
    HIGH = "高风险 (严格监管)"
    LIMITED = "有限风险 (透明度义务)"
    MINIMAL = "最小风险 (自律监管)"

@dataclass
class AISystemProfile:
    name: str
    uses_biometric: bool
    is_real_time: bool
    public_space: bool
    domain: str  # healthcare, hiring, credit, education, judiciary, infrastructure
    interacts_with_humans: bool
    generates_synthetic_content: bool

def classify_eu_ai_act_risk(system: AISystemProfile) -> tuple[RiskLevel, List[str]]:
    """
    EU AI Act 风险等级分类器。
    Returns (RiskLevel, list_of_applicable_obligations)
    """
    obligations = []

    # 第一步:检查是否为不可接受风险
    if (system.uses_biometric and system.is_real_time and system.public_space):
        return RiskLevel.UNACCEPTABLE, ["立即停止使用", "属于法律禁止对象"]

    # 第二步:检查是否属于高风险领域
    HIGH_RISK_DOMAINS = {
        "healthcare", "hiring", "credit",
        "education", "judiciary", "critical_infrastructure"
    }
    if system.domain in HIGH_RISK_DOMAINS:
        obligations = [
            "必须通过合格性评估 (Conformity Assessment)",
            "技术文档化义务",
            "建立人工监督 (Human Oversight) 体系",
            "透明度与日志记录要求",
            "偏见测试与数据治理",
            "在 EU 数据库中登记",
        ]
        return RiskLevel.HIGH, obligations

    # 第三步:有限风险
    if system.interacts_with_humans or system.generates_synthetic_content:
        obligations = [
            "向用户告知这是一个 AI 系统",
            "对合成内容加水印或标注",
        ]
        return RiskLevel.LIMITED, obligations

    # 第四步:最小风险
    return RiskLevel.MINIMAL, ["建议采用自愿行为准则"]


# 使用示例
credit_scoring_system = AISystemProfile(
    name="自动信用评分 AI",
    uses_biometric=False,
    is_real_time=False,
    public_space=False,
    domain="credit",
    interacts_with_humans=False,
    generates_synthetic_content=False,
)

risk_level, obligations = classify_eu_ai_act_risk(credit_scoring_system)
print(f"系统: {credit_scoring_system.name}")
print(f"风险等级: {risk_level.value}")
print("义务事项:")
for ob in obligations:
    print(f"  - {ob}")

NIST AI RMF & ISO 42001

NIST AI 风险管理框架

NIST AI RMF(2023)由四大核心功能构成。

  • GOVERN:建立 AI 风险管理文化与政策
  • MAP:识别并归类 AI 风险的上下文
  • MEASURE:分析、评估、量化风险
  • MANAGE:按优先级应对风险

ISO/IEC 42001:AI 管理体系

ISO 42001 是供组织负责任地开发、部署 AI 的管理体系标准。与 ISO 9001(质量)或 ISO 27001(安全)一样,可以获得第三方认证。

核心要求:

  • 制定 AI 政策与目标
  • 明确领导层责任
  • 评估风险与机遇
  • 开展 AI 影响评估
  • 内部审计与持续改进

负责任 AI 开发原则

FATE 框架

Fairness(公平性):对处于相似情境的人给予相似待遇,不使特定群体处于不利地位。

Accountability(问责):明确决策的责任归属。「谁为这项决定负责?」

Transparency(透明度):向利益相关方公开 AI 系统的运作方式、训练数据及其局限性。

Explainability(可解释性):用人类可以理解的语言解释单个预测背后的依据。

G7 广岛 AI 原则 (2023)

  1. 尊重法治与人权
  2. 透明度与可解释性
  3. 公平性与非歧视
  4. 人工监督与控制
  5. 隐私保护
  6. 网络安全
  7. 信息共享与事件报告

偏见检测与缓解技术

AI 模型的偏见源自训练数据中的历史性不平等、特征选择错误、标注错误等。

主要公平性指标

Demographic Parity(统计均等): 不同受保护群体间的正向预测率必须相等。 P(Y_hat=1 | A=0) = P(Y_hat=1 | A=1)

Equal Opportunity(机会均等): 不同受保护群体间的真阳性率(TPR)必须相等。 P(Y_hat=1 | Y=1, A=0) = P(Y_hat=1 | Y=1, A=1)

Calibration(校准): 预测概率必须与实际阳性率一致(按群体分别衡量)。

Individual Fairness(个体公平性): 相似的个体应当获得相似的待遇。

使用 AIF360 进行偏见检测

import numpy as np
import pandas as pd
from aif360.datasets import BinaryLabelDataset
from aif360.metrics import BinaryLabelDatasetMetric, ClassificationMetric
from aif360.algorithms.preprocessing import Reweighing
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler

# 1. 准备数据(贷款审批场景)
np.random.seed(42)
n = 1000
data = pd.DataFrame({
    'income': np.random.normal(50000, 20000, n).clip(10000, 150000),
    'credit_score': np.random.normal(680, 100, n).clip(300, 850),
    'age': np.random.randint(20, 70, n),
    'gender': np.random.choice([0, 1], n, p=[0.5, 0.5]),  # 0=female, 1=male
    'loan_approved': np.zeros(n, dtype=int)
})
# 人为注入偏见:设定男性获批的概率更高
prob = 0.3 + 0.2 * data['gender'] + 0.3 * (data['credit_score'] > 700).astype(int)
data['loan_approved'] = (np.random.random(n) < prob).astype(int)

# 2. 生成 AIF360 数据集
aif_dataset = BinaryLabelDataset(
    df=data,
    label_names=['loan_approved'],
    protected_attribute_names=['gender'],
    favorable_label=1,
    unfavorable_label=0,
)

# 3. 测量偏见
privileged_groups = [{'gender': 1}]    # 男性
unprivileged_groups = [{'gender': 0}]  # 女性

dataset_metric = BinaryLabelDatasetMetric(
    aif_dataset,
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups,
)

print("=== 原始数据偏见分析 ===")
print(f"Disparate Impact: {dataset_metric.disparate_impact():.4f}")
print(f"Statistical Parity Difference: {dataset_metric.statistical_parity_difference():.4f}")
# Disparate Impact < 0.8 → 违反 80% 规则 (存在偏见)

# 4. 用 Reweighing 进行预处理缓解
rw = Reweighing(
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups,
)
dataset_reweighed = rw.fit_transform(aif_dataset)

# 缓解后的测量
metric_reweighed = BinaryLabelDatasetMetric(
    dataset_reweighed,
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups,
)
print("\n=== Reweighing 后的偏见分析 ===")
print(f"Disparate Impact: {metric_reweighed.disparate_impact():.4f}")
print(f"Statistical Parity Difference: {metric_reweighed.statistical_parity_difference():.4f}")

使用 Fairlearn 进行后处理缓解

from fairlearn.postprocessing import ThresholdOptimizer
from fairlearn.metrics import MetricFrame, selection_rate, demographic_parity_difference
from sklearn.ensemble import GradientBoostingClassifier

# 训练模型
X = data[['income', 'credit_score', 'age']].values
y = data['loan_approved'].values
sensitive = data['gender'].values

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

base_model = GradientBoostingClassifier(n_estimators=100, random_state=42)
base_model.fit(X_scaled, y)

# ThresholdOptimizer:按群体优化决策阈值
postprocess_est = ThresholdOptimizer(
    estimator=base_model,
    constraints="demographic_parity",
    predict_method="predict_proba",
    objective="balanced_accuracy_score",
)
postprocess_est.fit(X_scaled, y, sensitive_features=sensitive)

y_pred_fair = postprocess_est.predict(X_scaled, sensitive_features=sensitive)

# 测量公平性指标
mf = MetricFrame(
    metrics={"selection_rate": selection_rate},
    y_true=y,
    y_pred=y_pred_fair,
    sensitive_features=sensitive,
)
print("\n=== Fairlearn 后处理结果 ===")
print(f"按群体划分的选择率:\n{mf.by_group}")
print(f"Demographic Parity Difference: {demographic_parity_difference(y, y_pred_fair, sensitive_features=sensitive):.4f}")

可解释 AI (XAI)

SHAP: SHapley Additive exPlanations

SHAP 利用博弈论中的 Shapley 值来计算各个特征对预测值的贡献程度。它测量的是在所有可能的特征组合中,添加某个特征时的边际贡献的平均值。

import shap
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

# 训练模型
X_train, y_train = make_classification(
    n_samples=500, n_features=8, n_informative=5, random_state=42
)
feature_names = [
    'income', 'credit_score', 'age', 'debt_ratio',
    'employment_years', 'num_accounts', 'late_payments', 'loan_amount'
]

rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)

# SHAP TreeExplainer (专用于树模型,速度快)
explainer = shap.TreeExplainer(rf_model)
shap_values = explainer.shap_values(X_train)

# 单个预测的解释 (Waterfall Plot)
sample_idx = 0
shap.waterfall_plot(
    shap.Explanation(
        values=shap_values[1][sample_idx],
        base_values=explainer.expected_value[1],
        data=X_train[sample_idx],
        feature_names=feature_names,
    )
)

# 全局重要性 (Summary Plot)
shap.summary_plot(shap_values[1], X_train, feature_names=feature_names)

# SHAP 交互效应
shap_interaction = explainer.shap_interaction_values(X_train[:100])
print(f"Income-CreditScore 交互 SHAP: {shap_interaction[0, 0, 1]:.4f}")

LIME: Local Interpretable Model-agnostic Explanations

import lime
import lime.lime_tabular
import numpy as np

# 创建 LIME 解释器
lime_explainer = lime.lime_tabular.LimeTabularExplainer(
    training_data=X_train,
    feature_names=feature_names,
    class_names=['拒绝', '批准'],
    mode='classification',
    discretize_continuous=True,
)

# 解释单个样本
explanation = lime_explainer.explain_instance(
    data_row=X_train[0],
    predict_fn=rf_model.predict_proba,
    num_features=6,
    num_samples=1000,
)

print("=== LIME 解释 (样本 #0) ===")
for feature, weight in explanation.as_list():
    direction = "增加" if weight > 0 else "降低"
    print(f"  {feature}: {weight:+.4f} (对批准概率的贡献为{direction})")

explanation.show_in_notebook(show_table=True)

生成模型卡(Model Card)

import json
from datetime import datetime

def generate_model_card(
    model_name: str,
    version: str,
    intended_use: str,
    out_of_scope_uses: list,
    training_data: dict,
    evaluation_results: dict,
    fairness_analysis: dict,
    limitations: list,
    ethical_considerations: list,
) -> dict:
    """标准模型卡生成器 (基于 Mitchell et al. 2019)。"""
    model_card = {
        "model_details": {
            "name": model_name,
            "version": version,
            "date": datetime.now().strftime("%Y-%m-%d"),
            "type": "Binary Classifier",
            "paper": "https://arxiv.org/abs/1810.03993",
        },
        "intended_use": {
            "primary_uses": intended_use,
            "primary_users": ["信用审核人员", "金融监管机构"],
            "out_of_scope_uses": out_of_scope_uses,
        },
        "factors": {
            "relevant_factors": ["gender", "age_group", "income_bracket"],
            "evaluation_factors": ["demographic_parity", "equal_opportunity"],
        },
        "metrics": {
            "performance_measures": evaluation_results,
            "decision_thresholds": {"default": 0.5, "high_precision": 0.7},
        },
        "training_data": training_data,
        "fairness_analysis": fairness_analysis,
        "limitations": limitations,
        "ethical_considerations": ethical_considerations,
        "caveats_recommendations": [
            "建议定期进行漂移监控",
            "每季度必须重新评估偏见",
            "高风险决策须并行进行人工审查",
        ],
    }
    return model_card

card = generate_model_card(
    model_name="个人信用贷款审批模型 v2.1",
    version="2.1.0",
    intended_use="自动化个人信用贷款申请的初步审核",
    out_of_scope_uses=["企业贷款审核", "保费核定", "雇佣决策"],
    training_data={"size": 50000, "period": "2020-2024", "source": "内部贷款历史记录"},
    evaluation_results={"accuracy": 0.84, "AUC": 0.91, "F1": 0.82},
    fairness_analysis={
        "demographic_parity_diff": 0.03,
        "equal_opportunity_diff": 0.02,
        "disparate_impact": 0.96,
    },
    limitations=["未包含 2020 年以前的数据", "农村地区代表性不足"],
    ethical_considerations=["最终决定必须经人工负责人审查", "必须告知拒绝理由"],
)
print(json.dumps(card, ensure_ascii=False, indent=2))

AI 安全技术

Constitutional AI(Anthropic)

Constitutional AI 是一种训练方法,让 AI 模型依据一套明确的原则(「宪法」)对自己的回复进行批评和修正。

工作方式:

  1. 模型生成一个可能有害的回复
  2. 模型基于宪法原则进行自我批评 (self-critique)
  3. 模型朝着符合原则的方向修改回复
  4. 用修改后的回复进行 RLHF 训练

RLHF (Reinforcement Learning from Human Feedback)

1. SFT (监督微调):用高质量演示数据对基础模型进行微调
2. Reward Modeling(奖励建模):用人类偏好对(preferred vs rejected)训练奖励模型
3. RL 优化:用 PPO 算法最大化奖励 (KL 散度约束)

越狱 (Jailbreak) 防御技术

  • 输入过滤:事先检测并拦截有害模式
  • 提示注入防御:将系统提示与用户输入隔离
  • 输出监控:对生成文本进行实时安全性检查
  • 红队测试 (Red Teaming):由扮演攻击者角色的专家团队探查漏洞

AI 水印

文本水印会在 LLM 生成的文本中嵌入统计学上可检测的模式。

import hashlib
import random

def green_red_watermark(text: str, key: str, gamma: float = 0.25) -> dict:
    """
    Kirchenbauer et al. (2023) 方式的绿/红名单水印。
    以序列中前一个 token 为种子,将当前 token 分类为绿或红,
    生成时偏向选择绿色 token,以此嵌入水印。
    """
    words = text.split()
    green_count = 0
    total = len(words)

    for i, word in enumerate(words):
        prev_token = words[i - 1] if i > 0 else "<s>"
        seed = int(hashlib.sha256(f"{key}{prev_token}".encode()).hexdigest(), 16) % (2**32)
        random.seed(seed)
        is_green = random.random() > (1 - gamma)
        if is_green:
            green_count += 1

    z_score = (green_count - gamma * total) / ((gamma * (1 - gamma) * total) ** 0.5 + 1e-9)
    return {
        "green_token_ratio": green_count / total,
        "z_score": z_score,
        "is_watermarked": z_score > 4.0,
    }

数据隐私技术

差分隐私 (Differential Privacy)

差分隐私通过向数据库添加噪声,在统计意义上隐藏单条记录是否被包含在内。epsilon(隐私预算)越小,隐私保证越强。

import torch
import torch.nn as nn
from opacus import PrivacyEngine
from torch.utils.data import DataLoader, TensorDataset

# 定义模型
class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Sequential(
            nn.Linear(10, 64),
            nn.ReLU(),
            nn.Linear(64, 2),
        )
    def forward(self, x):
        return self.fc(x)

# 合成数据
X = torch.randn(1000, 10)
y = torch.randint(0, 2, (1000,))
dataset = TensorDataset(X, y)
loader = DataLoader(dataset, batch_size=64, shuffle=True)

model = SimpleNet()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)

# 应用 Opacus PrivacyEngine
privacy_engine = PrivacyEngine()
model, optimizer, loader = privacy_engine.make_private_with_epsilon(
    module=model,
    optimizer=optimizer,
    data_loader=loader,
    target_epsilon=1.0,   # epsilon:越小隐私越强
    target_delta=1e-5,    # delta:违反 epsilon 约束的概率
    max_grad_norm=1.0,    # 裁剪阈值
    epochs=10,
)

# 训练循环
criterion = nn.CrossEntropyLoss()
for epoch in range(3):
    for batch_X, batch_y in loader:
        optimizer.zero_grad()
        outputs = model(batch_X)
        loss = criterion(outputs, batch_y)
        loss.backward()
        optimizer.step()

epsilon = privacy_engine.get_epsilon(delta=1e-5)
print(f"训练完成: epsilon = {epsilon:.2f}, delta = 1e-5")
print(f"隐私保证: 单条数据的贡献被限制在 e^{epsilon:.2f} 倍以内")

联邦学习 (Federated Learning)

联邦学习不将原始数据发送到中央服务器,各客户端只共享在本地训练得到的模型权重(梯度)。

import copy
import numpy as np

def federated_averaging(global_model_weights, client_updates, client_data_sizes):
    """
    FedAvg 算法:基于数据量的加权平均聚合。
    """
    total_data = sum(client_data_sizes)
    averaged_weights = {}

    for key in global_model_weights.keys():
        weighted_sum = sum(
            client_updates[i][key] * (client_data_sizes[i] / total_data)
            for i in range(len(client_updates))
        )
        averaged_weights[key] = weighted_sum

    return averaged_weights

# GDPR AI 适用检查清单
gdpr_ai_checklist = {
    "数据最小化": "仅收集模型训练所必需的最小数据量",
    "目的限制": "禁止将训练数据用于既定目的之外的用途",
    "数据主体权利": "保障对自动化决策要求解释的权利 (Article 22)",
    "画像限制": "基于自动化画像的重大决策须进行人工审查",
    "数据可携权": "个人有权以可携带格式获取自己的数据",
    "删除权": "从模型中移除个人数据的影响 (Machine Unlearning)",
}

for right, description in gdpr_ai_checklist.items():
    print(f"[GDPR] {right}: {description}")

AI 监管实务

模型审计流程

  1. 界定审计范围:明确审计对象模型、期间、使用场景
  2. 文档审查:审查训练数据来源、模型卡、系统卡
  3. 技术测试:偏见测量、鲁棒性测试、对抗攻击模拟
  4. 利益相关方访谈:运营团队、受影响群体代表、监管人员
  5. 撰写审计报告:记录发现事项、风险等级、建议措施

组建 AI 伦理委员会

一个有效的 AI 伦理委员会应当包含以下角色。

角色所需能力
AI/ML 技术专家理解模型运作原理
法务/合规解读监管要求
伦理学家/哲学家协调价值冲突
领域专家提供应用领域的背景
受影响群体代表反映实际影响
网络安全专家评估安全风险

风险评估模板

from dataclasses import dataclass, field
from typing import List
from enum import IntEnum

class Severity(IntEnum):
    LOW = 1
    MEDIUM = 2
    HIGH = 3
    CRITICAL = 4

class Likelihood(IntEnum):
    RARE = 1
    UNLIKELY = 2
    POSSIBLE = 3
    LIKELY = 4

@dataclass
class AIRisk:
    risk_id: str
    description: str
    severity: Severity
    likelihood: Likelihood
    affected_groups: List[str]
    mitigation: str
    owner: str
    residual_risk: str = "TBD"

    @property
    def risk_score(self) -> int:
        return self.severity * self.likelihood

    @property
    def risk_level(self) -> str:
        score = self.risk_score
        if score >= 12:
            return "CRITICAL"
        elif score >= 8:
            return "HIGH"
        elif score >= 4:
            return "MEDIUM"
        return "LOW"

# 风险登记表示例
risks = [
    AIRisk(
        risk_id="RISK-001",
        description="信用模型的性别偏见导致贷款拒批歧视",
        severity=Severity.HIGH,
        likelihood=Likelihood.POSSIBLE,
        affected_groups=["女性", "非二元性别群体"],
        mitigation="Reweighing + 每季度进行 disparate impact 监控",
        owner="AI 伦理团队",
    ),
    AIRisk(
        risk_id="RISK-002",
        description="模型决策无法解释,违反 GDPR Article 22",
        severity=Severity.CRITICAL,
        likelihood=Likelihood.LIKELY,
        affected_groups=["所有贷款申请人"],
        mitigation="构建基于 SHAP 的决策解释系统",
        owner="合规团队",
    ),
]

print("=== AI 风险登记表 ===")
for risk in risks:
    print(f"\n[{risk.risk_id}] {risk.description}")
    print(f"  风险等级: {risk.risk_level} (分数: {risk.risk_score})")
    print(f"  缓解措施: {risk.mitigation}")

测验

Q1. 在 EU AI Act 中,生物识别系统被归为高风险 (High-Risk) 的条件是什么?

答案:当实时(real-time)、公共场所、远程生物识别这三个条件同时满足时,会被归为不可接受风险 (Unacceptable Risk) 并被禁止。但执法机关搜寻失踪儿童等特定情形属于例外。非实时或用于事后(post-hoc)分析目的的生物识别,或用于司法、边境管制的生物识别,则被归为高风险 (High-Risk),须适用合格性评估等严格监管。

说明:EU AI Act 附件三明确将执法、司法、边境管理中使用的远程生物识别系统列为高风险 AI。公共场所的实时远程生物识别原则上由第 5 条禁止。

Q2. Demographic parity 与 Equal opportunity 这两项公平性指标有何区别,其间的权衡是什么?

答案:Demographic parity 要求受保护群体间的正向预测率(P(Y_hat=1))相等,而 Equal opportunity 要求在实际为正的样本(Y=1)中,被预测为正的比例(TPR)在受保护群体间相等。

说明:根据 Chouldechova(2017)的不可能定理(Impossibility Theorem),当各群体间的基础率(base rate)不同时,demographic parity、equal opportunity、predictive parity 三者不可能同时满足,这在数学上是不可能的。因此需要根据使用场景与潜在危害的类型,明确决定优先采用哪一项公平性指标。

Q3. SHAP 计算特征重要性所依据的博弈论原理是什么?

答案:SHAP 以合作博弈论中的 Shapley 值为基础。将每个特征视为「玩家」,模型的预测值视为「收益」,计算在所有可能的特征子集(联盟)中,加入特定特征时的边际贡献的平均值。

说明:Shapley 值是唯一同时满足效率性(全部特征的 SHAP 值之和 = 预测值 - 期望值)、对称性、可加性、哑元特征这四条公理的分配方法。与 LIME 不同,SHAP 保证了全局(global)一致性,TreeSHAP 在树模型上能以 O(TLD^2) 的效率完成计算。

Q4. 在差分隐私中,为什么 epsilon 值越小,隐私保护就越强?

答案:epsilon 定义了这样一个上限——「一个数据点是否被包含,最多能使输出分布改变 e^epsilon 倍」。epsilon 越接近 0,无论该数据是否被包含,输出分布都几乎相同,个体信息因而不会被泄露。

说明:epsilon = 0 意味着完全的隐私(完全随机的输出),epsilon 越大则越实用,但隐私保护会相应减弱。在实务中,epsilon 在 1 以下被视为强隐私,10 以下被视为实用隐私。Opacus(PyTorch)或 TensorFlow Privacy 等库会自动计算所需的噪声规模并跟踪 epsilon。

Q5. 模型卡(Model Card)应当包含哪些核心信息项?

答案:模型详情(名称、版本、类型)、预期用途及范围外用途、评估要素(受保护属性)、性能指标(准确率、AUC 等)、训练数据说明、公平性分析结果、局限性与注意事项、伦理考量。

说明:Mitchell et al.(2019)提出的模型卡已成为 AI 透明度的标准做法。Google、Hugging Face 等主要企业在发布模型时都会公开模型卡。EU AI Act 中的高风险 AI 在附件四的技术文档化义务中,须包含与模型卡相当的信息。