关于 symmetry-validation-suite
这项清单式技能用于在选择等变架构前,检验数据与模型中的候选对称性是否成立。它涵盖变换测试、群结构检查、分布分析和验证报告。
主要功能
- 01对称性假设清单
- 02不变性与等变性测试
- 03变换测试集设计
- 04群结构验证
- 05变换后数据分布检查
- 06验证报告建议
适用场景
- 01选择架构前评估候选对称性
- 02检查变换样本是否仍符合分布
- 03决定采用硬约束、软约束或数据增强
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill symmetry-validation-suite安装后在 Claude Code 中输入/symmetry-validation-suite确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/methodology.mdtest-examples.mdresources/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]