返回列表

4th Place Solution Brief Summary : Magic of 1D CNN

454. G2Net Gravitational Wave Detection | g2net-gravitational-wave-detection

开始: 2021-06-30 结束: 2021-09-29 物理与天文 数据算法赛
第4名解决方案简要总结:1D CNN的魔力

第4名解决方案简要总结:1D CNN的魔力

作者: Mr_KnowNothing | 比赛排名: 第4名

大家好,
首先,我要感谢组织者和Kaggle团队举办了如此精彩有趣的比赛,我们学到了很多东西。我要感谢JarvisLabs.ai(一个基于GPU云的平台,提供现代化且极易启动的GPU实例)在比赛期间通过提供现代GPU卡帮助我们。该平台使我们能够利用即时GPU实例快速进行多次实验。我们所有的模型都是在cloud.jarvislabs.ai GPU实例上训练的,如果没有他们,这是不可能实现的。

这真的是一场艰难的战斗,我们本希望能获得奖金,但尽管如此,我们对我们的成绩感到非常满意。很高兴能再次与 @nischaydnk、@benihime91、@pheadrus 和 @proletheus 组队。

与其他团队类似,我们也从常数Q变换(Constant Q Transforms)和2D CNN架构开始,我们用不同的预处理技术(带通、白化、去噪AE、CWT等,细节稍后分享)做了很多实验,这使我们进入了前15名。

感谢Heng和其他Kaggle玩家的实验,我们意识到conv1d和序列模型在这些数据上效果非常好,这在直觉上也对我们很有意义,因此我们开始着手这方面的工作,一个自定义的1d cnn架构构成了我们解决方案的主要骨干。

1D/序列模型的魔力

我们非常高兴地宣布,我们的单个自定义1d架构模型得分达到了 公开LB 0.8838 / 私有LB 0.8828,仅凭此模型就进入了金牌区。(希望能围绕此写一篇论文)

我们从一个相当简单的Conv1d架构开始,只有8个conv1d层和一个普通的2倍线性头,令我们惊讶的是,它的得分非常高,CV 0.8766,LB 0.8788。这鼓励我们用序列模型进行更多实验,我们尝试了LSTM、GRU、transformer等混合模型,但都没能击败普通的conv1d模型。

最后,我们决定训练带有残差的深度conv1d模型(类似于ResNet),效果非常好,然后我们将头从线性改为LSTM,得到了进一步的提升。我们最终的模型架构流程如下:

GW waves numpy数组 --> 水平堆叠所有三个通道得到 (1,4096*3) 数组 --> 带通滤波 ---> 带有残差的深度conv1d骨干网络 ---> LSTM头 ---> 预测

我们尝试了GRU、transformer和bert类的头,但LSTM效果最好。

2D模型

我们大多数强大的2d模型来自 @proletheus,在我们合并时他当时排在第15位。他混合使用了增强和良好的归一化技术,这给我们的2d模型带来了很大的提升。我们在最终的集成中使用了基于CQT和CWT的模型。

我们在预处理中主要使用了nnAudio CQT1992v2和CQT2010,配置如下:

qtransform_params={"sr": 2048, "fmin": 30, "fmax": 400, "hop_length": 4, 
"bins_per_octave": 12, "filter_scale" : 0.3}

预处理顺序如下:
Numpy ---> signal tukey ---> 带通滤波器 ---> 通过 norm_by =[7.729773e-21,8.228142e-21, 8.750003e-21] 归一化 ---> CQT --> 增强[彩色噪声和偏移]

Torch audiomentations 用于应用增强。彩色噪声增强是按通道进行的,而偏移是按样本进行的。

请注意,这只是我们解决方案/旅程的一个小概要。
@benihime91 明天将发布带有代码的详细解决方案/解释

感谢阅读

同比赛其他方案