78 lines
3.7 KiB
Markdown
78 lines
3.7 KiB
Markdown
# Q2:缺失模态下的多模态情感识别
|
||
|
||
本目录包含 Q2 的训练代码、环境配置和后续实验约定。当前只维护两种模型:
|
||
|
||
1. **EarlyConcat + BiGRU**:将文本、音频、视觉特征和观测掩码拼接后,用双向 GRU 建模有序序列,作为简洁基线。
|
||
2. **MoFE-7 + MLP Router**:根据每个位置可用的模态,在七种模态子集专家之间路由,再用共享 BiGRU 建模序列。
|
||
|
||
旧的模型比较报告、指标表和图表已清理。不要从此 README 推断模型优劣;后续结果应放进独立实验目录并在新报告中解释。
|
||
|
||
## 数据与时序表示
|
||
|
||
训练入口读取项目根目录下 `E题数据/附件2-数据集特征文件/aligned_50.pkl` 的官方训练集和验证集。每个样本包含 50 个有序位置,文本、音频、视觉维度分别为 768、74、35,并带有显式观测掩码。这里的 50 个位置是附件 2 提供的词片位置,**不是 50 个等长物理时间箱**。
|
||
|
||
Q1 的对齐方法为 Q2 提供了有序的跨模态输入组织方式;Q2 在此基础上处理连续块缺失,不重新提取或改写 Q1 特征。根目录 `math/` 和 `final/Q1/` 中的内容只作只读参考。
|
||
|
||
标准化参数只从训练集拟合。当前保留的两组模型权重及共享标准化参数位于:
|
||
|
||
```text
|
||
outputs/mofe_7experts/
|
||
├── aligned_robust_stats.npz
|
||
└── models/
|
||
├── baselines/concat/seed_{42,3407,2026}/model_best.pt
|
||
└── B5_mofe_mlp/seed_{42,3407,2026}/model_best.pt
|
||
```
|
||
|
||
## 环境
|
||
|
||
本项目使用 `uv` 管理 Python 环境。进入本目录后同步锁定依赖:
|
||
|
||
```bash
|
||
uv sync --locked
|
||
```
|
||
|
||
## 运行
|
||
|
||
先用单个种子执行快速检查。每轮运行使用新的目录,避免覆盖保留的参照权重:
|
||
|
||
```bash
|
||
uv run python -m q2.train_mofe \
|
||
--phase smoke --seeds 42 \
|
||
--output-dir outputs/followups/F00_smoke
|
||
```
|
||
|
||
完整训练和验证示例:
|
||
|
||
```bash
|
||
uv run python -m q2.train_mofe \
|
||
--phase full --seeds 42 3407 2026 \
|
||
--output-dir outputs/followups/F01_local_repair
|
||
```
|
||
|
||
完整运行会训练两种模型,并在 clean、Text、Audio、Vision、Audio+Vision、All-modal 条件下评估 10%、20%、30% 连续块缺失;结果、检查点和诊断图写入指定目录。默认输出目录是 `outputs/mofe_7experts/`,日常新实验应显式设置 `--output-dir`,避免覆盖保留的权重和标准化参数。
|
||
|
||
## 文件索引
|
||
|
||
- `q2/data.py`:官方特征读取、观测掩码、训练集 robust scaling 和连续块缺失。
|
||
- `q2/models.py`:EarlyConcat + BiGRU。
|
||
- `q2/mofe.py`:MoFE-7 专家与 MLP 路由器。
|
||
- `q2/train_mofe.py`:两种保留模型的训练、验证、统计和可视化入口。
|
||
- `q2/task_preference.py`:复用现有 MoFE 权重,比较七个 forced expert 的分类/回归偏好。
|
||
- [ALGORITHM.md](ALGORITHM.md):两个保留模型的算法说明和最新验证集重评结果。
|
||
- [EXPERIMENT_PROTOCOL.md](EXPERIMENT_PROTOCOL.md):后续实验的固定比较条件与记录要求。
|
||
- `outputs/followups/README.md`:新实验目录的命名和存放规则。
|
||
|
||
Q3 暂不在本目录中开展;待 Q2 后续选型完成后再统一规划。
|
||
|
||
## 当前任务偏好诊断
|
||
|
||
在训练 dual-router 前,先用现有 MoFE-7 检查了七个 forced expert 在分类 Macro-F1 与回归 MAE/Pearson 上的偏好。三个 seed、15 种缺失条件的排名大体一致,没有看到稳定的分类—回归 expert 分工;因此当前不启动 dual-router,仍以 single-router MoFE-7 为活动参照。详见[诊断报告](outputs/followups/D0_task_preference/task_preference_diagnostic.md)及逐条件数据。
|
||
|
||
可用以下命令复现该诊断:
|
||
|
||
```bash
|
||
uv run python -m q2.task_preference \
|
||
--seeds 42 3407 2026 \
|
||
--output-dir outputs/followups/D0_task_preference
|
||
```
|