mcpField
S
symmetry-validation-suite

symmetry-validation-suite

github.com/lyndonkl数据与数据库18779 次安装9 周前更新
代码仓库

关于 symmetry-validation-suite

这项清单式技能用于在选择等变架构前,检验数据与模型中的候选对称性是否成立。它涵盖变换测试、群结构检查、分布分析和验证报告。

主要功能

  1. 01对称性假设清单
  2. 02不变性与等变性测试
  3. 03变换测试集设计
  4. 04群结构验证
  5. 05变换后数据分布检查
  6. 06验证报告建议

适用场景

  1. 01选择架构前评估候选对称性
  2. 02检查变换样本是否仍符合分布
  3. 03决定采用硬约束、软约束或数据增强

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lyndonkl/claude --skill symmetry-validation-suite

安装后在 Claude Code 中输入/symmetry-validation-suite确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

resources/
methodology.md
test-examples.md
resources/evaluators/
rubric_validation.json

详细介绍

对称性验证套件

错误的对称性假设会损害模型性能——对称性过多会施加过强约束,而遗漏对称性则会浪费模型容量。在采用等变架构之前,请先进行验证。

工作流

复制此清单并跟踪进度:

Symmetry Validation Progress:
- [ ] Step 1: List symmetry hypotheses to test
- [ ] Step 2: Design transformation test sets
- [ ] Step 3: Run invariance/equivariance tests
- [ ] Step 4: Verify group structure
- [ ] Step 5: Analyze data distribution under transforms
- [ ] Step 6: Document validation results

步骤 1:列出要测试的对称性假设

从之前的发现工作中收集候选对称性。对于每项,记录变换类型、预期是保持不变还是保持等变,以及置信度。优先测试置信度较低的假设。如果没有假设,请先通过领域分析与用户一起找出候选对称性。

步骤 2:设计变换测试集

针对每种对称性,创建测试方案:从数据分布中抽取具有代表性的输入。定义变换采样策略(随机旋转、所有排列等)。确定满足统计显著性要求的适当样本量。考虑边缘情况和边界条件。有关指导,请参阅变换采样。有关详细方法,请参阅方法详情。

步骤 3:运行不变性/等变性测试

进行不变性测试:对输入 x 应用变换 T,计算输出 f(x) 和 f(T(x)),并测量误差 ||f(T(x)) - f(x)||。进行等变性测试:计算 f(T(x)) 和 T'(f(x))(其中 T' 是输出变换),并测量误差 ||f(T(x)) - T'(f(x))||。有关实现细节,请参阅测试协议。汇总所有样本并计算统计量。完整代码示例请参阅测试实现示例。

步骤 4:验证群结构

检查所声称的变换是否构成有效的群:测试封闭性(两个变换的复合仍是一个变换)。测试结合律。验证单位元是否存在。验证逆元是否存在。对于李群,检查生成元在交换子运算下是否封闭。请参阅群结构测试。

步骤 5:分析变换下的数据分布

检查变换后的数据是否仍处于分布内:对训练数据应用变换。比较原始数据与变换后数据的统计量。检查可能破坏假设的分布偏移。确定能保持有效性的变换范围。这有助于识别“近似对称性”情况,即对称性仅在一定范围内成立。

步骤 6:记录验证结果

使用输出模板创建验证报告。对于每种对称性,说明假设、测试方法、定量结果和通过/未通过判定。建议采用硬等变约束、软约束(正则化)、数据增强,或完全不使用对称性。此输出的质量标准定义于质量评分标准。

测试协议

不变性测试协议
def test_invariance(model, data_samples, transform_fn, n_transforms=100):
    """
    Test if model output is invariant to transformations.

    Returns:
        mean_error: Average ||f(T(x)) - f(x)||
        max_error: Maximum error observed
        pass_rate: Fraction with error < threshold
    """
    errors = []
    for x in data_samples:
        y_orig = model(x)
        for _ in range(n_transforms):
            x_transformed = transform_fn(x)
            y_transformed = model(x_transformed)
            error = norm(y_transformed - y_orig)
            errors.append(error)

    return {
        'mean_error': mean(errors),
        'max_error': max(errors),
        'std_error': std(errors),
        'pass_rate': sum(e < threshold for e in errors) / len(errors)
    }
等变性测试协议
def test_equivariance(model, data_samples, input_transform, output_transform):
    """
    Test if f(T(x)) = T'(f(x)) for equivariance.

    Returns:
        mean_error: Average ||f(T(x)) - T'(f(x))||
        relative_error: Error normalized by output magnitude
    """
    errors = []
    for x in data_samples:
        # Method 1: Transform then model
        x_T = input_transform(x)
        y1 = model(x_T)

        # Method 2: Model then transform
        y = model(x)
        y2 = output_transform(y)

        error = norm(y1 - y2)
        relative = error / (norm(y2) + eps)
        errors.append({'absolute': error, 'relative': relative})

    return aggregate_stats(errors)
统计显著性

为获得可靠结果:

  • 至少使用 100 个数据样本
  • 每个样本至少测试 50 个随机变换
  • 报告均值、标准差和百分位数(第 95、99 百分位)
  • 根据数值精度预期设定阈值
  • 比较不同方法时使用假设检验

变换采样

连续群
群采样策略
SO(2)在 θ ∈ [0, 2π) 范围内均匀随机采样角度
SO(3)均匀随机采样四元数或轴角
SE(3)结合 SO(3) 旋转与均匀平移
平移在预期数据范围内均匀采样
离散群
群采样策略
Cₙ所有 n 种旋转
Dₙ所有 2n 个元素(旋转 + 反射)
Sₙ随机排列(当 n ≤ 6 时完全枚举)

群结构测试

封闭性测试
For random g₁, g₂ ∈ G:
  Compute g₃ = g₁ · g₂
  Verify g₃ ∈ G (within numerical tolerance)
结合律测试
For random g₁, g₂, g₃ ∈ G:
  Compute (g₁ · g₂) · g₃
  Compute g₁ · (g₂ · g₃)
  Verify equality (within tolerance)
单位元和逆元测试
For random g ∈ G:
  Verify g · e = e · g = g
  Find g⁻¹ and verify g · g⁻¹ = e

结果解读指南

误差阈值
误差级别解释
< 1e-6精确对称(数值精度)
1e-6 to 1e-3强近似对称
1e-3 to 0.01弱近似对称
> 0.01对称性可能不成立
决策矩阵
验证结果建议
已确认精确对称使用硬等变约束
强近似对称使用等变架构
弱近似对称考虑使用软约束或数据增强
对称性已破坏不要强制施加此对称性
部分对称使用条件式/局部等变性

输出模板

SYMMETRY VALIDATION REPORT
==========================

Tested Symmetries:

1. [Transformation]: [Invariance/Equivariance]
   - Sample size: [N samples × M transforms]
   - Mean error: [value]
   - Max error: [value]
   - Pass rate: [%] at threshold [value]
   - RESULT: [PASS/FAIL/PARTIAL]
   - Recommendation: [Hard constraint/Soft/Augmentation/None]

2. [Transformation]: [Invariance/Equivariance]
   ...

Group Structure:
- Closure: [PASS/FAIL]
- Associativity: [PASS/FAIL]
- Identity/Inverse: [PASS/FAIL]

Distribution Analysis:
- Transform range where symmetry holds: [bounds]
- Detected breaking factors: [list]

SUMMARY:
- Confirmed symmetries: [list]
- Rejected symmetries: [list]
- Proceed to architecture design with: [group specification]

评论

支持 Markdown