返回列表

12th place...

442. Bristol-Myers Squibb – Molecular Translation | bms-molecular-translation

开始: 2021-03-02 结束: 2021-06-03 药物研发 数据算法赛
第12名...

第12名...

作者: fergusoci | 发布时间: 2021-06-04 | 比赛排名: 第12名

呼……Kaggle 真是太难了!过去的两个月感觉就像是一场艰苦的拉锯战。我本想冲击一枚个人金牌,但最终以微弱差距惜败——祝贺所有的获胜者,以及所有获得奖牌的选手,很高兴能与你们同台竞技!

在详细介绍解决方案之前,我要特别感谢一些人:@hengck23 - 很高兴看到你进入了金牌区。我最强的模型是基于你早期慷慨开源的解决方案构建的。我从上一次比赛的队友(@christofhenkel, @ilu000, @philippsinger, @robikscube)那里学到了很多东西——如果没有他们的帮助,我不可能取得这样的成绩。干杯。

解决方案策略:

鉴于数据集的规模和表现最好的模型都非常庞大,我很早就意识到需要做出一个战略决策:是训练多个较小的模型并进行集成,还是训练一个单一的大模型并尝试突破其极限。

我觉得这次比赛在数据规模上与 Lyft 比赛相似。我从那场比赛中学到的主要经验是,耐心是一种美德:长时间训练模型是有价值的,哪怕时间超出了你的预期。虽然提升很慢,但很稳定。

为此,我专注于单一的 VIT Transformer 模型(基于 @hengck23 的方案,输入尺寸 384 x 384)。我最好的单次检查点最终达到了 0.67 LB。每个 Epoch 大约需要 24 小时(!!!)。集成后达到了 0.63。

在早期的实验中,我基于 @yasufuminakama 的代码训练了一个带有 Resnest200 骨干网络的 LSTM+Attention 模型。这个模型达到了 1.11 LB,所以我把它加入了最终的集成中,以增加一点多样性。

数据:

两个模型都使用了提供的所有数据进行拟合,此外每个 Epoch 还额外增加了 10% 的样本,这些样本是从 extra_approved_InChIs.csv 中随机生成的图像。我的图像生成基于 @stainsbynotebook。数据增强包括随机旋转(对于 LSTM 模型还包括粗粒度 Dropout)。最终的集成模型集还包括在伪标记测试数据上拟合的模型。

集成策略:

在整个比赛过程中,我一直使用 @nofreewill 的 InChI 归一化作为集成的基础:每个预测被分类为:1) 已归一化,归一化结果 = 预测;2) 已归一化,但有修改;3) 归一化失败。

对于测试集中的每张图像,我隔离出归一化类别最低的预测。在这个组内,我使用简单投票法,平局时根据模型偏好决定(即模型根据其 LB 分数从高到低排序)。

我为 VIT 模型集成了 7 个检查点,为 Resnest200/LSTM 模型集成了 2 个。每个样本在每个检查点计算两次:一次是原始形式,一次是左右翻转。

再次恭喜大家。

同比赛其他方案