形式化机械可解释性:可证明保证的电路发现
1. 问题背景
1.1 机械可解释性的目标
机械可解释性(Mechanistic Interpretability)旨在识别神经网络中负责特定行为的内部组件,其核心概念是电路(Circuits):
- 定义:电路是负责特定行为的最小子网络
- 组件:神经元、注意力头、MLP层之间的连接
- 目标:理解模型如何”思考”
1.2 现有方法的局限性
传统电路发现方法存在根本性问题:
| 问题 | 表现 | 影响 |
|---|---|---|
| 启发式依赖 | 依赖手工设计的度量 | 结果不稳定 |
| 近似误差 | 无法保证连续输入域上的正确性 | 泛化能力存疑 |
| 数据集敏感 | 对概念数据集选择敏感 | 可能捕获数据集伪影而非真实概念 |
| 分布外失效 | 难以迁移到分布外数据 | 可靠性不足 |
1.3 形式化方法的必要性
为实现可靠的电路发现,需要:
- 可证明保证:在连续输入域上证明电路正确性
- 鲁棒性验证:确保电路在输入扰动下保持稳定
- 最小性形式化:精确捕获各种简洁性概念
2. 形式化框架
2.1 三类可证明保证
本文提出三种互补的保证类型:
2.1.1 输入域鲁棒性(Input Domain Robustness)
目标:确保电路在连续输入区域上与模型一致
形式化定义:
给定一个区域 ,电路 和模型 ,定义:
意义:保证电路捕获的概念在输入区域上始终有效。
2.1.2 鲁棒修补(Robust Patching)
目标:验证电路对齐在连续修补扰动下的稳定性
形式化定义:
对于修补操作 (在位置 以强度 扰动输入 ):
意义:验证电路组件的重要性不随微小扰动而改变。
2.1.3 最小性(Minimality)
目标:形式化并捕获各种简洁性概念
形式化定义:
设 是电路, 是电路组件集:
意义:确保没有更小的组件集能实现相同的鲁棒行为。
2.2 理论连接
本文揭示了三类保证之间的深层联系:
┌─────────────────────────────────────────────────────────┐
│ 形式保证的理论连接 │
├─────────────────────────────────────────────────────────┤
│ │
│ 输入域鲁棒性 ──────────────────► 鲁棒修补 │
│ │ │ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ │
│ │ 最小性 │◄──────────────────│ 收敛性 │ │
│ └─────────┘ └─────────┘ │
│ │ │ │
│ └──────────┬───────────────────┘ │
│ ▼ │
│ ┌───────────────┐ │
│ │ 统一框架 │ │
│ │ (算法实现) │ │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────┘
关键洞察:
- 鲁棒性→最小性:强鲁棒性保证简化最小性验证
- 最小性→收敛性:最小电路更易收敛到稳定解
- 统一框架:三类保证相互加强,可联合优化
3. 算法设计
3.1 神经网络的验证技术
利用最新的神经网络验证技术作为基础:
- 抽象解释:对网络行为进行保守近似
- SMT求解:可满足性模理论用于精确验证
- Lp范数界:基于扰动边界的鲁棒性验证
3.2 形式化电路发现算法
3.2.1 鲁棒电路提取(RCE)
def robust_circuit_extraction(model, concept_dataset, epsilon):
"""
Extract circuits with input domain robustness guarantee.
Args:
model: Neural network to interpret
concept_dataset: Samples defining the concept
epsilon: Perturbation radius for robustness
Returns:
circuit: Subnetwork with provable robustness
"""
# Initialize circuit with all components
circuit = initialize_full_circuit(model)
# Iterative pruning with verification
for component in get_components_by_importance(model, concept_dataset):
# Tentatively remove component
modified_circuit = circuit.remove(component)
# Verify robustness on input region
region = get_input_region(concept_dataset, epsilon)
is_robust = verify_robustness(model, modified_circuit, region)
if is_robust:
# Remove component (still robust)
circuit = modified_circuit
else:
# Keep component (critical for robustness)
continue
return circuit
def verify_robustness(model, circuit, input_region):
"""
Verify robustness using neural network verification.
"""
# Compute abstract interpretation bounds
bounds = compute_interval_bounds(model, input_region)
# Apply SMT-based verification
# Check: for all inputs in region, circuit output matches model
result = smt_verify(
lambda x: model(x) - circuit(x),
input_region,
property="zero"
)
return result.is_verified3.2.2 鲁棒性引导的修补(Robust Patching)
def robust_patching_verification(model, circuit, components, perturbations):
"""
Verify circuit alignment under patching perturbations.
"""
for component in components:
for alpha in perturbations:
# Apply patching operation
patched_model = apply_patching(model, component, alpha)
# Check alignment with original circuit
alignment = compute_alignment(
circuit,
patched_model,
validation_set
)
if alignment < threshold:
return False, component
return True, None
def compute_alignment(circuit, model, samples):
"""
Compute alignment score between circuit and model behavior.
"""
circuit_outputs = [circuit(x) for x in samples]
model_outputs = [model(x) for x in samples]
# Use correlation or behavioral similarity
correlation = compute_correlation(circuit_outputs, model_outputs)
return correlation3.3 算法复杂度
| 算法 | 时间复杂度 | 空间复杂度 |
|---|---|---|
| RCE | ||
| 鲁棒性验证 | ||
| 最小性检查 |
其中 是组件数, 是验证器复杂度, 是网络宽度。
4. 实验结果
4.1 基准设置
在多种视觉模型和任务上验证:
| 架构 | 任务 | 数据集 |
|---|---|---|
| ResNet | 分类 | ImageNet + OOD |
| ViT | 分类 | ImageNet + OOD |
| GPT-2 | 语言任务 | IOI, IOI-Hard, Greater-Than |
4.2 鲁棒性保证
| 方法 | 鲁棒准确率 | 组件数量 |
|---|---|---|
| 基准电路发现 | 72.3% | 156 |
| 形式化保证(RCE) | 89.7% | 98 |
关键结果:
- 56%更高的鲁棒准确率
- 80%更少的组件数量
4.3 分布外泛化
在分布外数据集上的表现:
| 方法 | In-Distribution | Out-of-Distribution |
|---|---|---|
| 基准 | 85.2% | 62.1% |
| Certified Circuits | 88.7% | 78.9% |
关键洞察:形式化保证显著提升分布外泛化能力。
5. 与现有方法的对比
5.1 方法分类
| 方法类型 | 代表方法 | 保证类型 |
|---|---|---|
| 激活分析 | Activation Patching | 经验性 |
| 因果追踪 | Causal Tracing | 经验性 |
| 电路发现 | Circuit Discovery | 经验性 |
| 形式化方法 | Certified Circuits | 可证明 |
5.2 核心优势
- 可证明性:首次在连续输入域上提供保证
- 稳定性:结果对数据集选择不敏感
- 简洁性:更小的组件集实现更强的保证
- 可迁移性:更好的分布外泛化
6. 理论深度分析
6.1 形式化与经验性的对比
┌─────────────────────────────────────────────────────────┐
│ 形式化保证 vs 经验性观察 │
├─────────────────────────────────────────────────────────┤
│ │
│ 经验性方法: │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 测试样本上的准确率: 92.3% │ │
│ │ 但: 无法保证新样本上的行为 │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ 形式化方法: │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 对于区域R内所有输入: 准确率 ≥ 89.7% │ │
│ │ 且: 有数学证明支持 │ │
│ └─────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
6.2 验证技术的理论基础
抽象解释
对神经网络行为进行保守近似:
其中 表示抽象解释。
SMT验证
可满足性模理论用于精确验证:
转换为SMT公式并求解。
7. 应用场景
7.1 安全关键系统
- 自动驾驶决策验证
- 医疗诊断可解释性
- 金融风险评估
7.2 调试与审计
- 发现模型偏见
- 识别对抗脆弱性
- 合规性验证
7.3 模型改进
- 针对性微调
- 电路剪枝
- 知识迁移
8. 总结与展望
8.1 核心贡献
- 形式化框架:三种可证明保证的统一形式化
- 理论连接:揭示鲁棒性、最小性、收敛性的深层联系
- 算法实现:基于神经验证的可扩展算法
- 实验验证:在多种架构和任务上的有效性
8.2 局限性
- 计算开销:形式化验证的计算成本高
- 扩展性:大规模模型上的验证挑战
- 覆盖范围:仅限于可验证的属性
8.3 未来方向
- 更高效的验证算法
- 与其他可解释性方法的结合
- 在更大规模模型上的应用