第25名方案总结
第25名方案总结
作者:Chung-Hsien Tsai
比赛排名:第25名
使用的工具
- Tensorflow/Keras
- Colab(使用免费版 TPU)
- Google Cloud Storage
我在本地渲染数据,将数据打包成 .tfrec 格式,并上传到 Google Cloud Storage(约 2TB)。为了确保容量不会爆炸,我将图像压缩成了 PNG 格式。
数据集
- 使用了训练集(非完整版*)和验证集数据
- 使用了默认设置(来自示例代码)进行渲染,除了 min_future_frame(= 10)
网络主干
- Xception
我尝试了 Keras 提供的许多主干网络以及不同版本的 Resnet(101, 50, 34, 18),发现 Xception 的质量最好(通过验证集评估)。
- Batch size = 256
其他技巧
- 验证
使用了验证集数据和部分训练集数据。我根据 Agent 中心点的 y 坐标位置,将训练集和验证集数据分成了五部分。我确保相同(或相似)的地图不会同时出现在训练集和验证集中。
- 多模态
我预测了 4 种模式,并选择了置信度最高的前 3 种模式。此外,我尝试过更多模式(> 4),但发现只有 4 种模式具有较大的置信度值,而其他模式从未被选中。这种不平衡问题在多模态技巧中似乎很常见。
- 标签平滑
我对每个真实标签“乘以”了一个微小的高斯噪声(均值 = 1,标准差 = 0.00333)。
- 自定义损失函数
我使用了官方提供的多模态评估指标作为损失函数。为了对极端情况给予更多的惩罚,损失值乘以了一个权重,该权重与每个 Agent 的“角度”成正比。
角度计算公式:Angle = acos(x/sqrt(x**2 + y ** 2)),其中 是每个 Agent 最终位置的坐标。
- 丢弃历史帧
我使用了 10 个历史帧进行训练,但我发现大约 5% 的测试数据的历史帧少于 10 个。因此,我随机丢弃了目标历史帧中的历史信息。
*由于 Colab 内存的限制,我无法使用完整的训练数据进行预处理。太遗憾了。