第10名方案:CWT->1D Conv + CNN
第10名方案:CWT->1D Conv + CNN
作者:Johnny Lee (wuliaokaola) |
比赛排名:第10名 |
发布时间:2021-09-30
首先,我要感谢主办方和Kaggle组织了这场精彩的比赛。在这两个月里,我们学到了很多东西。
我的部分工作简述
流程架构
从本质上讲,CWT/CQT(连续小波变换/常数Q变换)属于一种一维卷积。但它仅仅是一层,而且卷积核太大。因此,直接将其设为可训练参数并不奏效。我使用了下面这个小技巧:
- CWT + Resnet34/EfNet,尺寸 488x512,1/5 折交叉验证,训练 5 个 epoch -> 验证集 AUC:0.87x
- 用多层一维卷积(1D Conv)替换 CWT,尺寸与 CWT 相同,训练 20 个 epoch -> 验证集 AUC:0.880x
- 使用全量数据微调模型,5 个 epoch
单模型可以获得 0.8790/0.8808(私有/公开排行榜分数)
使用不同的参数集(带通滤波、时间平移、随机关闭通道等)来训练上述 10 个模型。将它们全部集成可以获得 0.8803/0.8818(私有/公开排行榜分数)。
然后与我其他的模型进行集成,结果为 0.8816/0.8828(私有/公开排行榜分数)。不幸的是,我们没有选择它作为最终提交的分数。
数据增强
- 将原始波形裁剪为 (3, 3904),随机平移 +- 65
- 每个通道随机平移 +- 5
- 随机关闭一个通道
- 随机交换两个波形的通道(仅针对目标值 target=0 的样本)
其他细节
- 使用 Tensorflow 和 TPU
- CWT/CQT 转换是实时进行的