Skip to content

Stage 5: 结果分析 (Analysis)

进入时手里有什么

  • 所有实验的 WandB 运行记录
  • 最佳 checkpoint 和训练日志
  • Research Contract(要验证的 claim 列表)
  • 实验过程中的 findings.md

阶段目标

系统性地分析实验结果,对照 Research Contract 逐条验证 claim,得出明确的结论。

具体步骤

mermaid
graph TD
    A[收集实验结果] --> B[Planner: 对照 Contract 分析]
    B --> C[Coder: 生成分析脚本]
    C --> D[运行分析]
    D --> E[Planner: 撰写结论]
    E --> F[Judge: 验证结论有效性]
    F --> G{Judge 判定}
    G -->|go| H[写入 Experiment.md]
    G -->|revise| I{缺数据还是缺分析?}
    I -->|缺数据| J[回退到 Training 补实验]
    I -->|缺分析| C
    H --> K[进入 Writing 阶段]

Step 1: 收集实验结果

执行者: 编排器

从 WandB 和本地文件汇总所有实验结果:

markdown
## 实验结果汇总

| 实验 | 方法 | CUB-200 acc | 训练时间 | WandB |
|------|------|-------------|---------|-------|
| exp01 | Baseline (base paper) | 86.8% | 5.5h | baseline_001 |
| exp02 | Ours (contrastive-decouple) | 88.1% | 7.2h | main_001 |
| exp03 | Ablation (no contrastive) | 87.2% | 6.8h | ablation_001 |

Step 2: 对照 Contract 分析

执行者: Planner (Claude Opus)

逐条对照 Research Contract 中的 Evidence 要求:

markdown
## Contract Verification

### E1: 精度提升 ✅
- 目标: top-1 acc > 86.8%
- 结果: 88.1%(提升 1.3%)
- 状态: 通过

### E2: 无额外推理开销 ✅
- 目标: FLOPs ≤ base paper × 1.1
- 结果: FLOPs = base paper × 1.0(推理时丢弃投影头)
- 状态: 通过

### E3: 解耦贡献 ✅
- 目标: 去掉解耦模块后精度下降
- 结果: 88.1% → 87.2%(下降 0.9%)
- 状态: 通过

Step 3: 深入分析

执行者: Coder (Codex) 编写分析脚本

如果需要更深入的分析(可视化、统计检验等):

python
# analysis/visualize.py

import wandb
import matplotlib.pyplot as plt

# 1. Loss 曲线对比
# 2. 特征空间 t-SNE 可视化
# 3. 类内/类间距离统计
# 4. 消融各组件的贡献

Step 4: 撰写结论

执行者: Planner (Claude Opus)

基于分析结果,撰写结构化的结论:

markdown
## 结论

### 主要发现
1. 对比学习有效解耦了共性和判别性特征(t-SNE 可视化支持)
2. 精度提升 1.3% 且推理无额外开销
3. 消融实验确认了对比损失的贡献

### 局限性
1. 仅在 CUB-200 上验证,泛化性未知
2. 温度参数 0.07 是手工调的,sensitivity analysis 缺失

### 未来工作
1. 多数据集验证(Stanford Cars, FGVC Aircraft)
2. 温度参数自适应学习

Step 5: Judge 验证

执行者: Judge (Codex)

Judge 独立验证分析结论的有效性:

yaml
review: analysis-v1
verdict: revise
issues:
  - severity: medium
    issue: "E3 的 margin 太小"
    detail: "88.1% vs 87.2%,只差 0.9%。需要确认是否统计显著"
    suggestion: "跑 3 次求平均 ± std,或者做 significance test"
  - severity: low
    issue: "缺少训练曲线分析"
    detail: "主实验的 loss 曲线在中期有波动,应该解释原因"

各 Agent 职责

Agent做什么不做什么
Planner对照 Contract 分析、撰写结论不美化结果
Coder编写分析脚本、可视化不解读结果含义
Judge验证结论有效性、检查统计严谨性不提供替代结论
编排器协调分析流程、决定是否补实验不自行做分析

Gate 信息

属性
默认 Gateauto-judge
特殊配置require_all_claims: true
通过条件所有 claim 都有 evidence + Judge approve
部分通过不允许 — 要么全部 claim 通过,要么回退

不允许部分通过

如果 3 个 claim 中有 2 个通过了但 1 个没有,整个分析阶段不算通过。编排器需要决定:补实验(回退 Training)还是修改 claim(回退 Design)。

错误处理 / 回退

情况处理方式
某个 claim 没有 evidence回退到 Training 补实验
结果不如预期分析原因,决定调参重跑还是修改 claim
统计不显著增加实验次数(跑 3-5 次求平均)
发现数据问题回退到 Implementation 检查数据流
Judge 要求更多分析Coder 补充分析脚本

产出物

文件内容
experiments/exp-*-results.md每个实验的正式结果
Experiment.md所有实验的汇总结论
analysis/分析脚本和可视化图表
findings.md 更新分析过程中的发现
status.yaml 更新stage → analysis

进入下一阶段的条件

  • Research Contract 中所有 claim 都有 evidence 支撑
  • Judge 确认分析结论有效
  • Experiment.md 已写入正式结论
  • 可视化图表已生成

AutoResearch — Multi-agent Deep Learning Research System