形式化机械可解释性:可证明保证的电路发现

1. 问题背景

1.1 机械可解释性的目标

机械可解释性(Mechanistic Interpretability)旨在识别神经网络中负责特定行为的内部组件,其核心概念是电路(Circuits)

  • 定义:电路是负责特定行为的最小子网络
  • 组件:神经元、注意力头、MLP层之间的连接
  • 目标:理解模型如何”思考”

1.2 现有方法的局限性

传统电路发现方法存在根本性问题:

问题表现影响
启发式依赖依赖手工设计的度量结果不稳定
近似误差无法保证连续输入域上的正确性泛化能力存疑
数据集敏感对概念数据集选择敏感可能捕获数据集伪影而非真实概念
分布外失效难以迁移到分布外数据可靠性不足

1.3 形式化方法的必要性

为实现可靠的电路发现,需要:

  1. 可证明保证:在连续输入域上证明电路正确性
  2. 鲁棒性验证:确保电路在输入扰动下保持稳定
  3. 最小性形式化:精确捕获各种简洁性概念

2. 形式化框架

2.1 三类可证明保证

本文提出三种互补的保证类型:

2.1.1 输入域鲁棒性(Input Domain Robustness)

目标:确保电路在连续输入区域上与模型一致

形式化定义

给定一个区域 ,电路 和模型 ,定义:

意义:保证电路捕获的概念在输入区域上始终有效。

2.1.2 鲁棒修补(Robust Patching)

目标:验证电路对齐在连续修补扰动下的稳定性

形式化定义

对于修补操作 (在位置 以强度 扰动输入 ):

意义:验证电路组件的重要性不随微小扰动而改变。

2.1.3 最小性(Minimality)

目标:形式化并捕获各种简洁性概念

形式化定义

是电路, 是电路组件集:

意义:确保没有更小的组件集能实现相同的鲁棒行为。

2.2 理论连接

本文揭示了三类保证之间的深层联系:

┌─────────────────────────────────────────────────────────┐
│              形式保证的理论连接                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   输入域鲁棒性 ──────────────────► 鲁棒修补              │
│        │                              │                │
│        │                              │                │
│        ▼                              ▼                │
│   ┌─────────┐                   ┌─────────┐            │
│   │ 最小性  │◄──────────────────│  收敛性  │            │
│   └─────────┘                   └─────────┘            │
│        │                              │                │
│        └──────────┬───────────────────┘                │
│                   ▼                                     │
│           ┌───────────────┐                             │
│           │  统一框架     │                             │
│           │ (算法实现)    │                             │
│           └───────────────┘                             │
└─────────────────────────────────────────────────────────┘

关键洞察

  1. 鲁棒性→最小性:强鲁棒性保证简化最小性验证
  2. 最小性→收敛性:最小电路更易收敛到稳定解
  3. 统一框架:三类保证相互加强,可联合优化

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_verified

3.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 correlation

3.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-DistributionOut-of-Distribution
基准85.2%62.1%
Certified Circuits88.7%78.9%

关键洞察:形式化保证显著提升分布外泛化能力。

5. 与现有方法的对比

5.1 方法分类

方法类型代表方法保证类型
激活分析Activation Patching经验性
因果追踪Causal Tracing经验性
电路发现Circuit Discovery经验性
形式化方法Certified Circuits可证明

5.2 核心优势

  1. 可证明性:首次在连续输入域上提供保证
  2. 稳定性:结果对数据集选择不敏感
  3. 简洁性:更小的组件集实现更强的保证
  4. 可迁移性:更好的分布外泛化

6. 理论深度分析

6.1 形式化与经验性的对比

┌─────────────────────────────────────────────────────────┐
│           形式化保证 vs 经验性观察                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   经验性方法:                                          │
│   ┌─────────────────────────────────────────────────┐  │
│   │ 测试样本上的准确率: 92.3%                         │  │
│   │ 但: 无法保证新样本上的行为                        │  │
│   └─────────────────────────────────────────────────┘  │
│                                                         │
│   形式化方法:                                          │
│   ┌─────────────────────────────────────────────────┐  │
│   │ 对于区域R内所有输入: 准确率 ≥ 89.7%               │  │
│   │ 且: 有数学证明支持                               │  │
│   └─────────────────────────────────────────────────┘  │
│                                                         │
└─────────────────────────────────────────────────────────┘

6.2 验证技术的理论基础

抽象解释

对神经网络行为进行保守近似:

其中 表示抽象解释。

SMT验证

可满足性模理论用于精确验证:

转换为SMT公式并求解。

7. 应用场景

7.1 安全关键系统

  • 自动驾驶决策验证
  • 医疗诊断可解释性
  • 金融风险评估

7.2 调试与审计

  • 发现模型偏见
  • 识别对抗脆弱性
  • 合规性验证

7.3 模型改进

  • 针对性微调
  • 电路剪枝
  • 知识迁移

8. 总结与展望

8.1 核心贡献

  1. 形式化框架:三种可证明保证的统一形式化
  2. 理论连接:揭示鲁棒性、最小性、收敛性的深层联系
  3. 算法实现:基于神经验证的可扩展算法
  4. 实验验证:在多种架构和任务上的有效性

8.2 局限性

  • 计算开销:形式化验证的计算成本高
  • 扩展性:大规模模型上的验证挑战
  • 覆盖范围:仅限于可验证的属性

8.3 未来方向

  • 更高效的验证算法
  • 与其他可解释性方法的结合
  • 在更大规模模型上的应用

参考资料