Files

67 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Q2:连续局部缺失下的概率补全与可靠度门控
Q2 默认遵循附件二 `aligned_50.pkl` 的官方 train/valid/test 划分,按来源 `video_id` 核验组间隔离;Q1 的五折探针不替代 Q2 的官方测试。附件三只输出无标签预测与审计,不计算准确率或 F1。
未对齐版可运行 `uv run --project math/Q1 python math/Q2/train_unaligned_c5.py`,数据入口现调用 Q1 的统一对齐适配器并选用 Relative 模式;既有结果写入 `results_unaligned/`。统一接口与审计见 [`../Q1/UNIFIED_ADAPTER.md`](../Q1/UNIFIED_ADAPTER.md),适配假设与附件三限制见 [`../Q1/UNALIGNED_ADAPTER.md`](../Q1/UNALIGNED_ADAPTER.md)。该视图不代表物理时间对齐。
未对齐版测试集 727 条样本的 Accuracy 为 0.6726、Macro-F1 为 0.5668、MAE 为 0.7059;`results_unaligned/run_manifest.json` 记录来源审计、划分、参数和明确的物理时间限制。该训练只固定 C5 并重新拟合参数,没有对未对齐版重做 C0–C7 结构选择或附件三推理。
完整的 V2 算法核查、Accuracy 口径和正式运行指标见 [`V2_REVIEW.md`](V2_REVIEW.md)。
## 运行
复用 Q1 的 `uv` 环境:
```bash
uv run --project math/Q1 python math/Q2/train.py
```
默认最多训练 12 个 epoch,状态空间补全器训练 8 个 epoch,batch size 64,patience 3;默认使用可用 CUDA。运行需要本机缓存 `google-bert/bert-base-uncased` 权重。快速接口冒烟参数示例:
```bash
uv run --project math/Q1 python math/Q2/train.py --epochs 1 --imputer-epochs 1 --bootstrap-repeats 100
```
## 按论文构建的模型
- **输入与隔离:** 只读取官方对齐 50 步特征,不把原始文本、非对齐文件或标签送入补全器。来源文件明确约定的全零模态行用于缺失判定;重复主键、非有限特征、非法标签或正负/中性标签不一致会直接报错。拟合、可靠度内层验证和温度校准三部分按视频组互斥。
- **共享/私有动态补全:** 共享状态 8 维、各模态私有状态 4 维,模态发射矩阵对其他私有状态固定为零。正定初始/过程/发射噪声和谱范数受限转移矩阵;训练只用 proper-train 拟合标准化器和完整观测高斯边际似然(含 log-determinant)。信息形式滤波与 RTS 平滑形成时空联合后验;先抽联合潜状态轨迹,再抽缺失发射噪声,观测行原样保留。补全器在教师/学生训练前冻结。
- **可靠度与时序:** 质量字段不可用时只对当前可见行取 `q*=1` 并标记未知;人工遮蔽位置不透传原质量。缺失可靠度由 ρimp 和非负不确定度/前后距离/缺口长度系数构成;系数在独立的训练组内层验证集上从候选组中选择后固定。BiGRU 按方向衰减历史状态,重置门先作用于隐藏状态再进入候选映射,更新门再乘可靠度。
- **跨模态与最终融合:** 单层跨时间来源注意力采用有界内容分数、每个来源的均匀基准质量和正质量空来源;最终融合使用 `rho × bounded content` 权重与正先验专家。低秩秩 4 CP 残差减去全零输入常数并可关闭。
- **输出分布:** 三类极性概率加精确中性零点质量;负/正幅度各用 Beta 分布,共享类别内集中度。先按联合轨迹混合类别概率与条件 Beta,再对最终类别概率做独立温度校准;预测类别并列时中性优先,中性分数严格为 0,非中性输出对应类别条件混合中位数。
- **损失和消融:** 混合区间概率负对数加缩放 Huber;教师使用自然可见视图并冻结,C7 蒸馏与 C7 平滑最坏组风险分开训练;隐藏可观测片段的辅助重建按模态归一化。内层组外固定情景用于早停和可靠度/组风险候选选择;官方验证集用于 C0–C7 结构选择,测试集不参与调参。另训练 C6 的无距离惩罚、无辅助重建、独立点遮蔽三项单因素诊断,不参与最终模型挑选。
输入 `aligned_50.pkl` 不提供逐行质量分数或质量可用标记,因此只能按 PDF 的回退规定令可见行 `q*=1, J_Q=0`,即 `R_eff=R`。质量–噪声映射在当前数据上没有可识别变化,故不伪造一项训练对照;实现及限制写入运行清单。
## 缺失控制与指标
训练遮蔽率为 0、0.1、0.3、0.5、0.7,覆盖单模态、同步、部分重叠、异步连续缺口,保留每个被遮蔽模态至少 20% 原始观测。验证集预先固定同一组遮蔽实例供所有模型比较,包括模态组合、开头/中段/末尾、单长段/多短段和同步程度。自然、额外及最终缺失率按 T/A/V 分别计算后等权汇总,并记录同步无观测率。按缺失率曲线计算归一化 AURC-MAE;逐情景和 AURC 差值均使用相同的视频组重采样。官方 50 步输入不含可审计的语义边界索引,学生也不得读原文,因此不伪造否定词/转折词位置实验。
准确率、Macro-F1、MAE、RMSE、Pearson、各类召回与支持数、Brier、分类 NLL、ECE,以及 90% 预测区间覆盖率/宽度均按一致解码报告。视频组 Bootstrap 用于最终测试区间和验证集模型配对差值;轨迹内方差与轨迹间均值方差分别记录。附件三全无可见观测时退回训练集平滑类别先验与按类别拟合的幅度先验,并保留低信息标记。
## 输出
结果写入 `math/Q2/results/`:
- `crg_student.pt`、`teacher.pt`、`structured_imputer.pt`、`preprocessor.npz`:推理所需权重与训练折尺度。
- `ablation_validation.csv`、`reliability_hparam_tuning.csv`、`group_risk_tuning.csv`:C0–C7 与单因素诊断、内层可靠度和 C7 组风险参数选择。
- `validation_metrics.json`、`test_metrics.json`、`test_predictions.csv`:正式验证/测试指标、点预测、概率、区间和方差分解。
- `test_gate_diagnostics.csv`:按测试样本、时间位置和模态记录路径平均融合权重、可靠度、补全不确定性、缺口/跨度与时间池化权重。
- `q2_diagnostics.png`、`q2_gate_positions.png`:缺失率曲线、模态/位置热图、混淆矩阵、情感强度散点、区间覆盖和逐位置融合门控摘要。
- `group_bootstrap_ci.csv`、`validation_group_bootstrap_deltas.csv`:来源视频组区间及模型配对差值。
- `controlled_missingness.csv`、`controlled_mask_audit.csv`、`controlled_group_bootstrap.csv`:逐场景指标、等权缺失率、逐样本半开区间/遮蔽种子、视频组置信区间、配对差值和 AURC-MAE。
- `training_history.csv`、`run_manifest.json`:优化轨迹、数据哈希、数据划分、可靠度设置和运行参数。
- `attachment3_predictions.csv`、`attachment3_audit.csv`:30 条无标签预测、区间与输入/低信息审计。
单独重跑附件三推理:
```bash
uv run --project math/Q1 python math/Q2/predict_attachment3.py
```
从已生成的 CSV 重画诊断图:
```bash
uv run --project math/Q1 python math/Q2/plot_diagnostics.py
```